page 디렉티브
page 디렉티브는 JSP 페이지에 대한 정보를 설정 하기 위해 상용됩니다. JSP 인코딩 방식이나 응답 데이터의 인코딩 방식 설정, 출력 버퍼 크기 설정, 에러 페이지 지정 여부 설정 등의 기능이 있습니다. JSP컨테이너는 JSP 페이지를 Servlet으로 파싱할 때 이러한 page 디렉티브 정보를 참조하게 됩니다.
page 디렉티브의 사용 형식은 다음과 같습니다.
1 |
<%@ page 속성="속성값" 속성="속성값"... %> |
cs |
page 디렉티브 속성 및 설명
속성 |
설명 |
기본값 |
import |
JSP 페이지에서 사용할 클래스를 import 할 때 사용합니다. |
|
session |
JSP 페이지에서 세션을 사용할 지 여부를 결정합니다. |
true |
contentType |
JSP 페이지가 실행되고 난 후 출력될 문서의 MIME 타입과 캐릭터 인코딩을 지정합니다. |
MIME - text/html
encoding - ISO-8859-1 |
errorPage |
JSP 실행 중 에러가 난 경우 보여줄 페이지를 지정합니다. |
|
isErrorPage |
현재 JSP 페이지가 에러 발생시 보여줄 페이지인지 여부를 결정합니다. |
false |
pageEncoding |
JSP 페이지가 Servlet으로 변환 될 때 참고할 인코딩을 지정합니다. |
|
deferredSyntaxAllowedAsLiteral |
#{ 를 단순한 문자열로 인식할 것인지의 여부를 지정합니다. |
false |
trimDirectiveWhitespaces |
JSP 2.1버전에서 추가된 속성으로 JSP 실행 후 클라이언트로 처리 결과 출력시 첫 줄에 공백 문자를 제거할 것인지 여부를 지정합니다. |
false |
buffer |
JSP 페이지 출력 버퍼 사이즈를 지정합니다. none 인 경우 버퍼를 거치지 않고 출력됩니다. |
최소 8kb |
autoFlush |
출력 버퍼가 꽉 찬 경우 버퍼의 데이터를 출력 스트림으로 내보내고 비울지 여부를 지정합니다. false 인 경우 출력 버퍼가 꽉 차면 에러를 발생시킵니다. |
true |
isELIgnored |
표현 언어를 단순 문자열로 인식할것인지의 여부를 지정합니다. true인경우 단순 문자열로 인식합니다. | false |
info |
JSP 페이지에 대한 설명을 입력합니다. |
|
isThreadSafe |
SingleThreadModel의 추가 상속 여부를 결정합니다.
기본적으로는 true이며, 자바의 장점인 멀티 스레드 기반을 버리고 싱글스레드 모델을 사용하는 일은 특별한 경우가 아니면 없으므로 사용하지 않습니다. false로 준 경우 SingleThreadModel을 상속합니다. |
true |
language |
페이지에서 사용되는 스크립트 언어를 지정합니다.
생략된 경우 기본적으로 java 언어를 사용합니다.
WAS 제품에 따라서 JSP 컨테이너에서 다른 언어를 지원할 수 있습니다. |
java |
extends |
JSP 페이지가 Servlet으로 파싱될 때 상속할 부모 클래스를 지정합니다. 속성값으로 사용될 클래스는 javax.servlet.jsp.HttpJspPage 또는 javax.servlet.jsp.JspPage 클래스를 상속하여 구현한 클래스여야 합니다.
톰캣의 경우 org.apache.jasper.runtime.HttpJspBase를 상속받도록 되어 있습니다. 거의 사용할 일이 없는 속성입니다. |
|
contentType 속성
JSP 페이지가 생성할 문서의 타입을 지정합니다.
문서 타입은 MIME 타입을 입력합니다. charset은 생략될 수 있는데 생략하는 경우 ISO-8859-1를 사용하게 됩니다.
다만 ISO-8859-1 인코딩은 영어와 서유럽어의 문자만을 포함하고 있으므로 한글을 표현할 수 없습니다.
charset은 대소문자를 구분하지 않습니다.
1 |
<%@ page contentType="text/html; charset=UTF-8" %> |
cs |
UTF-8로 JSON 데이터를 출력하고 싶은 경우
1 |
<%@ page contentType="application/json; charset=UTF-8" %> |
cs |
import 속성
java의 import 문과 마찬가지로 JSP 페이지에서 사용될 클래스의 패키지를 지정해줄 때 사용합니다.
JSP는 Servlet으로 변환되므로 변환된 Servlet 소스를 보면 우리가 알고 있는 import 문으로 변경되어 있는 것을 알 수 있습니다.
import 문은 다음과 같이 사용 가능합니다.
1 |
<%@ page import="java.util.Date" %> |
cs |
만약 import 문을 사용하지 않는다면 java.lang 패키지 이외의 클래스를 사용하는 경우 다음과 같이 한땀 한땀 FQN(Fully Qualified Name)을 적어주어야 합니다.
1
2
3 |
<%
java.util.List list = new java.util.ArrayList();
%> |
cs |
trimDirectiveWhitespaces 속성
JSP는 기본적으로 처리 결과를 출력하게 되면 출력 결과의 첫번째 행에 공백행이 들어가게 됩니다. 이것은 JSP 디렉티브가 있던 자리로 인해 발생하는 공백입니다. 이러한 공백은 JSP 2.1버전 부터 trimDirectiveWhitespaces 설정을 통해 없앨 수 있게 되었습니다.
trimDirectiveWhitespaces값을 true로 주면 공백이 사라집니다.
1 |
<%@ page trimDirectiveWhitespaces="true"%> |
cs |
pageEncoding 속성
JSP 소스 파일이 저장될 시 사용될 인코딩을 지정합니다. JSP 컨테이너는 JSP 를 Servlet으로 파싱할 때 분석을 하게 되는데 이 과정에서 어떤 인코딩을 통해 작성했는지 검사하며 해당 캐릭터 셋을 이용하여 JSP 페이지의 소스를 읽어 들입니다.
pageEncoding 속성이 없는 경우 contentType 속성값을 사용합니다.
1 |
<%@ page pageEncoding="UTF-8"%> |
cs |
pageEncoding 속성에 대해 좀 더 자세한 설명이 필요한 경우 다음의 링크를 참고합니다.
-> [서블릿/JSP] JSP pageEncoding 속성에 대하여
'Servlet&Jsp' 카테고리의 다른 글
[서블릿/JSP] JSP 스크립트 요소 스크립트릿, 표현식, 선언문 (0) | 2018.02.07 |
---|---|
[서블릿/JSP] JSP가 Servlet으로 변환되는 과정 및 규칙 (0) | 2018.02.07 |
[서블릿/JSP] JSP pageEncoding 속성에 대하여 (0) | 2018.02.06 |
[서블릿/JSP] 이클립스 JSP 페이지 소스 저장시 인코딩 설정으로 인해 저장 안되는 문제 (0) | 2018.02.06 |
[서블릿/JSP] 톰캣 버전에 따른 JSP, Servlet 버전 (0) | 2018.02.05 |