코드일기장

[JSP] page 디렉티브 본문

JSP

[JSP] page 디렉티브

won_hyeok2 2022. 2. 28. 13:39

 

 

 

page 디렉티브는 JSP 페이지에 대한 정보를 입력하기 위해서 사용한다. page 디렉티브를 사용하면 JSP 페이지가 어떤 문서를 생성하는지, 어떤 자바 클래스를 사용하는지와 같은 JSP 페이지를 실행하는 데 필요한 정보를 입력할 수 있다.

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
	%>
<%@ page trimDirectiveWhitespaces="true"%>

page 디렉티브 예시 코드

 

 

 

 

page 디렉티브의 주요 속성(최범균 JSP2.3)

속성 설명 기본값
contentType JSP가 생성할 문서의 MIME타입과 캐릭터 인코딩을 지정한다. text/html
import JSP 페에지에서 사용할 자바 클래시를 지정한다.  
session JSP 페이지가 세션을 사용할지의 여부를 지정한다. "true"일 경우 세션을 사용하고 "false"일 경우 세션을 사용하지 않는다. true
buffer JSP 페이지의 출력 버퍼 크기를 지정한다. "none"일 경우 출력 버퍼를 사용하지 않으며, "8kb"라고 입력한 경우 8킬로바이트 크기의 출력 버퍼를 사용한다. 최소 8kb
autoFlush 출력 버퍼가 다 찼을 경우 자동으로 버퍼에 있는 데이터를 출력 스트림에 보내고 비울지 여부를 나타낸다.
"true"일 경우 버퍼의 내용을 웹 브라우저에 보낸 후 버퍼를 비운다. "false"일 경우 에러를 발생한다.
true
info  JSP 페이지에 대한 설명을 입력한다.  
errorPage JSP 페에지를 실행하는 도중에 에러가 발생할 때 보여 줄 페이지 지정한다.  
pageEncoding JSP 페이지 소스 코드의 캐릭터 인코딩을 지정한다.  
isELIgnored "true"일 경우 표현 언어를 해석하지 않고 문자열로 처리한다. "false"일  경우표현언어를 지원한다, false
deferredSyntaxAllowedAsLiteral #{ 문자가 문자열 값으로 사용되는 것을 허용할지의 여부를 지정} false
trimeDirectiveWhitespaces 출력 결과에서 템플릿 텍스의 공백 문자를 제거할 지 여부 설정 false

 

 

 


 

contentType 속성과 캐릭터 셋

 

 

page 디렉티브의 contentType 속성은 JSP 페이지가 생성할 문서의 타입을 지정한다.

 

JSP에서 사용하는 MIME타입은 주로 "text/html"이다. 기본값이기도 한다.

 

<%@ page contentType="text/html"%>

HTML 문서를 생성할 경우의 contentType의 속성 설정 예

 

<%@ page cotentType="text/xml"%>

XML 문서를 생성할 경우의 contentType의 속성 설정 예

 

 

contentType 설정 후 charset을 설정할 수 있다.

"; charset= 캐릭터 셋"  charset은 생략할 수 있다. 생략할 경우 기본값인 ISO-8859-1을 사용하게 된다. 한글은 표현할 수 없는 캐릭터 셋이다.

 

 

<%@ page contentType="text/html; charset=UTF-8"%>
또는
<%@ page contentType="text/html; charset=utf-8"%>

charset의 속성 값은 대소문자 구분 없이 사용 가능하다.

 

한국어가 포함된 캐릭터 셋은 EUC-KR이나 UTF-8을 사용하면 된다. 주로 UTF-8을 사용

 

 

 

<%@ page contentType="text/html; charset=ISO-8859-1" %>
<%@ page trimDirectiveWhitespaces="true"%>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
	<strong>하이</strong>
</body>
</html>

만약 한국어가 지원 안 되는 캐릭터 셋을 사용하면 

하이를 번역못해 외계어로 나온다.

 

 


 

import 속성

 

import 속성은 자바에서의 import와 동일하다.

자바 패키지에서 사용할 클래스를 import 해주면 되는 것이다.

 

<%@ page import="java.util.Calendar"%>
<%@ page import="java.util.Scanner"%>

위 import 속성 값을 합쳐 쓸 수도 있다.

 

<%@ page import="java.util.Calendar, java.util.Scanner"%>

사용할 클래스마다 ", "로 나누면 된다.

 

자바에서 처럼 해당 패키지의 모든 클래스를 사용한다면 (*)을 사용해 클래스 이름을 줄일 수 있다.

 

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

 

 

 

🎈 import 예시 코드

더보기
<%@page import="java.util.Calendar"%>
<%@ page contentType="text/html; charset=UTF-8" 
	pageEncoding="UTF-8"
%>
<%@ page import="java.util.*"%>

<!DOCTYPE html>
<html>
<head>
</head>
<body>
	<%
		Calendar cal = Calendar.getInstance();
	%>
	<strong>현재 년도는:<%= cal.get(Calendar.YEAR) %></strong><br>
	<strong>오늘은 <%=cal.get(Calendar.MONTH) %>월 입니다.</strong><br>
	<strong>지금까지 <%=cal.get(Calendar.WEEK_OF_YEAR) %>주가 지났습니다.</strong>
</body>
</html>

 

 

 

 

 

import 속성을 사용하지 않고 완전한 클래스 이름을 사용하여 클래스를 사용할 수도 있다.

	<%
		java.util.Calendar cal=java.util.Calendar.getInstance();
	%>
	<strong>현재 년도는:<%= cal.get(java.util.Calendar.YEAR) %></strong><br>
	<strong>오늘은 <%=cal.get(java.util.Calendar.MONTH) %>월 입니다.</strong><br>
	<strong>지금까지 <%=cal.get(java.util.Calendar.WEEK_OF_YEAR) %>주가 지났습니다.</strong>

패키지 이름을 일일이 다 적어줘야 한다는 단점이 있다.

 

 


 

 

trimDirectiveWhitespaces 속성

 

 

스크립트 코드로 안 해 만들어진 줄 바꿈 공백 문자를 제거하는 기능을 가지고 있다. JSP 2.1 버전부터 추가된 기능이다.

불필요하게 생성되는 줄바꿈 공백 문자를 제거할 수 있다.

 

 

trimeDirectiveWhitespaces "false"일 경우 웹에서 [ctrl+u] 소스보기를 누르면 해당 페이지의 소스 코드는 줄 바꿈 공백이 존재하게 된다. 줄바꿈 공백은 JSP 코드들이 였다. 

 

 

 

 

<%@ page trimDirectiveWhitespaces="true" %>

"true"로 바꿔준다면 줄바꿈 공백은 없어진다.

 

trimDriectiveWhitespaces의 기본값은 "false"이다.

 


 

 

pageEncoding 속성

 

지금까지 배운 contentType에 charset은 응답 결과의 캐릭터 셋이다.

응답결과의 속성 값과 pageEncoding의 값을 서로 다르게 할 수 있다.

 

<%@ page contentType="text/html; charset=EUC-KR" 
%>
<%@ page pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
	<%
		String str ="안녕하세요?";
	%>
	<strong>현재 년도는:<%= str %></strong><br>
</body>
</html>

 

위와 같은 코드는 JSP 파일은 UTF-8로 작성하고 응답 결과는 EUC-KR로 설정한 것이다.

 

 

 

 

 

 

 

 

 

 

 

커버 사진

<a href="https://www.flaticon.com/kr/free-icons/" title="자바 아이콘"> 자바 아이콘  제작자: Freepik - Flaticon </a>

https://www.flaticon.com/kr/free-icon/jsp-open-file-format-with-java-logo_28968

 

 

 

Comments