page디렉터브는 jsp페이지에 대한 정보를 입력하기 위해 사용된다.
jsp페이지가 어떤 문서를 생성하는지, 어떤 자바 클래스를 사용하고 어떤 세션에 참여하는지
출력 버퍼의 존재 여부 등 jsp 페이지를 시행하는 데 필요한 정보를 입력한다.
<%@ page
info = '활동사항'
contentType = "text/html; charset=euc-kr"
errorPage = "/error/Eorror.jsp"
%>
page 디렉터브의 주요 속성
속성 | 설명 | 기본값 |
contentType | jsp가 생성할 문서의 MIME타입과 캐릭터 인코딩을 지정한다. | text/html |
pageEncoding | jsp페이지 소스 코드의 캐릭터 인코딩을 지정한다. | |
info | jsp페이지에 대한 설명을 입력 | |
errorPage | jsp페이지 실행 도중 에러 발생시 보여줄 페이지를 지정한다. | |
import | jsp페이지에서 사용할 자바 클래스를 지정한다. | |
isErrorPage | 현재 페이지가 에러 발생 시 보여주는 페이지인지 여부를 알려준다. true : 에러 페이지, false : 에러페이지 아니다. |
false |
session | jsp페이지가 세션을 사용할 지 여부 지정한다. false일 경우 세션을 사용하지 않는다. |
true |
buffer | jsp페이지의 출력 버퍼 크기를 지정한다. none일 경우 출력 버퍼를 사용하지 않는다. 8kb일 경우 8kb크기의 출력 버퍼를 사용한다. |
최소 8kb |
contentType 속성의 구성
contentType = "type; charset=캐릭터셋"
type에는 MIME타입 갓을 사용한다.
text/html, text/xml, application/json 등
charset="캐릭터셋"부분은 생략도 가능하다.
생략시 기본값으로 iso-8859-1을 사용한다.
만약 한글을 표현하려면 euc-kr, utf-8을 사용한다.
(캐릭터 셋은 대소문자 구분을 하지않는다.)
*소스 코드 저장시 사용하는 캐릭터 인코딩가 contentType의 캐릭터 셋은 동일해야된다. 다르면 글자 깨짐*
import 속성
자바 클래스의 완전한 이름 대신 단순 이름을 사용하기 위해 import구문을 사용한다.
완전한 이름 (패키지 명까지 입력) : java.util.Calender
단순한 이름 (클래스 명만 기술) : Calender
예)
<%@ page import="java.util.Calendar" %>
-패이지 이름 뒤에 별표(*)를 사용하면 해당 패키지의 모든 타입(클래스)을 단순 이름으로 사용 가능
<%@ page import ="java.util.*" %>
-impot속성의 값으로 여러 타입도 지정 가능( , 로 구분한다.)
<%@ page import="java.util.*" %>
pageEncoding 속성
톰캣과 같은 웹 컨테이너는 jsp코드를 분석하는 과정에서 어떤 인코딩을 이용해서 코드를 작성했는지 검사하며, 그 결과로 선택한 캐릭터 셋을 이용하여 jsp페이지의 문자를 읽어온다.
- 웹 컨테이너가 jsp페이지를 읽어올때 캐릭터 셋 결정 과정
1. 파일이 BOM으로 시작하지 않는 경우 ( pageEncoding - contentType - iso8859-1 순서 )
1-1) 기본 인코딩으로 파일을 읽고, pageEncoding속성을 검색
1-2) pageEncoding속성이 값을 가지고 있다면, 파일을 읽을때 해당 속성 값을 캐릭터 셋으로 사용한다.
1-3)pageEncoding 속성이 없다면, contentType속성을 검색한다.
contentType속성이 존재하고 charset을 통해 지정되어 있다면 charset의 캐릭터 셋 값을 사용
1-4) 모두 해당하지 않을 경우 (iso-8859-1)
2. 파일이 BOM으로 시작할 경우(pageEncoding)
2-1) BOM을 이용해서 결정된 인코딩을 이용해서 파일을 읽고, Page 디렉티브 pageEncoding 속성을 검색한다.
2-2) pageEncoding 속성의 값과 BOM을 이용해서 결정된 인코딩이 다르면 에러가 발생한다.
즉, JSP파일 자체에선 PageEncoding이 우선순위가 높고, 응답 결과로 받을 시의 인코딩은 contentType으로 지정한다.
출처 : 2. JSP - page 디렉티브 <%@ page %> (tistory.com)
'IT' 카테고리의 다른 글
html <script>, 이미지 프리로딩(Image Preloading), 사용자브라우저(navigator.userAgent) (0) | 2022.07.07 |
---|---|
jsp / javaScript / j Query / java 각 의미와 차이점 (0) | 2022.07.07 |
IMAP과 POP3의 의미와 차이점 (0) | 2022.07.04 |
2. DML/DDL/DCL 차이 (0) | 2022.06.28 |
1. SQL 기본구조 & 기초명령어 (0) | 2022.06.28 |