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>

true일 때

 

false 일 때


M. isScriptingEnabled 속성 

<%@ page isScriptingEnabled="false" %> 

 

  👾  스크립트 태그 (선언문, 스크립틀릿, 표현문) 사용 여부를 설정하는데 사용

  👾  속성 값이 true로 설정하면 기본 스크립트 태그를 사용할 수 있고,

        false로 설정하면 스크립트 태그를 제한하기 때문에 스크립트 태그를 사용하는 경우 번역시 오류가 발생

 

 

 

 

 

[ 내용 참고 : IT 학원 강의 ]

 

+ Recent posts