1.  include 디렉티브 태그

👻  현재 JSP 페이지의 특정 영역에 외부 파일의 내용을 포함하는 태그
       ➡️  포함할 수 있는 외부 파일은 HTML, JSP, 텍스트 파일 등
👻  include 디렉티브 태그는 서블릿 프로그램으로 번역될 때 현재 JSP 페이지와 설정된 다른 외부 파일의내용이 병합되어 번역
👻  머리글과 바닥글 같은 공통된 부분을 별도의 JSP 파일로 만들어 웹 페이지를 모듈화 할 수 있다.
       ➡️ 코드를 재사용하고 중복된 코드를 줄임으로써 유지 보수 측면에서 매우 유용

 

 include 디렉티브 태그를 사용하는 이유


외부파일의 내용(예: header, footer)을 복사하여 현재 JSP 페이지에 붙여넣을 수 있지만 이는 좋은 방법이 아니다.
예를 들어 머리글과 바닥글에 해당하는 외부 파일 2개와 100개의 JSP페이지가 있는 경우 JSP 페이지 100개에 외부 파일 2개의 내용을 복사하여 붙여넣었을 때 이 외부 파일의 내용을 변경해야 한다면JSP 페이지 100개를 모두 수정 편집해야 한다.


하지만 include 디렉티브 태그를 사용하면 모든 외부 파일을 포함하므로 외부 파일의 내용을 변경할 때마다 특정 외부 파일만 수정 편집하면 된다.

예를 들어 하나의 프로젝트에서 다수의 JSP 페이지가 동일한 설정을 사용할 경우에 모든 페이지에 다 코딩을 할 수 있고 하나의 페이지에 설정 코드를 넣고 인클루드 해서 사용할 수 있다. 모든 페이지에 동일한 코드를 넣는 경우 특정 페이지의 오타 or 설정을 변경해야 하는 경우작업이 번거로워 진다. 하나의 페이지에 설정 코드를 넣고 인클루드 해서 사용하면 오타에 자유롭고 + 설정을 변경해야 하는 경우에 간편하다.

 

<body>
    <%@ include file="_header.jsp"%>
    <p>방문해 주셔서 감사합니다.</p>
    <%@ include file="_footer.jsp"%>
</body>
// _header.jsp 파일
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<h4>헤더 페이지 영역입니다.</h4>
// _footer.jsp 파일
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<footer>Copyright .JSP</footer>

 


2. taglib 디렉티브 태그

👻  현재 JSP 페이지에 표현 언어, JSTL, 사용자 정의 태그 custom tag 등 태그 라이브러리를 설정하는 태그

<%@ taglib uri="경로" prefix="태그 식별자" %>


  ⚡️  uri 속성은 사용자가 정의한 태그의 설정 정보를 가진 경로 주소
  ⚡️  prefix 속성은 uri에 설정한, 사용자가 정의한 태그를 식별하기 의한 고유 이름
         ▶️ 해당 JSP 페이지 내에서 uri속성 값을 그대로 사용하면 복잡하므로 prefix 속성 값이 대신 식별할 수 있게 해주는 것

 

👻  taglib 디렉티브 태그가 서블릿 프로그램으로 번역될 때 uri 속성 값은 JSP컨테이너에 사용자가 정의한 태그 라이브러리의 위
치를 알려줌. prefix 속성 값은 사용자가 정의한 태그 라이브러리의 접두어 태그가 무엇인지 JSP 컨테이너에 알려주는 역할.

 

JSTL 태그 

 

유용한 JSP 태그의 모음인 JSTL은 자주 사용되는 핵심 기능을 제공. 반복문, 조건문과 같은 논리적 구조 작업, XML 문서 조작, 국제화 태그 조직, SQL 조작 수행을 위한 태그를 지원. JTSL을 사용하려면 WebContent/WEB-INF/lib 디렉터리의 위치에 jstl.jar 라이브러리 파일이 있어야 함. Apache Standard Taglib 페이지에서 다운로드 가능.

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--taglib 디렉티브 태그에 태그 라이브러리로 JSTL을 설정하는 예--%>
    <c:forEach var="k" begin="1" end="10" step="1">
        <c:out value="${k}"/>
    </c:forEach>
</body>
</html>

 

[ 내용 참고 : IT 학원 강의 ]

+ Recent posts