JSP 디렉티브 태그
디렉티브 태그란?
- 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"%> 를 써준다.
- contentType의 character set과 일맥상통하며 기본 값은 ISO-8859-1이다.
- 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