JSP 디렉티브는 JSP 페이지가 실행될때, JSP 컨테이너에게 필요한 정보를 전달하는 역할을한다. 예를들어 해당 페이지를 인코딩,한글 변환을 할때 UTF-8 방식을 사용하라는 정보를 전달 한다는 것이다. JSP 디렉티브의 종류에는 3가지가 있다. page,include,taglib 이있으며 각 디렉티브의 사용방법은 다음과 같다.
<%@ page %> : 해당 페이지를 어떻게 처리할 것인지에 대한 정보를 알려줌.
<%@ page contentType="text/html;charset=utf-8”%>
: contentType 속성 은 JSP페이지가 웹브라우저에게 반환할 콘텐츠의 유형을 알려준다.
: text/html;charset=utf-8은 HTML 페이지를 UTF-8 인코딩으로 제공하겠다는 뜻이다.
page 디렉티브 속성의 종류
<aside> ⭐
pageEncoding과 contentType의 차이점
contentType: 클라이언트에 보내는 응답의 타입과 문자 인코딩을 설정, 즉 웹브라우저에 보이는 부분의 인코딩을 설정함.
pageEncoding: JSP 파일 자체, 즉 소스코드의 문자 인코딩을 설정.
둘 다 인코딩을 다루지만, contentType은 클라이언트와의 통신을 위한 설정, pageEncoding은 JSP파일의 내부 인코딩을 위한설정.
</aside>
<%@ include %> : 별도의 저장된 파일을 필요한 페이지, 구간에 삽입하는 기능.
<%@ include file = “top.jsp” %> : 해당 코드가 들어가있는부분에 top.jsp 파일을추가.
include 디렉티브가 사용되었을때 해당 페이지가 처리되는 과정은 jsp 페이지가 컴파일 되는 과정에서, include 되는 jsp페이지의 내용을 그대로 포함해서 컴파일함. 즉 include된 jsp파일과 기본jsp파일이 합쳐져서 서블릿으로 변환되고 컴파일됨.

includeDirective.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>include디렉티브 연습</title>
</head>
<body>
<h2>include디렉티브 연습</h2>
<%
String name = "Kim";
%>
<%@ include file="top.jsp"%>
포함하는 페이지 includeDirective.jsp의 내용입니다.
<%@ include file="bottom.jsp"%>
</body>
</html>
top.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.Timestamp" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>top.jsp</title>
</head>
<body>
<%
Timestamp now = new Timestamp(System.currentTimeMillis());
%>
top.jsp입니다.<p>
<%=now.toString()%>
<hr>
</body>
</html>
bottom.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>bottom.jsp</title>
</head>
<body>
<hr>
bottom.jsp입니다.<p>
작성자는 <b><%=name%></b> 입니다.
</body>
</html>