JSP - 디렉티브 이해하기: page, include, taglib
JSP 디렉티브 이해하기: page, include, taglib
JSP에서 골뱅이(@) 기호는 디렉티브를 정의할 때 사용됩니다. 디렉티브는 JSP 페이지의 동작에 영향을 미치는 메타데이터와 같은 역할을 합니다. JSP에서 사용할 수 있는 주요 디렉티브와 그 예시는 다음과 같습니다.
1. page 디렉티브 (<%@ page ... %>)
page 디렉티브는 JSP 페이지의 전반적인 속성을 설정하는 데 사용됩니다. 다음은 자주 사용하는 속성과 그 예시입니다:
- contentType: 페이지의 콘텐츠 유형을 설정합니다.
<%@ page contentType="text/html;charset=UTF-8" %>
이 설정은 JSP 페이지의 출력이 HTML이고, 문서 인코딩이 UTF-8임을 지정합니다.
- import: 자바 클래스 패키지를 JSP 페이지에 import할 때 사용됩니다.
<%@ page import="java.util.List, java.util.ArrayList" %>
이 설정은 List와 ArrayList 클래스에 접근할 수 있게 합니다.
- errorPage: 예외가 발생했을 때 이동할 오류 페이지를 지정합니다.
<%@ page errorPage="error.jsp" %>
이 설정은 현재 페이지에서 예외가 발생하면 error.jsp 페이지로 이동합니다.
- isErrorPage: 현재 페이지가 오류 페이지인지를 지정합니다.
<%@ page isErrorPage="true" %>
이 설정은 이 페이지가 오류를 처리하는 페이지임을 나타냅니다.
2. include 디렉티브 (<%@ include ... %>)
include 디렉티브는 다른 JSP 파일을 현재 JSP 파일에 포함시킬 때 사용됩니다. 이는 정적 포함(static include)으로, JSP 페이지가 컴파일될 때 포함된 파일의 내용을 현재 JSP 페이지에 삽입합니다.
- 사용 예:
<%@ include file="/WEB-INF/jsp/include/i18n.jsp" %>
이 설정은 /WEB-INF/jsp/include/i18n.jsp 파일의 내용을 현재 JSP 페이지에 포함합니다. 이 방식으로 헤더, 푸터, 공통적인 설정 등을 여러 페이지에서 재사용할 수 있습니다.
3. taglib 디렉티브 (<%@ taglib ... %>)
taglib 디렉티브는 JSP에서 커스텀 태그 라이브러리를 사용할 때 사용됩니다. 이를 통해 개발자는 커스텀 태그를 정의하고 사용할 수 있습니다.
- 사용 예:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
이 설정은 JSTL(JSP Standard Tag Library)의 코어 라이브러리를 사용하겠다는 선언입니다. 이 선언을 통해 c:로 시작하는 태그(JSTL 코어 태그)를 사용할 수 있게 됩니다.
<c:if test="${user.loggedIn}">
Welcome, ${user.name}!
</c:if>
위의 예시는 c:if 태그를 사용하여 조건에 따라 특정 HTML을 출력하는 방법을 보여줍니다.
4. 예시: 여러 디렉티브의 사용
다음은 여러 디렉티브를 사용하여 JSP 페이지를 설정하는 예시입니다.
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page import="java.util.List, java.util.ArrayList" %>
<%@ include file="/WEB-INF/jsp/include/header.jsp" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Sample JSP Page</title>
</head>
<body>
<%-- Header 포함 --%>
<jsp:include page="/WEB-INF/jsp/include/header.jsp" />
<%-- JSTL을 사용한 조건 처리 --%>
<c:if test="${not empty user}">
<h1>Welcome, ${user.name}!</h1>
</c:if>
<%-- Footer 포함 --%>
<jsp:include page="/WEB-INF/jsp/include/footer.jsp" />
</body>
</html>
이 예시에서는 page, include, taglib 디렉티브를 사용하여 JSP 페이지의 동작을 설정하고, 다른 파일을 포함시키며, JSTL 태그를 사용할 수 있게 하고 있습니다.