개발/JSP
페이지 모듈화와 요청 흐름 제어
까망군
2011. 10. 13. 09:16
01. <jsp:include> 액션 태그를 이용한 페이지 모듈화
1.1 <jsp:include> 액션 태그 사용법
flush : 지정한 JSP 페이지를 실행하기 전에 출력 버퍼를 플러시 할자의 여부를 지정한다. true 이면 출력 버퍼를 플러시하고, false이면 하지 않는다.
출력 버퍼 플러싱의 의미
<jsp:include> 액션 태그의 flush 속성의 값이 true 이면 출력 버퍼를 플러시 하는데, 이는 출력 버퍼의 내용이 웹 브라우저에 전달된다는 것을 뜻한다. 출력 버퍼의 내용이 웹 브라우저에 전달되면 HTTP 헤더 정보도 함께 전달되기 때문에 이후로는 헤더 정보를 추가해도 반영되지 않게 된다. 예를 들어 위의 그림에서 sub.jsp로 이동할 때 출력 버퍼의 내용을 플러시하게 되면 sub.jsp에서는 response.setHeader()와 같은 메서드를 실행해도 헤더가 추가되지 않게 된다.
main.jsp
sub.jsp
<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의 실행 결과