잠깐! 디렉티브를 알아보기전에 잠시 서버가 어떻게 구동되는지만 살펴보자.
1. 클라이언트가 웹 서버에 요청
2. 웹서버는 WAS로 요청 전달
3. 웹서버에서 JSP를 요청하면 웹컨테이너에서는 JSP파일을 서블릿 파일로 변환한 뒤 컴파일하여 실행한 결과를 웹 서버에 전달
Directive(지시자)
-Directive는 바로 웹 컨테이너안에서 JSP페이지를 서블릿 클래스로 변환할 때 필요한 정보기술하기 위해 사용해!
<디렉티브의 종류>
1. 페이지 디렉티브
<%@page%>
클라이언트의 요청에 의해 실행되는 JSP 페이지의 필요한 정보를 디렉티브(Directive)의 속성들을 사용해서 정의해주는 역할을 해.
다음은 속성들이니 필요할 때 참고하자!
속성 | 설명 | 기본값 |
contentType | JSP가 생성할 문서의 타입을 지정. | text/html |
import | JSP페이지에서 사용할 자바 클래스를 지정. | |
session | JSP페이지가 세션을 사용할 지의 여부를 지정. | true |
buffer | JSP페이지의 출력 버퍼크기를 지정."none"일 경우 출력 버퍼를 사용하지 않음. | |
autoFlush | 출력 버퍼가 다 찼을 경우 자동으로 버퍼에 있는 데이터를 출력 스트림에 보내고 비울 지의 여부를 나타냄. | |
info | JSP페이지에 대한 설명을 입력. | |
errorPage | JSP페이지를 실행하는 도중에 에러가 발생할때 보여줄 페이지를 지정. | |
isErrorPage | 현재 페이지가 에러가 발생될때 보여지는 페이지인지의 여부를 지정. | false |
isELignored | "true"일경우 표현 언어를 지원. | false |
deferredSyntaxAllowedAsLiteral | # { 문자가 문자열 값으로 사용되는 것을 허용할지의 여부를 지정. | false |
trimDirectiveWhitespaces | 출력 결과에서 템플릿 텍스트의 공백 문자를 제거할지의 여부를 지정. | false |
2. 인클루드 디렉티브
->현재 페이지에 포함시킬 템플릿 페이지를 지정할 때 사용해.
* 템플릿 페이지란?
웹페이지를 보면 페이지가 바뀌어도 고정적으로 유지되는 화면 영역이 있는데 이것을 템플릿 페이지라고 해.
1) <%@include%>
<%@ include file="포함할 파일" %>
include 디렉티브는 다른 파일의 내용을 현재 위치에 포함 시킨 후에 jsp파일을 자바 파일로 변환하고 컴파일하는 방식이지. 정적인 include라고 볼 수 있어.
include될 파일을 include하는 파일에 삽입시켜 내용을 합치고 연결된 파일을 포함한 후에 함께 컴파일하니까 include하는 파일과 include되는 파일은 하나의 파일로 인식되며, 사용하고자 하는 변수 또한 공유하게 되지.
2) <jsp:include>
<jsp:include page ="포함할페이지" flush="true">
<jsp:param name = "param1" value="value1">
<jsp:param name = "param2" value="value2">
</jsp:include>
<jsp:include> 액션태그는 다른 jsp로 실행 흐름을 이동시켜 실행 결과를 현재 위치에 포함시켜. 동적인 include라고 할 수 있지. include되는 파일과 include 시키는 파일을 각각 컴파일 한 후 두 파일의 실행 결과를 한 곳에 합쳐서 출력한다고 할 수 있어
3. 라이브러리 디렉티브
<%@taglib%>
현재 페이지에 외부 라이브러리를 연결할 때 사용해.
1) EL(Expression Language)
-EL은 데이터를 표현하기 위한 언어야.
${ 표현식 }
2) JSTL(JSP Standard Tag Library)
JSP의 taglib으로 커스텀하여 사용하는 편리한 외부 공식 라이브러리야. JSP 스크립트릿에서 사용하기 번거로운 부분을 편하게 만들어주는 장점이 있지.
태그 종류 | 제공기능 | URI |
Core (prefix : c) | 1. 일반 프로그래밍과 유사한 변수선언 2. 실행 흐름의 제어 기능을 제공 3. 페이지 이동 기술 제공 |
java.sun.com/jsp/jstl/core |
Formatting (prefix : fmt) | 1. 숫자, 날짜, 시간 포매팅 기능 제공 2. 국제화, 다국어 지원 기능 제공 |
java.sun.com/jsp/jstl/fmt |
DataBase (prefix : sql) | DB의 데이터를 입력 / 수정 / 삭제 / 조회 하는 기능 제공 | java.sun.com/jsp/jstl/sql |
XML (prefix : x) | XML문서를 처리할 때 필요한 기능 제공 | java.sun.com/jsp/jstl/xml |
'Web Programming > 이론' 카테고리의 다른 글
[JSP] 서블릿이란? (Java Servlet) (0) | 2021.01.17 |
---|---|
쿠키(Cookie) 와 세션(Session) (0) | 2021.01.07 |