본문 바로가기
Backend/JSP

[JSP] 디렉티브 태그

by 그적 2020. 9. 28.

디렉티브 태그?
: JSP 페이지를 어떻게 처리할 것인지를 설정하는 태그
 - 서블릿 프로그램에서 서블릿 클래스로 변환 시 디렉티브 태그 문법을 검사한다.
 - jsp와 관련한 정보를 JSP 컨테이너에 지시하는 메시지이다.

① page 디렉티브 태그
<%@ page ... %>                    (※ 주의. %와 @ 사이에 공백이 존재하면 안된다.)
- 가장 많이 사용하며, 현재 JSP 페이지에 대한 정보를 설정
- 어디서든 선언할 수 있지만 일반적으로 jsp 페이지의 최상단에 선언한다.

(속성 종류)

language 속성 기본 값은 기본 값은 java로 되어 있으며, 다른 언어 또한 가능하도록 되어있다.
  <%@ language="java" %>
contentType 속성  jsp 페이지의 콘텐츠 유형(mime-type)을 설정하는데 사용한다. "application/msword"로 지정해 줄 경우에는 워드 파일로 저장할 수 있다.
  <%@ page contentType="text/html; charset=EUC-KR" %>
  <%@ page contentType="application/msword" %>
pageEncoding 속성 contentType의 character set과 일맥상통하며, 기본 값은 ISO-8859-1이다.
<%page language="java" contentType="text/html; charset="EUC-KR" pageEncoding="ECU-KR" %> 혹은 meta 태그에 <%@ page charset="EUC-KR"%> 를 써준다.
import 속성 현재 jsp 페이지에서 사용할 자바 클래스를 설정하는데 사용한다.
둘 이상의 자바 클래스를 사용하는 경우, 쉼표로 구분하여 연속해서 사용한다.
  <%@ page import = "java.io.*, java.lang.*" %>
session 속성 jsp 페이지의 http 세션 사용 여부를 설정하는데 사용한다.
기본 값은 세션을 자동으로 사용하는 true이며, 세션을 사용하지 않으려면 false로 설정
  <%@ page session="true' %>
buffer 속성 버퍼 크기의 기본 값은 8KB이다. 
속성 값을 none으로 설정하면 출력 버퍼를 채우지 않고 웹 브라우저로 직접 보내게 된다.
16KB 혹은 32KB로 변환하면 해당되는 크기에 출력버퍼가 차기 전까지는 출력하지 않는다.

 ** 출력 버퍼란?  출력 버퍼란 클라이언트에게 웹 페이지를 응답할 때, 출력 버퍼에 채워서 이를 한꺼번에 전송하는 것을 의미함. 기본적으로 8KB 일 때 성능이 가장 좋다고 이야기되고 있다. 또한 만약 버퍼를 사용하지 않아 none으로 설정 시에는 출력한 내용을 취소할 수 없으며, <jsp:forward> 기능을 사용할 수 없다.

autoFlash 속성 자동으로 출력버퍼를 비우는 것을 제어한다. 
기본 값은 true이며, 출력버퍼가 채워질 때마다 자동으로 웹페이지에 보내지고, 비운다.
isThreadSafe 속성 멀티 프로세스가 가능하도록 하며, true가 기본값으로 jsp 페이지에 대해 멀티스레드가 가능함.
false로 설정 하면, jsp 페이지에 대한 요청을 순차로 처리한다.
info 속성 주석문과 같은 기능이므로, jsp 컨테이너는 info 속성을 무시한다.
errorPage 속성 error 발생 시에는 설정된 에러 페이지로 이동한다.
리다이렉트와 같은 기능이지만, tomcat 5.5.9 이상의 버전에서는 인식하지 못하는 속성이다.
JSP 2.0 버전에서 예외 처리는 web.xml 파일에서 <error-page> 태그를 사용하여 처리한다. 
  <%@ page errorPage="error_page.jsp" %>
isErrorPage 속성 오류 발생 시에 JSP 페이지가 오류 페이지로 출력할 것인지를 설정한다.
기본 값은 flase이며, 예외 처리를 위한 내장 객체인 exception 변수를 사용할 수 없다.
isELIgnored 속성 표현언어를 사용한다.
   <% request.setAttribute("RequestAttribute", "request 내장객체"); %>
   ${requestScope.RequestAttribute}
     // true일 경우, request 내장객체 출력
     // false일 경우, ${requestScope.RequestAttribute}

 

② include 디렉티브 태그
<%@include ... %>
- 현재 jsp 페이지 특정 영역에 외부 파일의 내용을 포함하는 태그
- 주로 웹페이지의 footer 혹은 header를 include 디렉티브 태그를 사용하여 모듈로 만든다.
- 모듈화를 통해 중복된 코드나 공통된 코드를 모듈화 할 수 있다.

 

③ taglib 디렉티브 태그
<%@taglib ... %>
- 현재 JSP 페이지에 표현 언어, JSTL, 사용자 정의 태그 등 태그 라이브러리를 설정하는 태그

** JSTL 태그 라이브러리
 >> 자주 사용되는 반복문, 조건문과 같은 논리적 구조 작업, xml 문서 조작, 국제화 태그 조작, SQL 조작 수행을 위한 태그를 지원한다.

<%@ taglib = uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>	//c는 prefix는 대신한다는 의미
<html>
<body>
	<c: out value="JSTL Croe 태그 라이브러리" />
</body>
</html>

우리는 JSTL에서 지원하는 라이브러리 중 하나인 core 라이브러리를 추가한다. (출력, 제어, 반복문과 같은 기능을 지님)
core 라이브러리는 c라는 prefix로 사용할 수 있다. 그 외의 것들은 아래와 같다.
- Core : c 
- XML Processing : x
- SQL : sql
- Functions : fn

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

[JSP] 유효성 검사  (0) 2020.11.02
[JSP] 파일업로드  (0) 2020.10.19
[JSP] common-fileupload 상세설명과 substring을 하는 이유  (0) 2020.10.18
[JSP] MultipartRequest 이유 모르는 에러 해결  (0) 2020.10.17
[JSP] 액션 태그  (0) 2020.09.29

댓글