개발/JSP

페이지 모듈화와 요청 흐름 제어

까망군 2011. 10. 13. 09:16
01. <jsp:include> 액션 태그를 이용한 페이지 모듈화


<jsp:include> 액션 태그의 동작 방식

1.1 <jsp:include> 액션 태그 사용법

<jsp:include page="포함할페이지" flush="true" />

flush : 지정한 JSP 페이지를 실행하기 전에 출력 버퍼를 플러시 할자의 여부를 지정한다. true 이면 출력 버퍼를 플러시하고, false이면 하지 않는다.

출력 버퍼 플러싱의 의미
<jsp:include> 액션 태그의 flush 속성의 값이 true 이면 출력 버퍼를 플러시 하는데, 이는 출력 버퍼의 내용이 웹 브라우저에 전달된다는 것을 뜻한다. 출력 버퍼의 내용이 웹 브라우저에 전달되면 HTTP 헤더 정보도 함께 전달되기 때문에 이후로는 헤더 정보를 추가해도 반영되지 않게 된다. 예를 들어 위의 그림에서 sub.jsp로 이동할 때 출력 버퍼의 내용을 플러시하게 되면 sub.jsp에서는 response.setHeader()와 같은 메서드를 실행해도 헤더가 추가되지 않게 된다.

main.jsp
<%@ page contentType="text/html; charset=utf-8" %>
<%@ page pageEncoding="euc-kr" %>
<%@ page trimDirectiveWhitespaces="true" %>
<html>
<head><title>main</title></head>
<body>
main.jsp에서 생성한 내용.
<jsp:include page="sub.jsp" flush="false" />
include 이후의 내용
</body>
</html>

sub.jsp
<%@ page contentType="text/html; charset=utf-8" %>
<%@ page pageEncoding="euc-kr" %>
<%@ page trimDirectiveWhitespaces="true" %>
<p>
sub.jsp에서 생성한 내용.
</p>

main.jsp의 실행 결과