디렉티브 태그
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 |