include 디렉티브로 다른 JSP 페이지 포함시키기
include 디렉티브를 이용하면 include 디렉티브를 사용한 위치에 다른 JSP의 스크립트 내용을 포함시킬 수 있습니다. 이를 이용하면 여러 JSP 페이지에 걸쳐 중복되는 내용을 하나의 JSP 페이지로 만들고 여러 JSP 페이지에서 include 디렉티브로 포함시켜 중복을 해소할 수 있습니다.

각 페이지별로 각각 존재하는 중복 코드들을 새로운 JSP 페이지로 만들어 두고 include 디렉티브를 사용하여 포함시키는 것입니다. 코드가 중복되는 경우 코드를 수정할 때 각각 따로 수정해 주어야 하며, 중복되는 페이지가 많을 수록 수정에 필요한 시간이 늘어나게 됩니다. 또한 수정하다가 실수로 한 두개의 페이지를 잘 못 수정하여 버그를 야기시킬 수 있습니다.

그러나 중복되는 부분을 추출하여 새로운 JSP 페이지로 만들어두면 코드 수정 시 해당 JSP 페이지만 수정하면 되므로 생산성과 유지보수성에 있어서 훨씬 효율적이라고 할 수 있습니다.



include 디렉티브와 <jsp:include> 액션 태그의 차이점
페이지를 포함시키는 방법으로는 include 디렉티브 이외에도 <jsp:include> 액션 태그를 이용하는 방법이 있습니다. 그러나 내부적인 동작에서 이 둘의 차이점이 존재합니다. 

<jsp:include> 액션태그의 경우에는 포함시키는 JSP에서 포함되는 JSP로 흐름이 이동하여 내부적으로 보면 두 개의 JSP 페이지가 순서대로 각각 처리하는 방식인 반면에 include 디렉티브의 경우에는 JSP 페이지가 두 개로 나뉘어져 있지만 include 디렉티브를 사용한 위치에 대상 JSP 페이지의 코드 자체를 포함시켜 하나의 JSP 페이지로 합친 후에 처리하는 방식입니다.





include 디렉티브 사용하기
include 디렉티브는 <%@ include file="JSP파일위치" %> 형태로 사용할 수 있습니다. 다음 예제를 보면 main.jsp에서 body 부분에 sub.jsp를 포함합니다. text 변수는 main.jsp에서 선언했지만 sub.jsp에서 text 변수를 사용하는것을 볼 수 있습니다. 실제 main.jsp가 호출될 때 sub.jsp의 스크립트 코드가 그대로 main.jsp의 include 부분에 포함되기 때문에 페이지 실행 당시에는 하나의 JSP페이지로서 동작하게 됩니다. (이클립스 등의 IDE에서 sub.jsp에 변수가 선언되지 않았다고 오류가 표기될 수 있으나 실제 동작에는 이상이 없습니다.)

더 정확하게 설명하자면 JSP 페이지는 JSP 컨테이너에 의해 서블릿으로 파싱된 후 서블릿으로 동작하게 되는데, include 디렉티브를 사용하면 서블릿으로 파싱되는 과정에서 하나의 JSP로 합친 이후 서블릿으로 변환되는 것입니다.



/main.jsp
<%@ page contentType="text/html; charset=UTF-8"%>                                         
<%
     String text = "include Test"
%>
<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
</head> 
<body> 
     <%@ include file="/sub.jsp" %> 
</body> 
</html> 
cs


포함되는 /sub.jsp
포함되는 파일의 경우에도 contentType을 알맞게 지정해 주어야 합니다.
<%@ page contentType="text/html; charset=UTF-8"%>                                         
<h1><%= text %></h1> 
cs


main.jsp 호출 결과



응답된 HTML코드



다음글


참고글
블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

,