JSP

JSP include 하는 방법 (총 2가지)

bang2001 2013. 7. 25. 19:38

JSP에서는 C언어의 include나 java의 import처럼 외부의 다른 jsp파일을 include할 수 있다.


(음.. 물론 위에서 말한 비유가 정확히 맞는것은 아니나, 이해를 쉽기 위해서 예를 든 것이다.)

JSP에서 include하는 방법에는 두가지 방법이 있다.

-------------------------------------------------------------------------------------------

1. include 엑션(Action) 방식
<jsp:include page="소스경로" />

2. include 지시어 방식
<%@ include file="소스경로"%>

-------------------------------------------------------------------------------------------

위의 두가지 방법으로 사용할 수 있다. 이 두가지의 방법에는 어떤 차이가 있을까?

그 차이점에 대해서는 다음과 같다.

- include 액션방식 : include한 소스파일에 대해서 결과값을 계산 후 그 결과를 include
                          하는 방식

- include 지시어방식 : include한 소스파일의 코드(소스) 자체를 include하는 방식

이 차이에 대해서 조금더 구체적으로 설명하면...

예를 들어보자. 만약 소스파일에 다음과 같은 코드가 있다고 가정해보자.

<%! // 파일명이 test.jsp 라고 가정한다.
String msg = "안녕하세요~"; // 맴버변수 선언
out.println(msg);
%>

위의 코드가 있다는 가정하에서 위의 코드를 include한다고 가정하면

<jsp:include page="/test.jsp" /> <!-- 현재 상대경로이다. -->

이렇게 되어있다고 가정하면 위의 방식은 단지 out.println(); 을 통해서 서버에 request(요청)를 

보내게 되고, 이는 다시 서버로부터  출력되는 내용(response : 응답)을 받아들여서 include하고

이 결과와 기존의 코드(소스)를 서버에 보내게 되고(request : 요청), 

따라서 서버로부터 오는 응답(response)을 받아서 웹 브라우져에 보여주는 방식이가.

이 방식은 주로 간단한, 그리고 차후 수정이 거의 필요로 하지 않는 경우에 주로 사용한다.

그리고 지시어 방식으로 한다고 가정하면

<%@ include file="/test.jsp" %> <!-- 현재 상대경로이다. -->

이 방법은 코드(소스) 자체를 include하는 방법.. 즉 include하여 기존의 소스와

include한 소스를 합한 후 이 소스내용을 서버에 전달(request : 요청)하게 되고, 

따라서 서버로부터 출력되는 내용(response : 응답)을 받아들여서 웹 브라우져에 출력하게 된다.

이 두가지 방법은 결과적으로 나오는 내용은 같을 수 있으나, 프로그래머가 응용하고자 하기에 따라서

큰 차이를 보인다. 특히 두번째 방법은 소스(코드) 자체를 include하기 때문에 이 코드에 대해서 

다른 jsp파일에서 사용할 수 있다.

즉 이와같이 사용할 수 있다.

-------------------------------------------------------------------------------------------

<!-- 아래 코드의 파일명이 test.jsp 라고 가정한다. -->
<%!
String msg = "안녕하세요~"// 맴버변수 선언
%>

<!-- 위의 코드와 달리 다른 jsp파일이라고 가정한다. -->

<%@ include file="/test.jsp"%> <!-- 지시어 방식으로 include한다. -->
<%
out.println(msg+"잘부탁 드려요~");
%>

-------------------------------------------------------------------------------------------

위의 코드처럼 소스(코드) 자체를 include하기 때문에 위에서 선언한 변수를 다른 JSP파일에서

사용할 수 있다. 마치 자바에서 어떤 특정 클래스를 상속받아서 그곳에 있는 맴버변수를 이용하는

것처럼 사용할 수 있다.(객체의 상속과 비교했지만 객체의 상속과는 엄연히 다르므로 주의한다.)

대신 위의 방법은 하나의 페이지에 많은 소스코드가 들어가기 때문에 너무 남용하는것은

좋지않다. 적절히 사용하는것이 좋다.(뭐든지 적절히가 좋지요!)


'JSP' 카테고리의 다른 글

POST방식에 대한 자동한글처리를 해주는 Filter(필터) 만들기  (0) 2013.07.25
DBCP 구현하기  (0) 2013.07.25
서블릿에서 한국어 표현하기!  (0) 2013.07.25
JSP Servlet 맛보기!  (0) 2013.07.25
JSP 개요  (0) 2013.07.25