티스토리 뷰

<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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함