지시어(Directive)는 해당하는 JSP파일의 속성을 기술하는 곳이다.
크게 page, include, taglib 으로 나뉜다.
page 지시어
현재의 JSP 페이지를 컨테이너에서 처리하는 데 필요한 각종 속성을 기술하는 부분이다.
보통 소스의 맨 앞에 위치한다.
<%@ page 속성1="속성값1" 속성2="속성값2" ... %> |
page 지시어의 속성중에는
형식 지정을 위한 contentType
자바 클래스 사용을 위한 import
오류 페이지 관리를 위한 errorPage, isErrorPage
등을 가장 많이 사용한다.
laguage : 스크립트 언어 유형 지정 (java)
import : JSP 내에서 사용할 외부 자바 패키지나 클래스의 import 지정
session : 세션의 사용유무 (true)
buffer : 버퍼의 크기 (8KB)
autoFlush : 버퍼의 내용 자동 비움 (true)
isThreadSafe : 단일스레드 모델을 사용함으로써 true 동시성 제어 여부 지정
info : JSP 페이지에 대한 설명
errorPage : 현재 페이지에서 오류 발생 시 호출될 페이지 지정
isErrorPage : 오류만을 처리하는 페이지로 지정 (false)
contentType : MIME 형식 지정 및 캐릭터셋 설정 (text.html; charset=ISO-8891-1)
pageEncoding : contentType 과 동일한 기능을 한다 (ISO-8891-1)
extends : 현재 JSP 페이지를 특정 클래스를 상속한 클래스로 작성함
표준스팩 : javax.servlet.jsp.httpJspPage
톰캣구현 : org.apache.jsper.runtime, HttpJSPBase
- language
사용할 스크립트 언어를 지정하는 속성.
languege = "java"
- import
자바 import 와 동일한 기능을 한다.
<% page import="java.sql.*, java.util.*" %>
- session
세션은 웹 브라우저와 웹 서버가 지속적으로 상대를 인식하기 위해 필요한 정보를 임시로 저장해두는 방법이다
<%@ page session="true" %>
- buffer
jsp페이지 내용을 출력하려면 JspWriter 객체인 out변수를 사용한다. 이때 out객체로 사용할 버퍼 크기를 지정할 수 있다.
<%@ page buffer="8KB" %>
버퍼는 데이터를 좀 더 효율적이고 안전하게 전송하기 위한 프로그래밍 기법으로 전송할 데이터를 미리 확보한 다음 조금씩 전송하는 방법이다.
- autoFush
버퍼를 자동으로 비울것인지를 지정하는 속성이다.
<%@ page autoFlush="true" %>
- isThreadSafe
서블릿의 장점은 각 사용자 접속에 대한 요청을 프로세스가 아닌 스레드로 처리하는데 있다.
스레드를 이용하면 좀 더 효율적으로 시스템을 운영할 수 있으나, 각 스레드가 자원을 공유하기 때문에
이들 데이터에 대한 안정성을 보장할 수 없게 된다.
isThreadSafe 옵션은 스레드 상태에서 데이터의 안정성을 보장하는 옵션으로, 기본값은 true이다.
<% page isThreadSafe="true" %>
- info
해당 JSP 설명 부분으로 일종의 주석이다.
<% page info="JSP Example" %>
- errorPage, isErrorPage
errorPage 속성은 현재 JSP 페이지에서 오류가 발생할 경우 호출할 페이지를 지정한다.
isErrorPage는 errorPage 속성에 설정된 오류 처리 파일로, 다른 용도로는 사용할 수 없고 오류 처리에만 이용된다.
<%@ page errorPage="error.jsp" %>
<%@ page isErrorPage="true" %>
<%@ page errorpage="ErrorPage.jsp" %>
- contentType
현재JSP 내용에 대한 유형을 설정하는 옵션이다. 원하는 MIME Type을 기입하면 된다.
<%@ page contentType="text/html" %>
[content_test.jsp]
<%@ page contentType="image/x-rgb" %> |
x-rgb는 유닉스 계열에서 사용하는 이미지 파일 중 하나로 윈도우즈에서는 처리할 방법이 정해져 있지 않다.
따라서 웹 브라우저에서 content_test를 읽으려고 하면 내용이 보이지 않고 저장할 것인지 묻는 창이 나타난다.
<%@ page contentType="application/msword" %> TEST |
실행시에는 MS워드로 열것인지 아니면 저장할 것인지 묻는 창이 실행된다.
<%@ page contentType="text/html; charset=euc-kr" %>
한글 처리를 위해 캐릭터셋을 지정한 일반적인 설정이다.
- pageEncoding
contentType의 캐릭터셋 설정과 같은 기능을 한다.
JSP2.0스펙에 추가된 속성으로, 이전 버전을 지원하는 컨테이너의 경우에는 사용할 수 없다.
<%@ page pageEncoding="EUC-KR" %>
- extends
JSP 는 컨테이너에 의해 자동으로 자바 코드로 변경되어 서블릿 형태로 운영된다.
이때 생성되는 코드는 javax.servlet.jsp.HttpJspPage 인터페이스를 구현한 클래스를 상속받는 형태가 된다.