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 |