1. 디렉티브 태그 Directive Tag
디렉티브 태그는 JSP 페이지를 어떻게 처리할 것인지를 설정하는 태그
JSP 페이지가 서블릿 프로그램에서 서블릿 클래스로 변환할 때 JSP 페이지와 관련된 정보를 JSP 컨테이너에 지시하는 메시지. 따라서 디렉티브 태그는 JSP 페이지를 수정하여 다시 컴파일하는 경우에만 역할을 수행하기 때문에 개별 HTML 응답에 특별한 영향을 미치지 않음
태그 | 형식 | 설명 |
page | <%@ page ... %> | JSP 페이지에 대한 정보를 설정 |
include | <%@ include ... %> | JSP 페이지의 특정 영역에 다른 문서를 포함 |
taglib | <%@ taglib ... %> | JSP 페이지에서 사용할 태그 라이브러리를 설정 |
1) page 디렉티브 태그
🚀 JSP 페이지가 생성할 콘텐츠 유형의 문서, 사용할 자바 클래스, 오류 페이지 설정, 세션 사용 여부, 출력 버퍼의 존재 유무 등과 같이 JSP 컨테이너가 JSP 페이지를 실행하는데 필요한 정보를 설정
🚀 일반적으로 JSP 페이지의 최상단에 선언하는 것을 권장
🚀 <@ 사이에는 공백을 주지 말것
page 디렉티브 태그의 속성
속성 | 설명 | 기본값 |
language | 현재 JSP 페이지에서 사용할 프로그래밍 언어를 설정 | java |
contentType | 현재JSP 페이지의 콘텐츠유형을 설정 | text/html |
pageEncoding | 현재 JSP 페이지의 문자 인코딩 유형을 설정 | ISO-8859-1 |
import | 현재 JSP 페이지에서 사용할 자바 클래스를 설정 | |
session | 현재 JSP 페이지의 HTTP 세션 사용 여부를 설정 | true |
buffer | 현재 JSP 페이지의 출력 버퍼를 설정 | 8KB |
autoFlush | 자동으로 출력 버퍼를 비우는 것을 제어하는데 사용 | true |
isThreadSafe | 현재 JSP 페이지에서 멀티스레드의 동작을 제어하는 데 사용 | true |
info | 현재 JSP 페이 지에 대한 설명 을 설정 | |
errorPage | 현재 JSP 페이 지가 실행되는 동안 오류가 발 생하면 특정 오류 페이지로 이동하는 데 사용 | |
isErrorPage | 현재 JSP 페이지가 오류 페이지인지 여부를 설정 | |
isELIgnored | 현재 JSP 페이지의 표현 언어 Expression Language 사용 여부를 설정 |
false |
isScripting | 스크립트 태그 (선언문, 스크립틀릿, 표현문) 사용 여부를 설정 |
📍 하나의 page 디렉티브 태그에 하나 또는 여러 개의 속성을 설정 또는 여러 개의 속성마다 개별적으로 page 디렉티브 태그를 선언할 수 있음. import 속성을 제외한 속성은 JSP 페이지에 한 번씩만 설정할 수 있음
A. language 속성
<%@ page language="java" %>
👾 현재 JSP 페이지에서 사용할 프로그래밍 언어를 설정하는 데 사용, 생략 가능
B. contentType 속성
<%@ page contentType="text/html :charset=utf-8" %>
👾 현재 JSP 페이지의 콘텐츠 유형을 설정하는 데 사용
👾 text/html, text/xml, text/plain 등이 있고 기본 값은 text/html.
👾 문자열 세트 charset 를 설정하여 JSP 페이지의 전체 문자열을 변경할 수 있음
application/msword 로 설정
<%@ page contentType="application/msword" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%--
page 디렉티브 태그에 콘텐츠 유형을 마이크로 소프트 워드 문서(application/msword)로 설정하기.
1) 콘텐츠 유형을 application/msword로 설정하도록 page 디렉티브 태그의 contentType 속성을 작성.
--%>
Today is: <%=new java.util.Date()%>
</body>
</html>
text/xml 로 설정
<%@ page contentType="text/xml;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h2>contentType 디렉티브 태그</h2>
<h4>text/html : HTML 출력</h4>
<h4>charset=utf-8 : 문자 인코딩</h4>
</body>
</html>
C. pageEncoding 속성
<%@ pageEncoding="ISO-8859-1" %>
<%@ page contentType="text/html :charset=ISO-8859-1" %>
👾 현재 JSP 페이지의 문자 인코딩 유형을 설정하는 데 사용
👾 문자 인코딩 유형의 기본값은 ISO-8859-1
D. import 속성
<%@ page import="java.io.*, java.lang.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.lang.*" %>
👾 현재 JSP 페이지에서 사용할 자바 클래스를 설정하는 데 사용.
👾 둘 이상의 자바 클래스를 포함하는 경우 쉼표(,)로 구분하여 연속해서 여러 개의 자바 클래스를 설정할 수 있음
E. session 속성
<%@ page session="true" %>
👾 현재 JSP 페이지의 HTTP 세션 사용 여부를 설정하는 데 사용. 기본 값은 true.
👾 session 속성 값이 true이면 현재 JSP 페이지에서 내장 객체인 session 변수를 사용할 수 있음.
F. buffer 속성
<%@ page buffer="none" %>
<%@ page buffer="32KB" %>
👾 현재 JSP 페이지의 출력 버퍼를 설정하는 데 사용
👾 이 속성 값은 none과 '버퍼 크기'로 설정할 수 있음
⚡️ 속성 값을 none으로 설정하면 출력 버퍼를 채우지 않고 웹 브라우저로 직접 보냄
⚡️ '버퍼 크기'로 속성 값을 설정하면 출력 버퍼에 먼저 기록을 한 후 웹 브라우저로 전송
출력버퍼를 사용하는 이유
1) 작은 데이터를 여러 번 전송하는 것 보다 한번 큰 데이터를 전송함
▶️ 큰 단위를 한번에 전송하는 것이 전송성능에 있어서 더 효율적
2) 응답결과가 바로 전송되지 않기 때문에 JSP실행 도중 출력버퍼를 지우고 새로운 내용을 보여줄 수 있다.
▶️ JSP가 응답 결과를 생성하는 도중 에러가 발생했을 시 출력버퍼를 비우고 에퍼레이지를 출력할 수 있도록 할 수 있다.
3) 버퍼가 다 차기 전까지는 헤더를 변경할 수 있다
▶️ 출력버퍼가 flush 되거나 꽉차서 자동으로 출력되기 이전까지는 얼마든지 헤더를 변경할 수 있다
G. autoFlush 속성
<%@ page autoFlush="true" %>
👾 자동으로 출력 버퍼를 비우는 것을 제어하는데 사용. 기본값은 true.
👾 출력 버퍼가 채워진 경우 자동으로 버퍼에 있는 데이터를 웹 브라우저로 보내고 버퍼를 비울지 또는 버퍼 오버플로의 예외를 나타낼지 등의 처리를 설정
👾 false로 설정하면 출력 버퍼가 가득 채워질 때 버퍼 오버플로의 예외를 발생.
H. isThreadSafe 속성
<%@ page isThreadSafe="true" %>
👾 현재 JSP 페이지에서 멀티스레드의 동작을 제어하는 데 사용. 기본 값은 true.
👾 여러 요청이 동시에 수신되는 경우 JSP 페이지가 어떻게 동작해야 하는지를 JSP 컨테이너에 지시하여 응답할 수 있게 함.
👾 속성 값이 true이면 JSP 페이지에 대해 수신된 여러 요청이 동시에 처리되고
false로 설정하면 요청이 순차적으로 처리
I. info 속성
<%@ page info="Home Page JSP" %>
👾 현재 JSP 페이지에 대한 설명을 설정하는 데 사용. 주석과 같은 기능.
J. errorPage 속성
<%@ page errorPage="MyErrorPage.jsp" %>
👾 현재 JSP 페이지가 실행되는 동안 오류가 발생하면 특정 오류 페이지로 이동하는 데 사용.
👾 웹 서버가 제공하는 기본 오류 페이지를 사용하지 않고 이동할 오류 페이지의 URL을 설정.
K. isErrorPage 속성
<%@ page isErrorPage="true" %>
👾 현재 JSP 페이지가 오류 페이지인지 여부를 설정하는 데 사용
👾 기본 값은 false이고 예외 처리를 위한 내장 객체인 exception 변수를 사용할 수 없음.
👾 속성 값을 true로 설정하면 현재 JSP 페이지는 오류 페이지가 됨
👾 만약 다른 JSP 페이지에서 오류가 발생하면, 호출되는 오류 페이지는 true가 설정된 JSP 페이지가 됨.
L. isELIgnored 속성
<%@ page isELIgnored="true" %>
👾 현재 JSP 페이지의 표현 언어 Expression Language 사용 여부를 설정
👾 기본 값은 false이며 JSP 페이지에 표현 언어의 표현식 '${}'을 사용할 수 있음
👾 true로 설정하면 JSP 페이지에 사용된 표현 언어의 표현식을 처리할 수 없기 때문에 정적 텍스트로 처리
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isELIgnored="true"%>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
request.setAttribute("RequestAttribute", "request 내장 객체");
%>
${requestScope.RequestAttribute} <%-- 표현문처럼 특정값을 추출 --%>
<script>
const str = '문자열';
alert(`${str} 입니다.`);
</script>
</body>
</html>
M. isScriptingEnabled 속성
<%@ page isScriptingEnabled="false" %>
👾 스크립트 태그 (선언문, 스크립틀릿, 표현문) 사용 여부를 설정하는데 사용
👾 속성 값이 true로 설정하면 기본 스크립트 태그를 사용할 수 있고,
false로 설정하면 스크립트 태그를 제한하기 때문에 스크립트 태그를 사용하는 경우 번역시 오류가 발생
[ 내용 참고 : IT 학원 강의 ]
'JSP' 카테고리의 다른 글
[JSP] 회원가입 - 주소 검색, 유효성 검사 (0) | 2024.04.18 |
---|---|
[JSP] 내장객체 - response, out (0) | 2024.04.17 |
[JSP] 내장 객체 - request (0) | 2024.04.17 |
[JSP] 디렉티브 태그 - include, taglib (0) | 2024.04.16 |
[JSP] 서블릿과 JSP, 스크립트 태그 (0) | 2024.04.16 |