현재 페이지에 다른 페이지의 내용을 동적으로 포함시키고자 할 경우.
하나의 결과 화면을 모듈별로 개별적인 여러 개의 페이지로 나눠서 작성하는 것을 모듈화라고 한다.
속성
page에는 삽입할 페이지의 주소(상대 또는 절대 경로)를 기술한다. flush 속성은 출력 버퍼에 저장되어 있는 데이터를 내준다는 의미로 true or false로 작성한다.
include 지시자 <%@ include file='url'%>
vs. 액션 태그 <jsp:include>
include 지시자는 지정된 페이지가 현재 페이지에 포함되어서 하나로 합쳐진 상태에서 컴파일하여 실행되는 구조다. 포함되는 페이지를 독립적인 형태가 아니고 페이지의 일부분으로 구성할 수 있다. 즉, 변수를 서로 공유하여 사용할 수 있다.
jsp:include 액션 태그는 컴파일 시 합쳐지지 않고 제어권이 지정한 페이지로 넘어갔다가 다시 되돌아온다. 서로 독립적으로 컴파일되고 실행할 때 독립적으로 실행되는 두 페이지가 서로 연락을 취해 하나의 페이지인 것처럼 동작하기 때문에, 변수를 서로 공유해서 사용할 수 없다. 그러므로 포함될 페이지가 독립적인 하나의 페이지여야 한다.
//header
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<h3>이 부분은 header입니다.</h3>
<hr>
//footer
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<hr>
<h4>이 부분은 footer입니다.</h4>
//main
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP</title>
</head>
<body>
<jsp:include page="224_header.jsp"/>
메인 화면입니다. <br>
<a href="224_sub.jsp">서브 페이지로 이동</a>
<jsp:include page="224_footer.jsp"/>
</body>
</html>
//sub
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<jsp:include page="224_header.jsp"/>
서브 화면입니다. <br>
<a href="224_main.jsp">메인 페이지로 이동</a>
<jsp:include page="224_footer.jsp"/>
</body>
</html>