Web/JSP

JSP #16 sendRedirect & forward

언덕너머에 2015. 2. 6. 17:27

* sendRedirect

 - 내장객체인 response의 매서드

 - 브라우저의 URL을 변경하도록 하여 페이지를 이동하는 방식으로 request와 response 객체가

   유지되지 않는다. 페이지를 이동하면서 데이터를 전송하기 위해서는 패러미터 값을 쿼리 스트링

   형태로 덧붙여 주어야 한다.

  ex)

  response.sendRedirect("test.jsp?age=" + 20);

 

* forward

 - requestDispatcher 객체로 접근해야만 호출이 가능하다.

   requestDispatcher 객체는 request 객체의 getRequestDispatcher() 매서드를 호출해서 얻는다.

 - 포워드 방식은 서버상에서 페이지가 이동되기 때문에 브라우저는 알아채지 못하고 URL도 변경

   되지 않는다. 또한 기존의 request와 response는 유지되어 이동된다.

 - 페이지 이동시 데이타를 전송하고 싶다면 기존의 request 객체가 그대로 유지되기 때문에

   setAttribute() 매서드로 request 객체에 속성 값으로 저장해서 보내준다.

  ex)

  request.setAttribute("age", 20);

  RequestDispatcher dispatcher=request.getRequestDispatcher("test.jsp");

  dispatcher.forward(request, response);