Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

JSP include 지시어 완벽 가이드 – 공통 헤더·푸터를 재사용하는 실전 예제

JSP include 지시어란 무엇인가?

JSP의 include 지시어는 번역(translation) 단계에서 다른 외부 파일의 내용을 현재 JSP 페이지에 병합하도록 컨테이너에 지시하는 기능입니다. 쉽게 말해, 여러 개의 파일을 하나의 JSP처럼 합쳐서 처리한다고 생각하면 됩니다. include 지시어는 JSP 페이지 어디에든 위치할 수 있습니다.

기본 사용 형식은 다음과 같습니다.

<%@ include file = "상대 URL" %>

file 속성에 지정하는 값은 상대 URL(relative URL)입니다. 경로 없이 파일 이름만 지정하면, JSP 컴파러는 그 파일이 현재 JSP와 같은 디렉터리에 있는 것으로 간주합니다.

위 문법은 XML 문법으로도 동일하게 표현할 수 있습니다.

<jsp:directive.include file = "상대 URL" />

실전 예제: 공통 헤더와 푸터 재사용하기

include 지시어의 가장 대표적인 활용 사례는 여러 콘텐츠 페이지에서 공통 헤더(header)푸터(footer)를 함께 사용하는 것입니다. 이번 예제에서는 다음 세 개의 파일을 만들어 보겠습니다.

  • header.jsp : 페이지 제목과 방문자 수를 출력하는 헤더
  • footer.jsp : 저작권 문구를 출력하는 푸터
  • main.jsp : 위 두 파일을 include로 포함하는 메인 페이지

① header.jsp

<%!
    int pageCount = 0;
    void addCount() {
        pageCount++;
    }
%>
<% addCount(); %>
<html>
    <head>
        <title>The include Directive Example</title>
    </head>
    <body>
        <center>
            <h2>The include Directive Example</h2>
            <p>This site has been visited <%= pageCount %> times.</p>
        </center>
      <br/><br/>

② footer.jsp

      <br/><br/>
      <center>
         <p>Copyright © 2010</p>
      </center>
  </body>
</html>

③ main.jsp

<%@ include file = "header.jsp" %>
  <center>
     <p>Thanks for visiting my page.</p>
  </center>
<%@ include file = "footer.jsp" %>

실행 결과 확인

세 파일을 모두 웹 애플리케이션의 루트(root) 디렉터리에 저장한 후 브라우저에서 main.jsp에 접속하면 다음과 같은 화면이 출력됩니다.

The include Directive Example

This site has been visited 1 times.

Thanks for visiting my page.

Copyright © 2010

main.jsp를 새로고침할 때마다 방문자 수가 1씩 계속 증가하는 것을 확인할 수 있습니다. 그 이유는 include 지시어가 번역 단계에서 header.jsp의 내용을 main.jsp에 그대로 병합하기 때문에, pageCount 변수와 addCount() 메서드가 마치 한 파일에 작성된 것처럼 동작하기 때문입니다.

include 지시어 활용 팁

웹 페이지를 설계할 때는 창의적인 아이디어를 자유롭게 반영하면 되지만, 다음과 같은 구조를 권장합니다.

  • 헤더, 푸터, 메뉴 등 공통 요소는 별도의 파일로 분리해서 관리합니다.
  • 메인 파일에서는 include 지시어로 이 파일들을 불러와 조합합니다.
  • 수정이 필요할 때는 분리된 파일 하나만 고치면 해당 부분을 사용하는 모든 페이지에 즉시 반영됩니다.

이런 방식은 코드 중복을 줄여 주고, 유지보수 효율을 크게 높여 줍니다.

참고: include 지시어 vs jsp:include 액션 태그

혼동하기 쉬운 부분을 짚고 넘어가겠습니다. <%@ include %> 지시어는 번역 시점에 파일을 합치는 정적 포함 방식인 반면, <jsp:include> 액션 태그는 요청(실행) 시점에 페이지를 포함하는 동적 포함 방식입니다. 정적인 공통 코드를 공유할 때는 include 지시어가, 포함되는 페이지가 매 요청마다 실행되어야 할 때는 jsp:include 액션이 더 적합합니다.