07-12 <JSP> : 액션 태그 ( jsp:include, include 디렉토리, jsp:forward)
<jsp:include>
사용 방법
<jsp:include page="포함할페이지" flush="true" />
사용 목적
ㆍ화면의 레이아웃 일부분을 모듈화할 때 주로 사용한다.
예시
<body>
main.jsp에서 생성한 내용
<jsp:include page="sub.jsp" flush="false" />
include 이후의 내용
</body>
*flush: 페이지 실행 전에 출력 버퍼를 플러시할지 여부를 지정
(true면 출력 버퍼를 플러시, false면 플러시안함. 기본값은 false)
<body>
<p>
sub.jsp에서 생성한 내용
</p>
</body>
처리 순서
(1) main.jsp가 웹 브라우저의 요청을 받는다.
(2) [출력내용 A]를 출력버퍼에 저장한다.
(3) <jsp:include>가 실행되면 요청 흐름을 sub.jsp로 이동한다.
(4) [출력내용 B]를 출력 버퍼에 저장한다.
(5) sub.jsp의 실행이 끝나면 요청 흐름이 다시 main.jsp의 <jsp:include>로 돌아온다.
(6) <jsp:include> 이후 부분인 [출력내용 C]를 출력 버퍼에 저장한다.
(7) 출력 버퍼의 내용을 응답 데이터로 전송한다
=> <jsp:include>는 요청 시간에 처리하며, 별도의 파일로 요청 처리 흐름을 이동하는 기능을 한다.
데이터는 request 기본 객체 또는 <jsp:param>을 이용하여 전달한다.
include 디렉티브
사용 방법
<%@ include file="포함할 파일"%>
사용 목적
ㆍ모든 JSP 페이지에서 사용하는 변수 지정할 때
ㆍ저작권 표시와 같이 모든 페이지에서 중복되는 간단한 문장일 때
예시
<body>
<% java.util.Date CURRENT_TIME = new java.util.Date(); %>
</body>
<body>
현재 시간은 <%= CURRENT_TIME %> 입니다.
</body>
파일명은 일반 jsp파일과 구분하기 위해 확장자라는 뜻으로 보통 .jspf라고 사용한다.
=> include 디렉티브는 JSP파일을 자바 소스로 변환할 때 처리하며, 현재 파일에 삽입하는 기능을 한다.
데이터는 페이지 내의 변수를 선언한 후 변수에 값을 저장한다.
jsp:forward
사용방법
<jsp:forward page="이동할페이지"/>
사용목적
각 조건을 처리하는 JSP를 분리하여 기능별로 모듈화할 수 있다.
예시
<body>
<%
String code = request.getParameter("code");
String viewPageURI = null;
if (code.equals("A")) {
viewPageURI = "/viewModule/A.jsp";
} else if (code.equals("B")) {
viewPageURI = "/viewModule/B.jsp";
} else if (code.equals("C")) {
viewPageURI = "/viewModule/C.jsp";
}
%>
<jsp:forward page="<%= viewPageURI %>"/>
</body>
<body>
이 페이지는 <b><font size = "5"> A </font></b> 입니다.
</body>
=> 위 코드는 조건에 따라 다른 페이지로 이동하는 구조를 갖는다.
<jsp:forward>는 페이지이동을 원할 때 편하게 사용할 수 있는 액션태그이다.