include 메서드도 forward 메서드처럼 다른 jsp 페이지를 호출하는 기능을 하지만 

호출된 jsp 페이지가 끝나고나면 실행 흐름의 제어가 본래의 jsp 페이지로 돌아온다는 점이 다르다.

그렇기 때문에 이 메서드는 여러 jsp 페이지가 공통으로 사용하는 코드를 호출하고자 할 때 사용하는 것이 좋다.


이메서드는 forward 메서드와 마찬가지로 javax.servlet.RequestDispatcher 인터페이스에 속하므로 

먼저 RequestDispatcher 객체를 구해야 한다. 그런 객체는 getRequestDispatcher 메서드를 이용해서 구할수 있으며

이메서드를 호출할 때는 include 메서드가 호출할 jsp 페이지의 url 경로명을 파라미터로 넘겨줘야 한다.


1
RequestDispatcher dispatcher = request.getRequestDispatcher("today.jsp");
cs


이렇게 구한 RequestDispatcher 객체를 이용해서 include 메서드를 호출할 때는 

request 내장 변수와 response 내장 변수를 파라미터로 넘겨줘야 한다.


1
dispatcher.include(request,response);
cs


include 메서드를 통해 호출되는 jsp 페이지로 데이터를 넘겨주기 위해서는 
forward 메서드의 경우와 마찬가지로 request 내장변수에 대해 
setAttribute 메서드와 getAttribute 메서드를 호출하면 된다.


1
2
3
request.setAttribute("WEIGHT"new double(72.5));
 
Double weight = (double) request.getAttribute("WEIGHT");
cs


include 메서드는 include 지시자와 비슷해 보이지만 내부적으로 작동하는 방식은 다르다.
include 메서드는 jsp페이지가 실행되는 시점에 해당 jsp 페이지를 호출해서 실행하지만
include 지시자는 웹 컨테이너가 jsp 페이지를 서블릿 클래스로 변환하는 시점에 해당 jsp 페이지 로부터
변환된 코드를 그 서블릿 클래스의 일부로 만든다.

'JSP&Servlet' 카테고리의 다른 글

서블릿 클래스의 init 메서드/destroy 메서드  (0) 2017.02.26
서블릿 클래스에서 세션 사용하기  (0) 2017.02.26
forward  (0) 2017.02.26
servlet 에서 파일 업로드  (0) 2017.02.26
JSTL 코어 라이브러리  (0) 2017.02.26

+ Recent posts