2013/09/19 - [Java/Java EE] - JSP 액션 태그 -

2013/09/19 - [Java/Java EE] - JSP 액션 태그 와 디렉티브 include 비교


1. include 디렉티브(지시자)

- <jsp:include> 액션 태그와 마찬가지로 지정한 페이지를 현재 위치에 포함시켜주는 기능을 제공한다.

- <jsp:include> 와는 다르게 흐름을 이동시키는 것이 아닌 다른 파일의 내용을 현재 위치에 삽입한 후에 컴파일 처리를 한다.


2. include 디렉티브의 사용법 및 처리 방식

- <%@ include file="포함할파일" %>

- 일반 JSP 파일과 구분하기 위해서 확장자를 JSPF(JSP Fragment)를 사용한다.

- 코드 차원에서 삽입이 이루어지기 때문에 삽입되는 파일에서 선언한 변수를 삽입하는 JSP에서 사용할 수 있게 된다.

- 웹 컨테이너는 include 디렉티브를 통해서 포함된 파일이 변경될 경우 반영해준다.


<!-- includeMain2.jsp -->

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>include 디렉티브 main</title>
</head>
<body>
	<%
		int number = 10;
	%>
	<%@ include file="/includeSub2.jspf" %>

	<p>공통변수 DOWNFOLDER = "<%=downloadFolder %>"</p>
</body>
</html>

<!-- 
	실행결과
	
	includeMain2.jsp 에서 지정한 번호 : 10

	공통변수 DOWNFOLDER = "c:\Download"
 -->


<!-- includeSub2.jspf -->

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
	<p>includeMain2.jsp 에서 지정한 번호 : <%= number %></p>
	<%
		String downloadFolder = "c:\\Download";
	%>


<!-- 페이지 소스보기로 확인한 결과 -->

<!-- includeMain2.jsp --> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>include 디렉티브 main</title> </head> <body> <!-- includeSub2.jspf --> <p>includeMain2.jsp 에서 지정한 번호 : 10</p> <p>공통변수 DOWNFOLDER = "c:\Download"</p> </body> </html> <!-- 실행결과 includeMain2.jsp 에서 지정한 번호 : 10 공통변수 DOWNFOLDER = "c:\Download" -->


3. include 디렉티브 활용

- 모든 JSP 페이지에서 사용되는 변수 지정

- 간단하면서도 모든 페이지에서 중복되는 문장

- 기본 객체로부터 특정 값을 읽어와 변수에 저장한 후 그 변수를 사용하는 JSP 페이지가 많다면, 변수를 지정하는 부분을 별도의 파일에 작성한 후 include 디렉티브로 포함시킨다.


4. 코드 조각 자동 포함

- JSP 2.0 부터 include를 사용하지 않고 JSP 앞 뒤에 지정한 파일을 삽입하는 기능이 제공된다.

- web.xml 파일에 설정 정보를 추가한다.

- jsp-property-group : JSP의 프로퍼티를 지정함을 나타낸다.

- url-pattern : 프로퍼티를 적용할 JSP 파일에 해당하는 URL 패턴을 지정한다.

- include-prelude : url-pattern 태그에서 지정한 패턴에 해당되는 JSP 파일의 앞에 자동으로 삽입될 파일을 지정한다.

- include-coda : url-pattern 태그에서 지정한 패턴에 해당되는 JSP 파일의 뒤에 자동으로 삽입될 파일을 지정한다.

- 해당되는 설정이 여러가지 일 경우에는 차례대로 삽입된다.

<jsp-config> <!-- /member/ 로 시작하는 모든 JSP 파일의 앞 뒤에 각각 삽입한다. --> <jsp-property-group> <url-pattern>/member/*</url-pattern> <include-prelude>header.jspf</include-prelude> <include-coda>footer.jspf</include-coda> </jsp-property-group> <!-- 모든 JSP 파일의 앞 뒤에 각각 삽입한다. --> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <include-prelude>header2.jspf</include-prelude> <include-coda>footer2.jspf</include-coda> </jsp-property-group> </jsp-config>


+ Recent posts