JSP 디렉티브 태그

박승현·2022년 4월 22일

JSP

목록 보기
2/11

디렉티브 태그의 개요

디렉티브 태그는 JSP 페이지를 어떻게 처리할 것인지를 설정하는 태그이다. 디렉티브 태그는 JSP 페이지가 서블릿 프로그램에서 서블릿 클래스로 변환할 때 JSP 페이지와 관련된 정보를 JSP 컨테이너에 지시하는 메시지이다. 따라서 디렉티브 태그는 JSP 페이지를 수정하여 다시 컴파일하는 경우에만 역할을 수행하기 때문에 개별 HTML 응답에 특별한 영향을 미치지 않는다.

디렉티브 태그형식설명
page<%@page ...%>JSP 페이지에 대한 정보를 설정한다.
include<%@include ...%>JSP 페이지의 특정 영역에 다른 문서를 포함한다.
taglib<%@taglib ...%>JSP 페이지에서 사용할 태그 라이브러리를 설정한다.

page 디렉티브 태그의 기능과 사용법

page 디렉티브 태그는 현재 JSP페이지에 대한 정보를 설정하는 태그로 형식은 다음과 같다. page 디렉티브 태그는 JSP 페이지가 생성할 콘텐츠 유형의 문서, 사용할 자바 클래스, 오류페이지 설정, 세션 사용 여부, 출력 버퍼의 존재 유무 등과 같이 JSP컨테이너가 JSP페이지를 실행하는 데 필요한 정보를 설정할 수 있습니다. page 디렉티브 태그는 JSP 페이지의 어디에서든 선언할 수 있지만 일반적으로 JSP 페이지의 최상단에 선언하는 것을 권장한다.

<@ page 속성1 = "값1" [속성2 = "값2"......] %>

속성설명기본 값
language현재 JSP 페이지가 사용할 프로그래밍 언어를 설정한다.java
contentType현재 JSP 페이지가 생성할 문서의 콘텐츠 유형을 설정한다.text/html
pageEncoding현재 JSP 페이지의 문자 인코딩을 설정한다.ISO-8859-1
import현재 JSP 페이지가 사용할 자바 클래스를 설정한다.
session현재 JSP 페이지의 세션 사용 여부를 설정한다.true
buffer현재 JSP 페이지의 출력 버퍼 크기를 설정한다.8KB
autoFlush출력 버퍼의 동작 제어를 설정한다.true
isThreadSafe현재 JSP 페이지의 멀티스레드 허용 여부를 설정한다.true
info현재 JSP 페이지에 대한 설명을 설정한다.
errorPage현재 JSP 페이지에 오류가 발생했을 때 보여줄 오류 페이지를 설정한다.
isErrorPage현재 JSP 페이지가 오류 페이지인지 여부를 설정한다.false
isELIgnored현재 JSP 페이지의 표현 언어(EL) 지원 여부를 설정한다.false
isScriptingEnabled현재 JSP 페이지의 스크립트 태그 사용 여부를 설정한다.

하나의 page 디렉티브 태그에 하나 또는 여러 개의 속성을 설정할 수 있다. 또는 여러 개의 속성마다 개별적으로 page 디렉티브 태그를 선언할 수 있다. 그리고 import 속성을 제외한 속성은 JSP 페이지에 한 번씩만 설정할 수 있다.

language 속성

language속성은 현재 JSP 페이지에서 사용할 프로그래밍 언어를 설정하는 데 사용한다. 기본 값은 java이지만 향후 JSP 컨테이너가 자바 이외의 언어를 지원할 수 있도록 하기 위한 속성이다.
<%@ page language="java" %>

contentType 속성

contentType속성은 현재 JSP 페이지의 콘텐츠 유형(MIME-type)을 설정하는 데 사용한다. 콘텐츠 유형은 주로 text/html, text/xml, text/plain 등이며, 기본 값은 text/html로 HTML을 출력하는 JSP 페이지는 contentType을 사용할 필요가 없다.
<%@ page contentType="text/html"%>

contentType속성은 문자열 세트(charset)를 설정하여 JSP 페이지의 전체 문자열을 변경할 수 있다.
<%@ page contentType="text/html:charset=utf-8" %>

pageEncoding 속성

pageEncoding 속성은 현재 JSP 페이지의 문자 인코딩 유형을 설정하는데 사용한다. 문자 인코딩 유형의 기본 값은 ISO-8859-1이다.
<%@ page pageEncoding="ISO-8859-1" %>

import 속성

import 속성은 현재 JSP 페이지에서 사용할 자바 클래스를 설정하는 데 쓴다. 둘 이상의 자바 클래스를 포함하는 경우 쉼표(,)로 구분하여 연속해서 여러 개의 자바 클래스를 설정할 수 있다. 또는 여러 개의 자바 클래스를 각각 별도로 설정할 수도 있다.
<%@ page import="java.io.*" %>

session 속성

session 속성은 현재 JSP 페이지의 HTTP 세션 사용 여부를 설정하는 데 사용한다. 기본 값은 세션을 자동으로 사용하는 true이며, 세션을 사용하지 않으려면 false로 설정한다.
<@ page session="true" %>

buffer 속성

buffer 속성은 현재 JSP 페이지의 출력 버퍼 크기를 설정하는 데 사용한다. 이 속성 값은 none과 '버퍼 크기'로 설정할 수 있다. 속성 값을 none으로 설정하면 출력 버퍼를 채우지 않고 웹 브라우저로 직접 보내게 된다.
<@ page buffer="none"%>
'버퍼 크기'로 속성 값을 설정하면 출력 버퍼에 먼저 기록한 후 웹 브러우저로 보낸다. 이때 기본 버퍼 크기는 서버의 고유한 값이지만 일반적으로 8KB이다.
<%@ page buffer="32KB"%>

autoFlush 속성

autoFlush 속성은 자동으로 출력 버퍼를 비우는 것을 제어하는 데 사용한다. 즉 출력 버퍼가 채워진 경우 자동으로 버퍼에 있는 데이터를 웹 브라우저로 보내고 버퍼를 비울지 또는 버퍼 오버플로의 예외를 나타낼지 등의 처리를 설정하는 것이다. 기본 값은 true이다.
<%@ page autoFlush="true" %>

isThreadSafe 속성

isThreadSafe 속성은 현재 JSP 페이지에서 멀티스레드의 동작을 제어하는 데 사용한다. 즉 여러 요청이 동시에 수신되는 경우 JSP 페이지가 어떻게 동작해야 하는지를 JSP 컨테이너에 지시하여 응답할 수 있게 한다.
<%@ page isThreadSafe 속성@>

info 속성

info 속성은 현재 JSP페이지에 대한 설명을 설정하는 데 사용한다. 따라서 JSP 개발자가 페이지의 기능을 이해하는 데 도움을 준다.
<%@ page info="Home Page JSP" %>

errorPage 속성

errorPage 속성은 현재 JSP 페이지가 실행되는 동안 오류가 발생하면 특정 오류 페이지로 이동하는 데 사용한다. 웹 서버가 제공하는 기본 오류 페이지를 사용하지 않고 이동할 오류 페이지의 URL을 설정한다.
<%@ page errorPage="MyErrorPage.jsp %>

isErrorPage 속성

isErrorPage 속성은 현재 JSP 페이지가 오류 페이지인지 여부를 설정하는 데 사용한다. 기본값은 false이며 예외 처리를 위한 내장 객체인 exception 변수를 사용할 수 없다. 속성 값을 true로 설정하면 현재 JSP 페이지는 오류 페이지가 된다. 만약 다른 JSP 페이지에서 오류가 발생하면, 호출되는 오류 페이지는 true가 설정된 JSP 페이지가 된다.
<%@ page isErrorPage="true"%>

isELIgnored 속성

isELIgnored 속성은 현재 JSP 페이지의 표현 언어(expression language) 사용 여부를 설정하는 데 사용한다. 기본 값은 false이며 JSP 페이지에 표현 언어의 표현식 '${}'를 사용할 수 있다. 속성 값을 true로 설정하면 JSP 페이지에 사용된 표현 언어의 표현식을 처리할 수 없기 때문에 정적 텍스트로 처리된다.
<%@ page isELIgnored="true" %>

isScriptingEnabled 속성

isScriptingEnabled 속성은 스크립트 태그(선언문, 스크립틀릿, 표현문) 사용 여부를 설정하는데 사용한다. 속성 값은 true나 false이며 true로 설정하면 기본 스크립트 태그를 사용할 수 있다. false로 설정하면 스크립트 태그를 제한하기 때문에 스크립트 태그를 사용하는 경우 번역 시 오류가 발생한다.
<%@ page isScrip

include 디렉티브 태그의 기능과 사용법

include 디렉티브 태그는 이름에서 알수 있듯이 현재 JSP 페이지의 특정 영역에 외부 파일의 내용을 포함하는 태그이다. 현재 JSP 페이지에 포함할 수 있는 외부 파일은 HTML, JSP 텍스트 파일 등이다. include 디렉티브 태그는 JSP 페이지 어디에서든 선언 할 수 있다.
<%@ include file="파일명"%>
여기서 file 속성 값은 현재 JSP 페이지에 포함할 내용을 가진 외부 파일명이다. 이때 외부 파일이 현재 JSP 페이지와 같은 디렉터리에 있으면 파일명만 설정하고, 그렇지 않으면 전체URL을 설정해야 한다.

include 디렉티브 태그를 사용하는 이유

외부파일의 내용을 복사하여 현재 JSP 페이지에 붙여넣을 수 있지만 이는 좋은 방법이 아니다. 예를 들어 머리글과 바닥글에 해당하는 외부 파일 2개와 100개의 JSP페이지가 있는 경우를 생각해보자. 만약 JSP 페이지 100개에 외부 파일 2개의 내용을 복사하여 붙여넣었을 때 이 외부 파일의 내용을 변경해야 한다면 JSP 페이지 100개를 모두 수정 편집해야 한다. 하지만 include 디렉티브 태그를 사용하면 모든 외부 파일을 포함하므로 외부 파일의 내용을 변경할 때마다 특정 외부 파일만 수정 편집하면 된다. include 디렉티브 태그는 머리글과 바닥글 같은 공통된 부분을 별도의 JSP 파일로 만들어 웹 페이지를 모듈화 할수 있다. 그래서 코드를 재사용하고 중복된 코드를 줄임으로써 유지 보수 측면에서 매우 유용하다.

<html>
<body>
	<%@ include file="header.jsp"%> header.jsp 파일의 내용을 이 JSP 페이지에 포함한다는 것을 의미함
    Today is:<%= java.util.Calendar.getInstance().getTime()%>
    <%@ include file="footer.jsp"%> footer.jsp 파일의 내용을 이 JSP 페이지에 포함한다는 것을 의미함

taglib 디렉티브 태그의 기능과 사용법

taglib 디렉티브 태그는 현재 JSP 페이지에 표현 언어, JSTL, 사용자 정의 태그등 태그 라이브러리를 설정하는 태그이다.
<%@ taglib uri="경로" prefix="태그 식별자%>
여기서 uri 속성은 사용자가 정의한 태그의 설정 정보를 가진 경로 주소이고, prefix 속성은 uri에 설정한, 사용자가 정의한 태그를 식별하기 위한 고유 이름이다. 해당 JSP 페이지 내에서 uri속성 값을 그대로 사용하면 복잡하므로 prefix 속성 값이 대신 식별할 수 있게 해주는 것이다.
taglib 디렉티브 태그가 서블릿 프로그램으로 번역될 때 uri 속성 값은 JSP컨테이너에 사용자가 정의한 태그 라이브러리의 위치를 알려준다. prefix 속성 값은 사용자가 정의한 태그 라이브러리의 접두어 태그가 무엇인지 JSP 컨테이너에 알려주는 역할을 한다.

profile
그냥 해보자 안되더라도 해보자 끝까지 해보자

0개의 댓글