JSP 디렉티브(Directive)

JSP 디렉티브는 JSP 페이지가 실행될때, JSP 컨테이너에게 필요한 정보를 전달하는 역할을한다. 예를들어 해당 페이지를 인코딩,한글 변환을 할때 UTF-8 방식을 사용하라는 정보를 전달 한다는 것이다. JSP 디렉티브의 종류에는 3가지가 있다. page,include,taglib 이있으며 각 디렉티브의 사용방법은 다음과 같다.

page 디렉티브

<%@ page %> : 해당 페이지를 어떻게 처리할 것인지에 대한 정보를 알려줌.

<%@ page contentType="text/html;charset=utf-8”%>

: contentType 속성 은 JSP페이지가 웹브라우저에게 반환할 콘텐츠의 유형을 알려준다.

: text/html;charset=utf-8은 HTML 페이지를 UTF-8 인코딩으로 제공하겠다는 뜻이다.

page 디렉티브 속성의 종류

<aside> ⭐

pageEncoding과 contentType의 차이점

</aside>

iclude 디렉티브

<%@ include %> : 별도의 저장된 파일을 필요한 페이지, 구간에 삽입하는 기능.

<%@ include file = “top.jsp” %> : 해당 코드가 들어가있는부분에 top.jsp 파일을추가.

include 디렉티브가 사용되었을때 해당 페이지가 처리되는 과정은 jsp 페이지가 컴파일 되는 과정에서, include 되는 jsp페이지의 내용을 그대로 포함해서 컴파일함. 즉 include된 jsp파일과 기본jsp파일이 합쳐져서 서블릿으로 변환되고 컴파일됨.

image.png

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>