[- Disclaimer -]
아래 내용은 정보보안 공부 목적으로 작성된 것이나, 이를 토대로 허가되지 않은 대상에 실습을 진행할 경우 해킹 시도로 간주하여 법적 처벌을 받을 수 있음을 알려 드립니다.
Directive (=지시자, 지시어)
<%@ [Directive 종류] [속성1]="값1" 속성2="값2" 속성3="값3" (...) %>
Plain Text
복사
page Directive 속성
info: 설명
language: Script 언어
Default=Java 언어
contentType: MIME Type
pageEncoding: charset과 같은 Encoding 지정
Default=ISO-8859-1
import: java.lang에 속하지 않는 외부 Java Paackage, Class를 Import하기 위해 지정
session: Session 사용 여부
Default=true
buffer: 출력 Buffer 크기
Default=8 KB
autoFlush: 출력 Buffer 다 찰 경우 자동 Clear 여부
false 시 Buffer 다차면 Error 발생
buffer 속성 값이 none일 경우 false로 지정 시 Error 발생
Default=true
trimDirectiveWhitespaces: Directive 공백 제거 여부
Default=false
errorPage: Error Web Page 지정
isErrorPage: Error 처리 여부
Plain Text
복사
✦ Ex) language 속성, contentType 속성, pageEncoding 속성
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
Plain Text
복사
✦ Ex) import 속성
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.util.Date" %>
Plain Text
복사
✦ Ex) errorPage
// error.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
errorPage="IsErrorPage.jsp"%>
(...)
Error명: <%= exception.getClass().getName() %><br />
Error Message: <%= exception.getMessage() %>
(...)
Plain Text
복사
// test.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
errorPage="error.jsp"%>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.util.Date" %>
(...)
<% int hello = Integer.parseInt(request.getParameter("hi")); %> // Error 발생
(...)
Plain Text
복사
// test.jsp 접근 및 출력 결과
Error명: java.lang.NumberFormatException
Error Message: Cannot parse null string
Plain Text
복사
✦ Ex) trimDirectiveWhitespaces
✧ Web Browser 상에서 소스 코드 보기 시 맨 윗 줄의 공백 줄들이 사실 저 지시어들이 공백 치환 된 것임
✧ Android 등 외부 기기 간 연동 시 공백으로 인한 호환 문제 있을 수 있어 이와 같은 불필요한 공백 제거 시 사용
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
trimDirectiveWhitespaces="true" %>
Plain Text
복사
✦ Ex) buffer
<%@ page buffer="10kb" %>
Plain Text
복사
<%@ page buffer="none" %>
Plain Text
복사
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" buffer="10kb" autoFlush="true"%> // autoFlush=true: Buffer 비우기 설정
Plain Text
복사
include Directive
<%@ include="testinclude.jsp" %>
Plain Text
복사
// testinclude.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% int a = 0; %>
Plain Text
복사
// test.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ include file="testinclude.jsp" %>
<!DOCTYPE html5>
<head>
<meta charset="UTF-8">
<title>ㅇㅅㅇ</title>
</head>
<body>
<%
out.println(a);
%>
</body>
</html>
Plain Text
복사
taglib Directive
✦ EL에서 Class 내 Method 호출 및 JSTL 사용을 위한 지시어


