정적 include | 동적 include | |
---|---|---|
usage | <%@ include ... | <jsp:include ... |
compile | 부모에 자식을 포함시킨후에 통째로 컴파일 한다. | 실행(runtime)시 자식을 컴파일해 불러온다. |
파일수정 | 자식JSP만 변경하면 적용이 안된다. 자식변경시 부모 jsp파일도 수정이 있어야 재컴파일 | 자식 jsp 파일만 수정해도 바로 재컴파일되어 반영된다. |
변수사용 | 부모jsp에서 정의한 변수를 자식jsp에서 그대로 사용할 수 있다. | 부모/자식간은 완전 별개의 파일로 간주되 변수는 개별 전달해야 사용가능하다. ※ 아래 상세 참조 |
import | java클래스등을 부모에서 import하면 자식jsp에서도 사용가능 | java 클래스는 부모/자식은 각각 import해야만 한다. |
정적인 방법으로 고정의 의미를 갖는다.
<%@include file="mc.jsp" %>
부모 JSP파일과 include되는 mc.jsp파일이 하나의 파일로 합쳐진 후, Java파일로 변경되어 class파일로 컴파일된 후 HTML로 랜더링된다.
mc.jsp 파일내 변수를 부모 JSP파일에서 사용가능한다.
mc.jsp 파일을 수정해도 부모 JSP파일의 수정이 없으면 재 컴파일이 안된다.
동적으로 한 시점에 포함되는 방식
<jsp:include page="mc.jsp" flush="false">
부모 JSP 파일이 Java로 변경된 후 class로 컴파일 되고 HTML로 렌더링 되는 실행 시점에 mc.jsp파일이 include 된다.
mc.jsp 파일이 수정되면, 부모 JSP파일의 변경과 관계없이 재컴파일되어 적용된다.
<jsp:include page="mc.jsp" flush="false">
<jsp:param name="myval" value="${xxxx}" />
</jsp:include>
부모 페이지에서 전달할 파라메터를 위와 같이 정의하고
mc.jsp 파일내에서는 request.getParameter("myval"); 과 같이 사용한다.
부모 JSP파일이 Java파일로 변경될때 삽입되어 컴파일된다.
부모 JSP파일에서 쓰던 변수를 그대로 사용가능하다.
<jsp:include file="mc.jsp" />