forward 메서드는 jsp 페이지 안에서 다른 jsp 페이지를 호출할때 사용하는 메서드이다.

이메서드는 호출된 jsp 페이지가 끝나고 나도 실행 흐름의 제어를 되돌려주지 않는다.

그러므로 어떤 jsp 페이지가 할 일을 모두 마치고 난 다음에 다른 jsp 페이지를 호출하고자 할 때 사용하는것이 적합하다.


이메서드는 javax.servlet.RequestDispatcher 인터페이스에 속하기 때문에 이 타입의 객체가 있어야 호출할수 있다.

그런 객체는 아무렇게나 만들면 안 되고 반드시 request 내장 변수에 대해 getRequestDispatcher 메서드를 호출해서 얻어야 한다

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


1
2
3
4
RequestDispatcher dispatcher = request.getRequestDispatcher("Result.jsp");
 
RequestDispatcher dispatcher = request.getRequestDispatcher("/Result.jsp");
 
cs

 

 / 슬러시 로 시작하는 값은 웹 애플리케이션 디렉터리를 기준으로 한 url 경로명으로 해석되기 때문에 

/Result.jsp 라고 쓰면 웹 애플리케이션 디렉터리에 있는 Result.jsp 파일을 가르킨다.



RequestDispatcher 객체를 구한 다음에는 그 객체에 대해 forward 메서드를 호출할수 있다.

이 메서드를 호출할 때에는 request 내장 변수와 response 내장 변수를 파라미터로 넘겨야 한다.


1
dispatcher.forward(request,response);
cs



이 메서드를 통해 호출되는 jsp 페이지로부터 데이터를 넘겨주려면 forward 메서드보다 먼저

request.setAttribute 라는 메서드를 호출해서 request 내장변수 안에 데이터를 저장해 놓으면 된다 .

이메서드는 문자열 타입의 데이터 이름과 객체 타입의 데이터값을 파라미터로 받는다 .


1
2
request.setAttribute("HEIGHT","new Integer");
                //    데이터 이름  데이터 값
cs

 


이렇게 저장된 데이터를 호출된 jsp 페이지 안에서 가져오려면 request.getAttribute 메서드를 이용해야 한다.

이메서드는 데이터 이름을 파라미터로 받고 그에 해당하는 데이터 값을 찾아서 리턴한다.

하지만 리턴타입이 object 타입이기 때문에 본래의 타입으로 사용하려면 캐스트 연산을 해야한다.


1
2
3
Integer height = (Integer) request.getAttribute("HEIGHT");
                //캐스트연산자                   데이터이름
 
cs
 


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

서블릿 클래스에서 세션 사용하기  (0) 2017.02.26
include  (0) 2017.02.26
servlet 에서 파일 업로드  (0) 2017.02.26
JSTL 코어 라이브러리  (0) 2017.02.26
EL 익스프레션 언어  (0) 2017.02.26

+ Recent posts