디렉티브 태그란?

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


page 디렉티브 태그

<%@page ...%>
가장 많이 사용하며 현재 JSP 페이지에 대한 정보를 설정
어디서든 선언할 수 있지만 일반적으로 JSP 페이지의 최상단에 선언한다.

  • language 속성
    • 기본값은 java로 되어 있으며 다른 언어 또한 가능하다.
    • <%@ language="java" %>
  • contentType 속성
    • JSP 페이지의 콘텐츠 유형을 설정하는데 사용한다.
    • 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페이지가 오류 페이지로 출력할 것인지를 설정한다.
    • 기본 값은 false이며 예외 처리를 위한 내장 객체인 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>

Leave a comment