Please Enable JavaScript!
Mohon Aktifkan Javascript![ Enable JavaScript ]

Include 지시어와 액션, forward와 redirect 의 비교

2010. 6. 12. 00:22programming/jsp

728x90

:: include 지시어 ::

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

 

:: include 액션 ::

<jsp:include page="file_name.jsp" />

 

include 액션은 다른 파일을 불러온다는 측면에서 include 지시어와 개념이 유사하다. 하지만 include 지시어는 해당 파일을 포함시킨 다음 컴파일하는데 비해, include 액션은 실행 시점에서 해당 파일을 호출하여 그 결과를 포함한다는 점에 차이가 있다. include 지시어와 마찬가지로 include 액션은 유용한 기능을 제공하지만, 포함될 파일들을 각각 핸들링 하기때문에 성능상의 문제를 야기할 수 있으므로 적절하게 사용하는 것이 필요하다.

 

정리하면, include 액션은 파일 두개를 각각 컴파일해서 관리하기 때문에 동적인 페이지를 포함시킬 경우에 사용하는 것이 좋고, include 지시어는 파일 내용 두 개를 하나로 컴파일 하기 때문에 잘 바뀌지 않는 정적인 페이지를 고정하여 포함시켜 사용하는 것이 좋다로 볼수 있다.

 

:: include 액션 - Parameter submit ::

<jsp:include page="file_name.jsp">

    <jsp:param name="param_name" value="param_value" />

</jsp:include>

 

또한, include 액션의 특징 중 하나는  변수를 전달할 수 있다는 점이다. include 액션에서 JSP 파일을 포함하거나 forward 액션을 통해 JSP로 포워딩 할때 param 태그를 이용해 속성 값을 전달할 수 있다. 전달된 파라미터 값은 request.getParameter() 를 통해 접근할 수 있다.

 

:: include 액션과 또다른 forward 액션 ::

<jsp:forward page="file_name.jsp">

    <jsp:param name="param_name" value="param_value" />

</jsp:forward>

include와 forward의 가장 큰 차이점은, include 액션은 명시된 page가 부모페이지에 종속적으로 포함되는 형태 이며 제어권은 부모페이지에 유지되지만 forward 액션의 경우 페이지의 제어권이 forward 액션에 명시된 page 로 제어권이 이동하면서 페이지 이동이 생긴다는 점이다.

결과만 생각한다면 response 객체의 sendRedirect() 와 유사하지만, sendRedirect() 는 단순히 사용자 요청을 다른 페이지로 보내는 것으로 새로운 페이지를 위한 request 와 response 객체가 생성되지만, forward 액션의 경우 원래 요청에 포함된 request 와 response 객체가 그대로 전달 된다는 차이가 있다.

 

* pageContext 를 이용한 include 와 forward

pageContext 객체를 이용하여 내장객체의 메소드를 호출하는 방식으로 include 와 forward 를 하는것도 가능하다.

pageContext.forward("file_name.jsp");

pageContext.include("file_name.jsp");

 

728x90