본문 바로가기

Language/Java / JSP

[JSP] 정적, 동적 include

반응형

JSP에서 파일을 include 하는 방법은 2가지가 있다. 정적 include와 동적 include가 그러하다.
비슷하면서도 서로 다른 이녀석들은 개인 취향에 따라 사용하는것이 다르기 때문에 이게 맞다, 틀리다 라고 결정지을수는 없다.

나 같은경우 간단한 jsp 프로젝트의 경우 에디트 플러스를 이용해서 개발하는데, 이때는 정적 include를 많이 이용하는 편이다.
하지만 스프링 프레임워크를 이용한 개발시와 같이 이클립스를 통한 개발을 할때는 동적 include를 많이 이용한다.

사실 동적 방식이 변수를 추적하기 쉬운 이유도 있었지만, 제일 처음에 동적방식을 사용하게 된 이유는
이클립스에서 정적 include에서 선언한 변수를 부모 페이지에서 가져다 쓰면 선언되지 않은 변수라는 에러가 계속 나와서 이다.


실행에는 문제가 없지만 에러 메세지를 보기가 싫어서 그 후로는 동적 include를 썼다.



1. 정적 include


jsp가 컴파일되기 전에 include한 파일(common.jsp)이 부모 페이지에 삽입되어 컴파일된다.


사용법 : <%@include file="/inc/common.jsp" %>
장점 : include 페이지에서 선언한 변수를 부모페이지에서 별도의 변수 선언없이 사용이 가능하다.
단점 : 부모 페이지에 include한 파일이 많을경우 inlucde 페이지에서 선언된 변수를 추적해야해 유지보수할때 귀찮다.



2. 동적 include

사용자가 부모페이지 호출시 실행되어질 시점에 include한 파일이 삽입된다.

사용법 : <jsp:include page="/inc/common.jsp" flush="true" />
장점 : 부모페이지와 include 페이지는 변수를 공유하지 않으므로 유지 보수시에 편하다.
단점 : 부모페이지에서 include한 파일에서 선언한 변수를 사용시 <jsp:param name="userName" value="<%=userName%>"/> 과 같이 부모페이지에서 지정해 주어야 한다.


<jsp:include page="/inc/common.jsp" flush="true">
    <jsp:param name="userName" value="<%=userName%>"/>
    <jsp:param name="userAge" value="<%=userAge%>"/>
</jsp:include>



덧) 주변 사람을 둘러보면 요새는 동적 include를 많이 사용하는 편.