JSP

JSP - 디렉티브 이해하기: page, include, taglib

jaycheol 2024. 8. 29. 11:33
반응형

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 태그를 사용할 수 있게 하고 있습니다.

반응형