티스토리 뷰
<jsp:include>
웹페이지의 중복되는 부분(헤더, 사이드바, 푸터)을 모든 페이지마다 작성하는건 관리하기도 어렵고 비효율적이다 이때 <jsp:include> 태그를 사용하면 문제를 해결할 수 있다.
<jsp:include page="포함할페이지" flush="true />
page: 포함할 JSP페이지의 경로를 지정한다.
flush: 포함할 JSP를 호출하기 전에 출력버퍼를 flush할지를 결정한다. 기본값은 false
<jsp:param>으로 포함할 페이지에 파라미터 추가하기
<jsp:include page="/sidebar.jsp">
<jsp:param name="login" value="true" />
<jsp:param name="profile" value="<% profile %>" />
</jsp:include>
param 가져오기
<%
Boolean login = request.getParameter("login");
if(login == null) return;
%>
include 디렉티브
<%@ include file="포함할파일.jspf" %>
※ 디렉티브로 include될 파일의 확장자는 jspf로 보통 지정한다. jsp fragment의 약자로 일반 jsp파일과 포함될 파일임을 구분하기 위해서다.
include 디렉티브는 jsp:include와 다르게 코드 자체를 삽입한다.
jsp:include의 경우 해당 jsp 페이지로 이동한 뒤 출력버퍼에 데이터를 쌓은뒤 호출한 jsp로 돌아와서 작업을 수행하지만 include 디렉티브는 include할 파일의 코드를 호출한 자리에 삽입한다. 때문에 선언하지 않은 변수도 사용하는등의 작업을 할 수 있다.
위와 같은 이유로 크게 2가지 경우로 사용한다
- 모든 JSP 페이지에서 사용하는 전역변수 지정
- 저작권 표시와 같은 모든 페이지에서 중복되는 간단한 문장
jspf 자동으로 포함하기
web.xml
<jsp-config>
<jsp-property-group>
<url-pattern>/view/*</url-pattern>
<include-prelude>/variable.jspf</include-prelude>
<include-coda>/footer.jspf</include-coda>
</jsp-property-group>
</jsp-config>
jsp-property-group : JSP의 프로퍼티를 포함한다.
url-pattern : 프로퍼티를 적용할 JSP 파일의 URL 패턴을 지정
include-prelude : JSP 파일의 앞에 삽입할 파일 지정
include-coda : JSP 파일의 뒤에 삽입할 파일 지정
<jsp:forward>
하나의 JSP 페이지에서 다른 JSP페이지로 요청처리를 전달할 때 사용한다.
클라이언트가 from.jsp 에 요청을 한뒤 from.jsp 에서 to.jsp로 foward할 경우 to.jsp가 한 응답이 클라이언트에게 전달된다. 이 때 from.jsp는 to.jsp에게 request, response를 그대로 전달한다.
<jsp:forward page="이동할페이지" />
유의할점은 forward 액션태그를 사용하게되면 생성했던 출력결과는 모두 제거되고 forward된 page가 새로 작성합니다.
forward param
<jsp:forward page="to.jsp">
<jsp:param name="last" value="tony"/>
<jsp:param name="first" value="stark" />
<jsp:forward>
'JSP &Servlet' 카테고리의 다른 글
JSP tomcat 에서 GET방식 URI 인코딩 처리 (0) | 2021.04.24 |
---|---|
JSP request 기본객체 (0) | 2021.04.24 |
JSP 내장변수 (implicit variable) (0) | 2018.08.03 |
지시자(Directive) 디렉티브 (0) | 2018.08.01 |
스크립틀릿(scriptlet) (0) | 2018.08.01 |