Programming > JSP/HTML/JSTL

JSP include (정적, 동적) 삽입

정적 include vs 동적 include

  정적 include 동적 include
usage <%@ include ... <jsp:include ...
compile 부모에 자식을 포함시킨후에 통째로 컴파일 한다. 실행(runtime)시 자식을 컴파일해 불러온다.
파일수정 자식JSP만 변경하면 적용이 안된다.
자식변경시 부모 jsp파일도 수정이 있어야 재컴파일
자식 jsp 파일만 수정해도 바로 재컴파일되어 반영된다.
변수사용 부모jsp에서 정의한 변수를 자식jsp에서 그대로 사용할 수 있다. 부모/자식간은 완전 별개의 파일로 간주되 변수는 개별 전달해야 사용가능하다.
※ 아래 상세 참조
import java클래스등을 부모에서 import하면 자식jsp에서도 사용가능 java 클래스는 부모/자식은 각각 import해야만 한다.

 

정적 include

정적인 방법으로 고정의 의미를 갖는다.

사용방법

<%@include file="mc.jsp" %>

 

랜더링 과정

부모 JSP파일과 include되는 mc.jsp파일이 하나의 파일로 합쳐진 후, Java파일로 변경되어 class파일로 컴파일된 후 HTML로 랜더링된다.

mc.jsp 파일내 변수를 부모 JSP파일에서 사용가능한다.

mc.jsp 파일을 수정해도 부모 JSP파일의 수정이 없으면 재 컴파일이 안된다.

 

동적 include

동적으로 한 시점에 포함되는 방식

페이지 include

사용방법

<jsp:include page="mc.jsp" flush="false">

 

랜더링 과정

부모 JSP 파일이 Java로 변경된 후 class로 컴파일 되고 HTML로 렌더링 되는 실행 시점에 mc.jsp파일이 include 된다.

 mc.jsp 파일이 수정되면, 부모 JSP파일의 변경과 관계없이 재컴파일되어 적용된다.

 

부모 JSP에서 include 페이지에 변수전달

<jsp:include page="mc.jsp" flush="false">
       <jsp:param name="myval" value="${xxxx}" />
</jsp:include>

부모 페이지에서 전달할 파라메터를 위와 같이 정의하고

mc.jsp 파일내에서는 request.getParameter("myval"); 과 같이 사용한다.

파일 include

부모 JSP파일이 Java파일로 변경될때 삽입되어 컴파일된다.

부모 JSP파일에서 쓰던 변수를 그대로 사용가능하다.

사용방법

<jsp:include file="mc.jsp" />