JSP 지시어
JSP 지시문이란 무엇입니까?
- JSP 지시문은 JSP 컨테이너에 보내는 메시지입니다. 이는 전체 JSP 페이지에 대한 전역 정보를 제공합니다.
- JSP 지시문은 JSP를 서블릿 코드로 변환하기 위해 컨테이너에 특별한 지침을 제공하는 데 사용됩니다.
- JSP 라이프사이클 단계에서는 JSP를 변환 단계인 서블릿으로 변환해야 합니다.
- JSP 처리의 특정 측면을 처리하는 방법에 대한 지침을 컨테이너에 제공합니다.
- 지시문은 키-값 쌍으로 구분된 쉼표로 많은 속성을 가질 수 있습니다.
- JSP에서 지시어는 다음과 같이 설명됩니다.
<%@ %>
태그.
지시어 구문:
<%@ directive attribute="" %>
JSP의 지시어 유형
JSP에는 세 가지 유형의 지시어가 있습니다.
- 페이지 지시문
- 지시어 포함
- Taglib 지시어
아래에서는 각 항목에 대해 예를 들어 자세히 설명합니다.
1) JSP 페이지 지시어
페이지 지시문의 구문:
<%@ page…%>
- 전체 JSP 페이지에 적용되는 속성을 제공합니다.
- 스크립팅 언어, 오류 페이지, 버퍼링 요구 사항과 같은 페이지 종속 속성을 정의합니다.
- 현재 JSP 페이지와 관련된 컨테이너에 지침을 제공하는 데 사용됩니다.
페이지 지시문과 관련된 속성 목록은 다음과 같습니다.
- 지원하는 언어
- 연장하다
- 수입
- 컨텐츠 타입
- 정보
- 세션
- isThreadSafe
- 자동 세척
- 버퍼
- IsErrorPage
- 페이지인코딩
- 오류 페이지
- isELIgonored
각 속성에 대한 자세한 내용
1) 언어: 다음을 정의합니다. 프로그래밍 언어 (기본 언어)가 페이지에서 사용되고 있습니다.
언어 구문:
<%@ page language="value" %>
여기서 값은 프로그래밍 언어(기본 언어)입니다.
예:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
코드 설명: 위의 예에서 속성 언어 값은 다음과 같습니다. Java 이 경우 기본 언어는 다음과 같습니다. 따라서 표현식 태그의 코드는 Java 컴파일러를 사용하여 컴파일됩니다.
2) 확장: 이 속성은 JAVA처럼 클래스를 확장(상속)하는 데 사용됩니다.
확장 구문:
<%@ page extends="value" %>
여기서 값은 상속되어야 하는 클래스를 나타냅니다.
예:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ page extends="demotest.DemoClass" %>
코드 설명: 위 코드에서 JSP는 데모테스트 패키지에 있는 DemoClass를 확장하고 있으며 모든 클래스 기능을 확장합니다.
3) 수입: 이 속성은 페이지 지시문 속성에서 가장 많이 사용되는 속성입니다. 서블릿 코드를 생성하는 동안 컨테이너에 다른 Java 클래스, 인터페이스, 열거형 등을 가져오도록 지시하는 데 사용됩니다. Java 클래스, 인터페이스의 import 문과 유사합니다.
가져오기 구문:
<%@ page import="value" %>
여기서 값은 가져와야 하는 클래스를 나타냅니다.
예:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" import="java.util.Date" pageEncoding="ISO-8859-1"%>
코드 설명:
위의 코드에서는 java.util 패키지에서 Date 클래스(모든 유틸리티 클래스)를 가져오고 있으며, 다음 클래스의 모든 메서드를 사용할 수 있습니다.
4) 콘텐츠 유형:
- 문자 인코딩 체계를 정의합니다. 즉, 응답의 콘텐츠 유형과 문자 집합을 설정하는 데 사용됩니다.
- contentType의 기본 유형은 다음과 같습니다.
"text/html; charset=ISO-8859-1"
.
contentType의 구문:
<%@ page contentType="value" %>
예:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
코드 설명:
위 코드에서 콘텐츠 유형은 text/html로 설정되었으며, JSP 및 생성된 응답 페이지에 대한 문자 인코딩을 설정합니다.
5) 정보
- getServletInfo() 메소드를 통해 접근할 수 있는 문자열을 정의합니다.
- 이 속성은 서블릿 설명을 설정하는 데 사용됩니다.
정보 구문:
<%@ page info="value" %>
여기서 값은 서블릿 정보를 나타낸다.
예:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" info="Guru Directive JSP" pageEncoding="ISO-8859-1"%>
코드 설명:
위 코드에서 "Guru Directive JSP" 문자열은 getServletInfo()를 사용하여 서블릿 인터페이스에서 검색할 수 있습니다.
6) 세션
- JSP 페이지는 기본적으로 세션을 생성합니다.
- 때때로 JSP에서 세션을 만들 필요가 없으므로 이 속성을 false로 설정할 수 있습니다. 세션 속성의 기본값은 true이고 세션이 생성됩니다. false로 설정하면 컴파일러가 기본적으로 세션을 만들지 않도록 지정할 수 있습니다.
세션 구문:
<%@ page session="true/false"%>
이 경우 세션 속성은 true 또는 false로 설정될 수 있습니다.
예:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" session="false"%>
코드 설명:
위의 예에서 세션 속성은 "false"로 설정되어 있으므로 이 JSP에서 어떤 세션도 생성하고 싶지 않음을 나타냅니다.
7) isThreadSafe:
- 생성된 서블릿에 대한 스레딩 모델을 정의합니다.
- 페이지에 구현된 스레드 안전성 수준을 나타냅니다.
- 기본값은 true이므로 동시에
- 이 속성을 사용하여 생성된 서블릿에서 SingleThreadModel 인터페이스를 구현할 수 있습니다.
- false로 설정하면 SingleThreadModel을 구현하고 모든 공유 객체에 액세스할 수 있으며 불일치가 발생할 수 있습니다.
isThreadSafe의 구문:
<% @ page isThreadSafe="true/false" %>
여기서 true 또는 false는 동기화가 있는지 여부를 나타내며 이를 true로 설정하고 false로 설정합니다.
예:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" isThreadSafe="true"%>
코드 설명:
위 코드에서 isThreadSafe는 "true"로 설정되어 동기화가 수행되고 여러 스레드를 사용할 수 있습니다.
8) 자동 세척:
이 속성은 버퍼링된 출력을 자동으로 플러시할지 여부를 지정하며 해당 속성의 기본값은 true입니다. 값을 false로 설정하면 버퍼가 자동으로 플러시되지 않고 가득 찼을 경우 예외가 발생합니다. 버퍼가 없을 경우 false는 불법이며 버퍼링이 없으므로 자동으로 플러시됩니다.
autoFlush 구문:
<% @ page autoFlush="true/false" %>
여기서 true/false는 버퍼링을 해야 하는지 여부를 나타냅니다.
예:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" autoFlush="false"%>
코드 설명:
위 코드에서는 autoflush가 false로 설정되어 버퍼링이 수행되지 않고 수동으로 출력을 플러시합니다.
9) Buffer:
- 이 속성을 사용하면 출력 응답 객체를 버퍼링할 수 있습니다.
- 이 속성을 사용하여 버퍼링 크기를 정의할 수 있으며 기본 크기는 8KB입니다.
- 이는 서블릿이 응답 객체에 쓰기 전에 버퍼를 쓰도록 지시합니다.
버퍼의 구문:
<%@ page buffer="value" %>
여기서 값은 정의해야 하는 버퍼의 크기를 나타냅니다. 버퍼가 없으면 none으로 쓸 수 있고, 값을 언급하지 않으면 기본값은 8KB입니다.
예:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" buffer="16KB"%>
코드 설명:
위 코드에서 버퍼 크기는 16KB로 언급되어 있으며 버퍼는 해당 크기가 됩니다.
10) 오류페이지:
- errorPage가 있는 JSP 페이지가 다른 JSP 페이지에서 확인됨을 나타냅니다.
- "isErrorPage" 속성으로 선언된 모든 JSP 파일은 오류 페이지가 있는 다른 JSP 페이지에서 예외를 수신할 수 있습니다.
- 이 페이지에만 예외가 적용됩니다.
- 기본값은 false입니다.
isErrorPage 구문:
<%@ page isErrorPage="true/false"%>
예:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" isErrorPage="true"%>
코드 설명:
위 코드에서는 isErrorPage가 true로 설정되어 있습니다. 따라서 다른 JSP에 errorPage(다음 속성에 설명됨) 속성이 설정되어 있는지 확인하고 예외를 처리할 수 있습니다.
11) 페이지인코딩:
"pageEncoding" 속성은 JSP 페이지의 문자 인코딩을 정의합니다. 다른 것이 지정되지 않으면 기본값은 "ISO-8859-1"로 지정됩니다.
pageEncoding 구문:
<%@ page pageEncoding="vaue" %>
여기서 값은 JSP의 문자 세트 값을 지정합니다.
예:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1" isErrorPage="true"%>
코드 설명:
위 코드에서 "pageEncoding"은 기본 문자 세트 ISO-8859-1로 설정되었습니다.
12) 오류페이지:
이 속성은 JSP에서 예외가 발생하고 예외 페이지로 리디렉션되는 경우 JSP 페이지에 대한 오류 페이지를 설정하는 데 사용됩니다.
오류 페이지 구문:
<%@ page errorPage="value" %>
여기서 값은 오류 JSP 페이지 값을 나타냅니다.
예:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1" errorPage="errorHandler.jsp"%>
코드 설명:
위 코드에는 예외를 처리하기 위해 errroHandler.jsp가 있습니다.
13) isELIgnored:
- IsELIgnored는 EL 태그를 무시할지 여부를 결정해야 하는 플래그 속성입니다.
- 해당 데이터 유형은 java enum이고 기본값은 false이므로 EL이 기본적으로 활성화됩니다.
isELIgnored 구문:
<%@ page isELIgnored="true/false" %>
여기서 true/false는 EL의 값을 무시해야 하는지 아닌지를 나타냅니다.
예:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1" isELIgnored="true"%>
코드 설명:
위 코드에서 isELIgnored는 true이므로 표현 언어(EL) 여기서는 무시됩니다. 아래 예에서 우리는 1개의 속성(코드 줄 2-XNUMX)을 사용하고 있습니다.
XNUMX가지 속성이 있는 예
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1" isELIgnored="false"%> <%@page import="java.util.Date" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Directive Guru JSP1</title> </head> <body> <a>Date is:</a> <%= new java.util.Date() %> </body> </html>
코드 설명:
코드 라인 1-2: 여기서 우리는 네 가지 속성을 정의했습니다.
- 언어: 다음과 같이 설정됩니다. Java 프로그래밍 언어로
- contentType: HTML이 형식이어야 함을 컴파일러에 알리기 위해 text/html로 설정합니다.
- pageEncoding: 기본 문자 세트가 이 속성에 설정됩니다.
- isELIgnored: 표현식 태그가 false이므로 무시되지 않습니다.
코드 라인 3: 여기서는 import 속성을 사용했으며, 이는 다음에서 오는 "Date 클래스"를 가져옵니다. Java util 패키지를 사용하여 코드에 현재 날짜를 표시하려고 합니다.
위 코드를 실행하면 다음과 같은 출력이 나옵니다.
산출:
- 날짜는 날짜 클래스의 날짜 메서드를 사용하는 현재 날짜입니다.
2)JSP Include 지시어
- JSP "include 지시문"( 코드라인 8 )은 한 파일을 다른 파일에 포함하는 데 사용됩니다.
- 이 포함된 파일은 HTML, JSP, 텍스트 파일 등이 될 수 있습니다.
- 또한 사용자 보기가 포함된 템플릿을 생성하고 페이지를 머리글 및 바닥글 및 사이드바 작업으로 나누는 데 유용합니다.
- 번역 단계에서 파일이 포함됩니다.
include 지시문의 구문:
<%@ include….%>
예:
Directive_jsp2.jsp(메인 파일)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ include file="directive_header_jsp3.jsp" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Directive JSP2</title> </head> <body> <a>This is the main file</a> </body> </html>
Directive_header_jsp3.jsp(기본 파일에 포함됨)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> </head> <body> <a>Header file : </a> <%int count =1; count++; out.println(count);%> : </body> </html>
코드 설명:
Directive_jsp2.jsp:
코드 라인 3: 이 코드에서는 directive_header_jsp3.jsp 파일을 기본 파일(_jsp2.jsp)에 포함시키고 기본 파일과 포함된 파일의 출력을 모두 가져오는 include 태그를 사용합니다.
Directive_header_jsp3.jsp:
코드 라인 11-12: 변수 개수를 1로 초기화한 다음 이를 증가시켰습니다. 그러면 아래와 같이 기본 파일에 출력이 제공됩니다.
위 코드를 실행하면 다음과 같은 출력이 나옵니다.
출력:
- 출력은 Header file: 2 : 이것이 기본 파일입니다.
- 출력은 directive_jsp2.jsp 파일에서 실행되는 반면 directive_header_jsp3.jsp 포함 파일은 먼저 컴파일됩니다.
- 포함된 파일이 완료된 후 메인 파일이 실행되고 "This is the main file"이라는 메인 파일이 출력됩니다. 따라서 _jsp2.jsp에서는 "Header file: 3"로 출력되고 _jsp2.jsp에서는 "This is main file"로 출력됩니다.
3) JSP Taglib 지시어
- JSP taglib 지시문은 "taglib"를 접두사로 사용하여 태그 라이브러리를 정의하는 데 사용됩니다. JSP.
- 자세한 내용은 JSP 사용자 정의 태그 섹션에서 다루겠습니다.
- JSP taglib 지시문은 JSP 표준 태그 라이브러리를 사용하는 JSP 페이지에서 사용됩니다.
- 이는 사용자 정의 태그 세트를 사용하고 라이브러리 위치를 식별하며 JSP 페이지에서 사용자 정의 태그를 식별하는 수단을 제공합니다.
taglib 지시문의 구문:
<%@ taglib uri="uri" prefix="value"%>
여기서 "uri" 속성은 태그 라이브러리 설명자의 고유 식별자이고 "prefix" 속성은 태그 이름입니다.
예:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib prefix="gurutag" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Directive JSP</title> <gurutag:hello/> </head> <body> </body> </html>
코드 설명:
코드 라인 3: 여기서 "taglib"는 uri 및 prefix 속성으로 정의됩니다.
코드 라인 9: "gurutag"는 정의된 사용자 정의 태그이며 어디에서나 사용할 수 있습니다.