Lew wrote:
> Arne Vajhøj wrote:
>> wrote:
>>> In Tomcat 4.1.27 servlet I am using RequestDispatcher type to forward
>>> a message and get it in JSP. How can I do the same using redirect
>>> instead?
>>>
>>> Here is what I have -
>>>
>>> Servlet:
>>> request.setAttribute("MyMessage", "Hello");
>>> RequestDispatcher requestDispatcher = request.getRequestDispatcher("/
>>> toPage.jsp");
>>> requestDispatcher.forward(request, response);
>>>
>>>
>>> toPage.jsp
>>> out.println(request.getAttribute("MyMessage"));
>>>
>>>
>>> Now using redirect would this be the best way?
>>> String myMessage = "Hello";
>>> session.setAttribute("myMessage",myMessage);
>>> response.sendRedirect("Â*/toPage.jsp");
>>>
>>>
>>> toPage.jsp
>>> out.println(session.getAttribute("MyMessage"));
>>
>> I think keeping forward instead of switching to send redirect
>> is the right way.
>
> It is less traffic between client and server to use forward rather than
> redirct. You can pass information via the request rather than the
> session with forward. You can hang on to server-side resources through
> a forward. You stay within the application context with a forward. A
> forward is faster, cleaner and easier to control than a redirect.
>
For my personal webapps, I forward after a GET, but redirect after a
successful POST to send the client to a "here's the current state" page.
The page can be reloaded or gone back to without triggering "this page
contains POSTed data." I much prefer this user experience.