[JSP] 디렉티브 태그

JunHyeok_Yoo·2022년 10월 8일
0

디렉티브 태그

<%@ .. %> 사용

JSP 페이지를 어떻게 처리할 것인지를 설정하는 태그

JSP 페이지가 서블릿 프로그램에서 서블릿 클래스로 변환될 때

  • JSP 페이지와 관련된 정보를 JSP 컨테이너에 지시하는 메시지
  • JSP 페이지를 수정하여 다시 컴파일 하는 경우에만 역할을 수행
디렉티브 태그형식설명
page<%@ page ... %>JSP 페이지에 대한 정보를 설정
include<%@ include ... %>JSP 페이지의 특정 영역에 다른 문서 포함
taglib<%@ taglib ... %>JSP 페이지에서 사용할 태그 라이브러리 설정

page 디렉티브 태그

<%@ page 속성 = "값" ,\[속성2 ="값2" ... ] %>

현재 JSP 페이지에 대한 정보를 설정

  • JSP 컨테이너가 JSP 페이지를 실행하는데 필요한 정보를 설정
  • JSP 페이지 어디서든 선언할 수 있지만 일반적으로 JSP페이지의 최상단에 선언

page 디렉티브 속성

language

JSP 페이지에서 사용할 프로그래밍 언어를 설정

  • 기본값은 JAVA
  • JSP 컨테이너가 자바 이외의 언어를 지원하게끔 하는 속성

contentType

현재 JSP 페이지의 콘텐츠 유형 설정

  • 콘텐츠 유형 (text/html(기본값), text/xml, text/plain)
  • HTML을 출력하는 JSP페이지는 contentType을 사용할 필요 없음

pageEncoding

현재 JSP 페이지의 문자 인코딩 유형 설정

  • 기본값은 ISO-8859-1

import

현재 JSP 페이지에서 사용할 자바 클래스를 설정

  • 둘 이상의 자바 클래스 import시 쉼표로 구분하여 여러개 import
  • 아니면 여러개 따로따로 import = 가능
<@% page imoport = "java.io.*,java.lang.*" %>

혹은

<@% page import = "java.io.*" %>
<@% page import = "java.lang.*" %>

session

현재 JSP 페이지의 HTTP 세션 사용 여부 설정

  • 기본값은 세션을 자동으로 사용하는 TRUE, (세션 사용하지 않으려면 FALSE)

세션이란 웹 어플리케이션이 실행되는 동안 사용자가 웹 어플리케이션 data를 가져와 확인할 수 있는 권한을 부여받기 위해 사용

  • 은행계좌에 로그인했을때 로그아웃 기능
  • 쇼핑몰에서 장바구니 사용

session id vs application id
application 객체는 서버에서 시작할 때 처음 실행되는 객체
서버를 종료시키지 않는 이상 계속 유지됨


session 객체는 사용자(client)객체
사용자가 사이트 접속시 사용자에 대한 내용을 유지시켜줌
접속시 부여되는 고유 ID (사용자를 구분)
생성과 소멸이 잦음

buffer

현재 JPS페이지의 출력버퍼 크기 설정

  • 기본값은 8KB, 버퍼를 채울때 까지 출력하지 않음
  • 이 값을 none으로 설정하면 출력버퍼를 채우지 않고 웹브라우저로 직접 보냄
  • 너무 크면 오류 발생

autoFlush

자동적으로 출력 버퍼를 비우는 것을 제어 (display 이후 자동으로 비우는지)

  • 출력 버퍼가 채워진 경우 -> 자동으로 버퍼에 있는 data를 웹브라우저로 보냄 -> 이후 버퍼를 비울지, 버퍼 오버플로우의 예외를 나타낼지 결정
  • 기본값은 true, true일 경우 출력 버퍼가 채워질 때 마다 자동으로 웹브라우저로 보내고 버퍼비움
  • false로 설정시 출력 버퍼가 가득 채워질 때 버퍼 오버플로 예외 발생

isThreadSafe

현재 JSP 페이지에서 멀티스레드 동작 제어

  • 여러 요청이 동시에 수신되는 경우 JSP 페이지가 어떻게 동작해야하는지 JSP 컨테이너에게 지시하여 응답
  • 기본값은 true, JSP 페이지에 대해 수신된 여러 요청이 동시에 처리
  • flase로 설정시 JSP 페이지에 대한 요청이 순차 처리

info

현재 JSP페이지에 대한 설명 (일종의 주석 기능)

errorPage

현재 JSP 페이지가 실행되는 동안 오류 발생시 특정 오류 페이지로 이동

  • 설정 해놓지 않으면 오류 발생시 웹서버가 제공하는 기본 오류 페이지로 이동됨
<%@ page errorPage= "MyErrorPage.jsp" %>

isErrorPage

현재 JSP 페이지가 오류페이지인지에 대한 설정

  • 기본값은 false 이때 예외처리를 위한 내장객체 exception 변수 사용 불가
  • true 설정시 오류 페이지가 됨
  • 일반적인 JSP 페이지에서 오류가 발생시 호출된 페이지는 이 속성이 true가 설정되어있음

isELignoered

JSP 페이지의 표현언어(expression language) 사용여부 설정

  • 기본값은 false (무시하지 않는다 = 사용한다) 표현언어의 표현식 '${}'사용 가능
  • true로 설정시 (무시한다 = 사용하지 않는다.) 표현식이 정적테스트로 처리
<%
   request.setAttribute("RequestAttribute","requset 내장 객체");
%>
${requsetScope.RequestAttribute}

이때 <%@ page isELignored = "false" %> 일경우

이때 <%@ page isELignored = "ture" %> 일경우

보다시피 표현언어가 정적텍스트 처리되어 표현식이 그대로 나타났다.

include 디렉티브 태그

<%@ include file ="파일명"%>

현재 JSP 페이지의 특정 영역에 외부 파일의 내용을 포함하는 태그

  • 현재 JSP 페이지에 포함할 수 있는 외부 파일은 HTML, JSP, TXT
  • include 디렉티브 태그는 JSP 페이지 어디서든 선언 가능
  • 이때 외부 파일이 현재 JSP 페이지와 같은 디렉토리이다 = 파일명
  • 이때 외부 파일이 현재 JSP 페이지와 다른 디렉토리이다 = 전체 URL(또는 상대경로)\

웹 어플리케이션에서 일반적으로 사용되는 몇가지 기능을 포함하는 외부파일을 만들어 웹페이지에 포함할 때 유용


웹 어플리케이션의 중복된, 공통된 코드를 모듈화 할 수 있음. (DB 커넥션에 유용)


주도권은 부른 JSP 페이지에 있음

taglib 디렉티브 태그

<%@ taglib uri = "경로" prefix="태그 식별자" %>

JSP 페이지에 표현언어, JSTL, 사용자 정의 태그 등 태그 라이브러리를 설정하는 태그

JSTL 태그 라이브러리
1.자주 사용되는 반복문
2.조건문과 같은 논리적 구조 작업
3.XML문서 조작, 국제화 태그 조작
4.SQL 조작 수행을 위한 태그 지원

사용예

<%@ taglib prefix="c" uri = "http://java.sun.com/jsp/jstl/core" %>![](https://velog.velcdn.com/images/jhoacc/post/ad78c51e-b9be-41b4-a77f-b2b7f2ccf6d4/image.png)
![](https://velog.velcdn.com/images/jhoacc/post/356b95f8-ecc5-43ee-8b76-4c894b61b81c/image.png)

...
<body>
  <c:out value="JSTL core 태그 라이브러리"/>
</body>

JSTL의 core 태그 사용법

  • /WEB-INF/lib/ 폴더에 JSTL 태그라이브러리인 JSTL-1.2.jar 파일을 추가
  • JSTL의 core 태그 반복문 <c:forEach> </c:forEach> 태그 사용
<%@ taglib prefix="c" uri = "http://java.sun.com/jsp/jstl/core" %>
...
<body>
  <c:forEach var = "k" begin ="1" end = "10" step = "1">
    <c:out value ="${k}" />
  </c:forEach>
</body>

JSTL:
JSP의 코드 가독성 향상을 위해, 개발의 생산성을 높이기 위해 만들어진 태그 라이브러리

profile
just do it

0개의 댓글