hanker

[JSP] jsp include (JSP 안에 JSP 넣기) 본문

HTML,JSP

[JSP] jsp include (JSP 안에 JSP 넣기)

hanker 2025. 5. 21. 16:32
반응형

JSP(JavaServer Pages)에서 다른 JSP 파일을 포함하는 방법에 대해서 알아보자.

주로 사용 목적에 따라 Static Include와 Dynamic Include로 나뉜다.

 


1. 정적 include
<%@ include file="header.jsp" %>

 

  • 컴파일 시점에 포함: 소스 코드 자체가 JSP 변환 전에 물리적으로 합쳐짐
  • 단일 서블릿 생성: 포함된 모든 파일이 하나의 서블릿으로 컴파일됨
  • 변수 공유: 포함된 모든 파일이 같은 스코프를 공유함
  • 성능 우수: 한 번 컴파일되어 서블릿이 한 번만 생성되므로 실행 속도가 빠름
  • 정적 콘텐츠: 컴파일 후에는 변경 불가능

 

 

작용 상황

  • 자주 변경되지 않는 공통 헤더, 푸터
  • 공통 변수 선언이나 메서드 정의
  • 사이트 전체에서 공통으로 사용되는 상수나 설정
  • 성능이 중요한 부분

2. 동적 include
<jsp:include page="footer.jsp" />

 

- 파라미터 전송 시

<jsp:include page="footer.jsp">
    <jsp:param name="user" value="홍길동" />
</jsp:include>

 

 

  • 런타임 시점에 포함: 실행 시점에 요청을 포함된 페이지로 전달하고 결과를 포함
  • 다중 서블릿 생성: 각 JSP 파일마다 별도의 서블릿으로 컴파일됨
  • 변수 분리: 각 파일은 별도의 스코프를 가짐 (직접 변수 공유 불가)
  • 요청 매개변수 전달: param 태그로 데이터 전달 가능
  • 동적 콘텐츠: 매 요청마다 새로 처리되므로 항상 최신 내용 반영

 

적용 상황

  • 자주 변경되는 콘텐츠
  • 각 포함 페이지가 독립적으로 작동해야 하는 경우
  • 실행 시점에 다른 페이지를 포함해야 하는 경우 (조건부 포함)
  • 파라미터에 따라 다른 결과를 보여줘야 하는 경우

정리

 

구분 정적 <%@ include %> 동적 <jsp:include>
포함 시점 컴파일 타임 런타임
성능 빠름 (정적) 약간 느림 (동적)
스코프 공유 O X
리로드 반영 서버 재시작 필요 즉시 반영
변수 공유 공유됨 공유되지 않음
반응형