JSP Directive

 

Directive Tag는 End User의 눈에는 출력으로 나타나지 않고, 그 대신 JSP Container가 페이지를 처리하는 스타일을 변경시키는 부가적 효과를 발생시킵니다.

 

1. Page Directive

해당 JSP Page에 적용되는 속성 정의

 

Snytax

<%@ page 
       [ language="
java" ]
       [ extends="package.class" ]
      
[ import= "{ package.class | package.* }, ..." ]
      
[ session="true|false" ]
       [ buffer="none|8kb|sizekb" ]
       [ autoFlush="true|false" ]
       [ isThreadSafe="true|false" ]
       [ info="text" ]
       [ errorPage="relativeURL" ]
       [ contentType="mimeType [ ;charset=characterSet ]" |
                   
"text/html ; charset=euc-kr" ]
       [ isErrorPage="true|false" ]
%>

 

Examples

<%@ page import=”java.util.*,java.lang.*” %>

<%@ page contentType="text/html;charset=euc-kr" %>

<%@ page errorPage=”error.jsp” %>


Description

JSP 파일 or Include 파일의 위치에 대한 제약은 없지만 항상 맨위에 선언하는 것이 좋습니다.

Attributes

11가지의 속성 중 중요한 부분에 대한 정리만 하도록 하겠습니다.

- info 속성
해당 페이지의 역할을 설명해 주는 document 문자열을 추가할 수 있습니다.
<%@page info=
iHelpers WebSite, by SSM>


- ContentType 속성
JSP Page가 생성하는 응답의 MIME ( Multipurpose Internet Mail Extension ) 타입과 Character Set을 지정합니다. MIME은 HTTP 응답에 담기는 정보의 타입을 지정할 때에 사용되며 기본적으로 설정된 MIME은 text/html , Character Set 은 ISO-8859-1
<%@page contentType=image/gif>
<%@ page contentType=
text/xml>

- import 속성
해당 Package를 JSP 파일에서 참조하여 사용할 수 있도록 선언합니다.

<%@ page import=
java.util.List, java.awt.List %> 의 경우는 같은 이름을 두 번 import를 사용하였기에 JSP Container의 입장에서는 모호성이 있는 잘못된 문장 으로 간주하기에 아래와 같이 선언해 주어야 합니다.
<%@ page import=
java.util.*, java.awt.List %>
이와 같이 선언하면 java.awt의 List Class는 기본 이름으로 참조할 수 있지만, java.util 의 경우의 List는 full name으로 접근해야 합니다.  java.util.List 로

java.lang, javax.servlet, javax.servlet.http, javax.servlet.jsp 는 기본적으로 import 되어 있습니다.

이외에 session, buffer,autoFlush .. 속성은 reference를 참조해 주십시오.



2. include Directive

JSP Code 파일 또는 Text 파일을 include 하려고 할 경우 사용합니다.  쉽게 이야기 하면 C, PHP, Perl ,ASP 의 include 파일로 동일합니다.

 

Syntax

<%@ include file=”relativeURL” %>

 

Example

ex3.jsp

<%@ page contentType="text/html;charset=euc-kr" %>

<HTML>

<BODY>

The Current Date and Time are

<%@ include file="date.jsp" %>

<%@ include file="copyright.html" %>

</BODY>

</HTML>

 

date.jsp

<%@ page import="java.util.*" %>

<%="["+ (new java.util.Date()).toLocaleString()+"]" %>

 

copyright.html

<hr>

Copyright ⓒ 2000-2001 ihelpers. All Right Reserved. E-mail : webmaster@ihelpers.co.kr ☎ 02-928-8364

 

Description

가장 중요한 점은 include되는 시점이 해당 JSP Page가 Servlet Source Code로 파싱되고 컴파일되기 전에 일어난다는 점입니다. 이와 같기에 include process는 static 이라고 이야기 합니다. 추가되는 파일의 내용이 정적인 내용이 추가되기 때문입니다. JSP 파일을 추가 시에도 해당 JSP Tags들을 파싱한 후 해당 결과를 include 합니다.

해당 Page내의 include 파일이 변경되었을 경우는 재컴파일을 합니다.

( 이 부분은 JSP Container 마다 차이가 있는 것 같더라구요. 정확시 않음… )

 

 

3. Taglib Directive

한 개 이상의 Custom Tag Library 에 의존하고 있다는 것을 JSP Container에서 알려줄 때 사용합니다.

 

Snytax

<%@ taglib uri="URIToTagLibrary"  prefix="tagPrefix" %>

Taglib Directive는 Custom Tag에 대하여 이야기 할 때 자세히 알도록 하지요.

 

강좌의 reference

- Web Development with Java Server Pages. by Duane K. Fields & Mark A. Kolb ,곽용재편역 ; InfoBook, Manning

-  http://java.sun.com/products/jsp/tags/tags.html

-  http://myhome.shinbiro.com/~jimmy/home.htm