page 디렉티브
page 디렉티브를 사용하면 다음과 같은것을알수 있다.
1. jsp페이지가 어떤 문서를 생성하는지 알수 있다.
2. 어떤 java 클래스를 사용하는지 알수 있다.
3. jsp 페이지를 실행하는데 필요한 정보들을 입력할수 있다.
page 디렉티브의 주요속성 표
속성 |
설명 |
기본값 |
contentType |
jsp가 생성할 문서 타입 지정 |
text/html |
import |
jsp 페이지에 사용할 자바 클래스 지정 |
|
session |
jsp 페이지에 세션 사용 여부 지정 true or false로 값을 지정 |
true |
buffer |
jsp 페이지 출력 버퍼 크기 지정 4kb(4킬로바이트 크기의 출력 버퍼 지정) 숫자와 kb를 통해 크기를 지정한다. |
|
autoFlush |
출력 버퍼가 찼을 경우 데이터를 출력 스트림에 보내고 비울지 여부를 나태난다.버퍼의 내용을 브라우저에 보낸뒤 버퍼를 비운다. |
true |
info |
jsp 페이지에 설명을 입력할수 있다. |
|
errorPage |
jsp페이지 실행시 에러가 발생시 보여줄 페이지를 지정 |
|
IsErrorPage |
현재 페이지 에러 발생시 페이지를 보여줄지 여부를 지정할수 있다. 에러페이지 지정시 포함시키지 않을때 사용 true = 에러 페이지, false = 에러페이지가 아님 |
false |
pageEncoding |
jsp 페이지 캐릭터 인코딩을 지정. |
|
isElgnored |
true = 표현언어 지원, false = 표현언어 지원을 하지 않음 |
false |
deferredSyntaxAllowedAsLiteral |
문자를 문자열 값으로 사용 여부 지정 |
false |
trimDirectiveWhitespaces |
출력 결과에 템플릿 텍스트 공백 문자 제거 여부 지정 |
false |
jsp를 시작 하기전에 먼저 구조를 알아야 jsp를 진행하는데 의문을 갖지 않을것이다.
현재 page 디렉티브의 내용을 적는건 jsp로 웹프로그래밍일 진행할때 최상단에 위치하며 이페이지가 어떤 페이지인지를 지정하고 각종설정들을 지정할수 있다.
html 태그를 기본적으로 알고 있다는 전제하에 보면 매우 새로운 문법들이지만 알고보면 어려울 것이 없다.
1. page contentType
Exma.jsp
<!-- 페이지 언어는 java 이고 contentType text와 html로 되어있고 이페이지를 한글로된 html 을 사용하기 위해 euc-kr 형태로 페이지를 인코딩 하겠다는 애기입니다. --> <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <html> <head> <title>pageEncoding</title> </head> <body> jsp를 시작 하기 위해 가장 위에 선언되는 부분 부터 해야 jsp를 하는데 궁금한게 없을것 같습니다. </body> </html>
2. page import
jsp는 java의 기능을 그대로 사용할수 있다고 했습니다.
java를 해보셨던 분은 알겠지만 기존에 만들어져 있는 java 클래스를 사용하기 위해서는 해당 클래스를 찾아서 호출 해야 사용할수 있습니다. 어는 클래스를 호출할때마다 jsp페이지에 해당 클래스에 모든 경로를 지정 하려면 번거롭기도 하고 소스도 더러워질것 입니다. 하지만 import 기능을 이용하면 원하는 클래스에 기본 경로만 지정 해놓으면 클래스 접근하기도 편하고 소스도 보기 한결 편할것 입니다.
Exam.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!-- 아래처럼 java util중 calendar 클래스를 사용하기위해 import 해줍니다. --> <%@ page import="java.util.Calendar" %> <!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=EUC-KR"> <title>Insert title here</title> </head> <body> <% //현재날짜와 시간 정보를 가는 Calendar 클래스의 인스턴스 생성 Calendar cal = Calendar.getInstance(); %> <!-- 실제 출력 --> 현재년도는 <%= cal.get(Calendar.YEAR) %> 년도 입니다. </body> </html>
import 를 사용함으로써 Calendar 클래스 호출시 클래스의 풀경로를 입력할 필요가 없어졌습니다.
3. trimDirectiveWhitespaces 속성(공백 처리)
Exam.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <%@ page import="java.util.Date" %> <!-- trimDirectiveWhitespaces 속성을 true로 지정 --> <%@ page trimDirectiveWhitespaces="true" %> <% Date now = new Date(); %> <!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=EUC-KR"> <title>Insert title here</title> </head> <body> 현재시간 : <%= now %> </body> </html>
결과
마우스 우클릭해서 소스보기를 해보면
html 소스에 </body>가 붙어서 나온걸 확인할수 있다.