디렉티브 태그?
: 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 |
댓글