본문 바로가기
Back_end/JSP

JSP - 디렉티브 태그

by hyeon1016 2024. 10. 10.

디렉티브 태그

JSP 동작 과정(서블릿 프로그램[.java] ㅡ> 서블릿 클래스[.class])에서 JSP 페이지를 어떻게 설정할 것 인지 설정하는 태그로 <%@ ... %>의 형식으로 작성된다. 

 

디렉티브 태그는 세 가지 종류로 동일하게 <%@ ... %>의 형식으로 작성한다.

 

1. page 디렉티브 태그

2. include 디렉티브 태그

3. taglib 디렉티브 태그

 

 

page 디렉티브 태그

JSP 페이지에 대한 정보를 설정하는 태그로 JSP 페이지의 최상단에 작성한다. 

 

설정 항목으로

 

- 컨텐츠(text) 유형

- 자바 클래스(import)

- 오류 페이지 설정(예외 처리)

- 세션 사용 여부(객체)

 

등이 있다.

 

속성

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

 

이중 몇가지 속성을 다뤄보려한다.

 

language 속성

<%@ page language = "java"%>

 

기본 값이자 표준 값으로 java를 사용하며, JSP에서 사용할 프로그래밍 언어를 설정하는 데 사용한다.

JSP 페이지는 자체적으로 JAVA를 지원하기 때문에 생략 가능하다.

 

contentType 속성

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

 

기본 값으로 text/html을 사용하며, JSP 페이지의 컨텐츠 유형을 설정하는 데 사용한다.

ex)text/html, text/xml, txt/plain

 

예시

<%@ page language="java" contentType="text/xml; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
	<h2>contentType 디렉티브 태그</h2>
	<h4>text/html : HTML 출력</h4>
	<h4>charset=utf-8 : 문자 인코딩</h4>
</body>
</html>

 

위 코드를 XML문서 유형으로 출력한다.

 

 

import 속성

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

 

JSP 페이지에서 사용할 JAVA 클래스를 설정하는 데 사용된다.
둘 이상의 JAVA 클래스를 포함하는 경우 쉼표(,)로 구분하여 사용할 수 있지만 개별적으로 사용하는 것을 권장한다.

 

예시

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import = "java.util.Date" %>   
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	Today is : <%= new Date() %>
</body>
</html>

 

JAVA의 Date클래스를 import하여 JSP페이지 안에서 사용가능하게 한 후에 new Date()로 시간정보를 출력한다. 

 

 

buffer 속성

<%@ page buffer = "none"%>

 

JSP 페이지의 출력 버퍼 크기를 설정하는 데 사용된다.
속성 값을 none으로 설정하면 출력 버퍼를 채우지 않고 바로 보내게 된다.
버퍼 크기로 속성 값을 설정하면 출력 버퍼에 먼저 기록한 후에 보낸다.

 

 

errorPage 속성

<%@ page errorPage = "ErrorPage.jsp"%>

 

JSP 페이지가 실행 도중 오류가 발생하면 특정 오류 페이지로 이동하는 데 사용된다.

 

isErrorPage 속성

<%@ page isErrorPage = "true" %>

 

JSP 페이지가 오류 페이지인지 설정하는 데 사용한다.
이 속성은 다른 JSP 페이지에서 발생한 예외를 처리할 수 있도록 한다.

true로 설정시 내장 객체 exception을 사용해 예외를 처리할 수 있다.

 

예시

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page errorPage="page_isErrorPage_error.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		String str=null;
	out.println(str.toString());
	%>
</body>
</html>

 

JSP 페이지에 강제로 오류를 발생시키고 오류가 발생하면 page_isErrorPage_error.jsp로 이동하는 코드를 작성한다.

 

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page isErrorPage="true" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h4>에러가 발생했습니다.</h4>
	<h5>exeption 내장 객체 변수</h5>
	<%
		exception.printStackTrace(new java.io.PrintWriter(out));
	%>
</body>
</html>

 

이 JSP 페이지는 오류 페이지라고 설정하고 exception 변수를 사용해 예외 처리한다.

 

 

include 디렉티브 태그

<%@ include file = "파일명" %>

 

JSP 페이지에서 다른 JSP 파일이나 정적 파일(HTML, JSP, 텍스트파일)을 포함하는 데 사용된다.

속성 값은 JSP 페이지에 포함할 내용을 가진 외부 파일명이며, 절대경로/상대경로로 설정해야한다.

 

작동방식

서블릿 프로그램으로 번역될 때 현재 JSP 페이지와 설정된 다른 외부 파일의 내용이 병합되어 번역된다.
외부 파일의 내용을 원본 그대로 붙여넣기 때문에 코드의 중복을 조심해야한다.

<html>
<body>
<%@ include file = "header.jsp" %>
Today is : <%=new java.util.Date()%>
<%@ include file = "footer.jsp" %>
</body>
</html>

 

장점

머릿글, 바닥글 같은 페이지가 이동했을 때 변하지 않는 공통된 부분을 별도로 만들어 웹 페이지를 모듈화 가능하다.

 

 

taglib 디렉티브 태그

<%@ taglib uri = "경로 " prefix = "태그 식별자" %>

 

JSP 페이지에 사용자 정의 태그 라이브러리를 포함하는 데 사용한다.

 

uri 속성은 사용하려는 태그 라이브러리의 경로이고, prefix 속성은 JSP 페이지 안에서 사용할 태그의 식별자로 임의로 정할 수 있다. 


*JSTL을 사용하려면 src/main/webapp/WEB-INF/lib 경로에 jstl.jar 라이브러리 파일이 있어야한다.

 

예시

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<c:forEach var="k" begin="1" end="10" step="1">
		<c:out value = "${k}"/>
	</c:forEach>
</body>
</html>

 

JSTL의 Core태그를 c 식별자를 사용해 사용한다.

Core태그의 반복문 <c:forEach>... </c:forEach>를 사용해 작성한다.

변수 k의 값을 출력하기 위해 <c:out>태그를 작성한다.

'Back_end > JSP' 카테고리의 다른 글

JSP - 내장 객체  (1) 2024.10.28
JSP - 액션 태그  (1) 2024.10.28
JSP - 스크립트 태그  (0) 2024.10.10
JSP - 개발 환경 구축  (0) 2024.10.08
JSP - 웹과 JSP  (0) 2024.10.08