웹프로그래밍/JSP

JSP - 디렉티브 태그

Uisin 2024. 10. 10. 17:52

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 ="클래스" 로 표현해야한다

왼쪽은 Java에서 오른쪽은 JSP에서 클래스를 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