Directive tag (디렉티브 태그)
- JSP 페이지를 어떻게 처리할 것인지를 설정하는 태그
- Client의 요청이 들어오면 웹서버에서는 View 영역에서 JSP 컨테이너를 통해 JSP 파일을 Java Servlet 파일로 변환
- 이때 Servlet화 하는 과정에서 JSP 페이지에 대한 메타 정보를 전달하는 태그가 디렉티브 태그다
- Directive tag는 크게 page, include, taglib로 나뉜다
page 디렉티브 태그
- JSP 페이지에 대한 정보를 설정하는 태그
- 컨텐츠 유형, 페이지의 언어, 어떤 문자 인코딩을 쓸 것인지, 자바 클래스는 어떤걸 쓸건지 등의 정보를 담고있다
- 하나의 page 태그에 여러 개의 속성 설정이 가능하다
- <%@ page 속성1 = "값1 %> 의 형태로 JSP문서의 최상단에 위치한다
속성 | 설명 | 기본값 |
language | 프로그래밍 언어 설정 | java |
contentType* | 문서의 컨텐츠 유형 설정 | text/html |
pageEncoding** | 문자 인코딩 설정 | ISO-8859-1 |
import | 사용할 자바 클래스 설정 | |
session | 세션 사용 여부 설정 | true |
buffer | 출력 버퍼 크기 설정 | 8KB |
autoFlush | 출력 버퍼의 동작 제어 설정 | true |
isThreadSafe | 멀티스레드 허용 여부 설정 | true |
errorPage | 오류 발생시 보여줄 페이지 설정 | |
isErrorPage | 현재 페이지가 오류 페이지인지 여부 설정 | false |
isELIgnored | 현재 페이지의 표현 언어(EL) 지원 여부 설정 | false |
*값을 application/msword로 주면 JSP페이지를 열면 워드 문서가 자동으로 저장된다
**웬만해선 한글 폰트 안 깨지도록 UTF-8로 설정해 주자.
import 속성
- Java 코드에서 쓰이는 클래스를 JSP 페이지에서도 표현하기 위해 사용
- 사용법은 Java와 동일하나 <%@ %> 태그 안에 표현해야하며 .import 클래스 대신 import ="클래스" 로 표현해야한다
session 속성
- session은 내장 객체 중 하나로 정보를 저장하는 객체로 사용자가 웹페이지에 로그인을 했을 때 사용자의 로그인 정보를 저장해서 다른 웹어플리케이션의 다른 페이지를 이동하더라도 그 정보를 유지하는 방식으로 작동한다
- 이러한 session의 사용 여부를 설정하는 속성이 바로 session 속성이다
<%@ page session ="true" %>
buffer 속성
- buffer는 데이터를 임시로 저장하는 공간으로 데이터를 잠시 보관했다가 한꺼번에 클라이언트에 전달한다
- 스트리밍 영상을 재생한다고 쳤을때 영상플레이어의 하단에 나타나는 흰색 바가 buffer라고 볼 수 있다
- buffer 속성은 이런 출력 buffer의 크기를 설정하는데 none으로 하면 데이터를 받는 즉시 전달하고 크기를 설정해두면 그 크기만큼 저장을 했다가 출력을 하는 것이다.
<%@ page buffer = "32KB" %>
autoFlush 속성
- autoFlush 속성은 buffer가 모두 채워졌을 때 브라우저로 출력하고 buffer를 비울지 말지를 설정하는 속성이다
- buffer가 가득찼을 때 출력하고 비운다면 true (기본값), 가득찼을 때 예외처리가 되고 비우지 않는다면 false
<%@ page autoFlush ="true" %>
errorPage / isErrorPage 속성
- errorPage 속성은 JSP 페이지가 에러가 발생했을 때 특정 페이지로 이동시킬 때 사용한다
- isErrorPage 속성은 에러가 발생해 이동한 페이지에 설정가능한 속성이다
- isErrorPage의 값이 false면(기본값) 예외 처리를 위한 내장 객체인 exception 변수를 사용할 수 없다
<%@ page errorPage = "파일명" %>
include 디렉티브 태그
- 현재 표시된 JSP페이지에 HTML,JSP, 텍스트 파일 등의 외부 파일을 포함할 수 있는 태그다
- 태그가 입력된 그 위치에 포함할 파일이 서블릿의 형태로 그대로 붙여 넣어 진다
- 그대로 불러와지기 때문에 충돌되는 코드가 있을 시 에러의 위험이 생긴다
- 주로 header나 footer 같은 웹에서 모두 나오는 부분을 include 태그를 이용해 모듈처럼 사용하기도 한다
<%@ include file = "header.jsp" %>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<h4>-------------- 현재 페이지 영역 --------------</h4>
</body>
</html>
<%@ include file = "footer.jsp" %>
taglib 디렉티브 태그
- 표준 태그 외에도 다른 태그를 쓰고싶을 때 사용하는 디렉티브 태그다
- uri 안에 사용하고자 하는 태그 라이브러리의 URI 경로를 입력하고 prefix는 해당 라이브러리의 접두사를 나타낸다
- taglib을 통해 불러왔다면 HTML 문서에서 앞서 정했던 접두사에 콜론을 붙여 사용할 수 있다
<%@ taglib uri ="경로" prefix = "태그 식별자" %>
<%@ taglib uri ="http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<body>
<c:forEach var = "k" begin= "1" end ="10" step ="1">
<c:out value = "${k}" />
</c:forEach>
</body>
'웹프로그래밍 > JSP' 카테고리의 다른 글
JSP - 내장 객체 (0) | 2024.10.14 |
---|---|
JSP - 액션 태그 (0) | 2024.10.11 |
JSP - 스크립트 태그 (0) | 2024.10.08 |
JSP - 기초 (0) | 2024.10.07 |