Web Programming/이론

[JSP] Directive

Sunwoo_bang 2021. 1. 7. 00:34

잠깐! 디렉티브를 알아보기전에 잠시 서버가 어떻게 구동되는지만 살펴보자.

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