tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alex Fernández <afm...@tid.es>
Subject Re: response.sendRedirect vs. requestDispatcher.forward
Date Tue, 29 May 2001 14:57:02 GMT
Conceptually, requestDispatcher.forward() is different from
response.sendRedirect().

In forward(), you are moving inside the same webapp, and as such it
doesn't even reach the client browser. The session is maintained.

In sendRedirect(), you're instead moving across webapps, and it's the
browser that redirects to the specified location. In fact, it doesn't
even need to be another servlet, you may redirect to an ASP or a static
page. New request and response are created.

It seems strange that the session is not maintained, though, since both
requests come from the same browser. Perhaps it's a bug?

Un saludo,

Alex.

A Yang wrote:
> 
> Hi All,
> 
> Does anyone know offhand whether the Java Servlet
> specification requires a new HttpSession to be created
> when using HttpServletResponse.sendRedirect()?
> 
> In a servlet, I was using:
> 
> getServletConfig().getServletContext().getRequestDispatcher("/Result.jsp").forward(req,
> resp);
> 
> at the end of a sequence of pages/servlets, but I
> wanted to replace it with
> 
> response.sendRedirect("/Result.jsp");
> 
> instead. The result page prints out the contents of
> several javabeans which are stored in the session.
> 
> This worked fine when all I used were
> requestDispatcher.forward but with
> response.sendRedirect(), all of my session attributes
> are gone! In fact, the session id is different after
> the sendRedirect.
> 
> I'm pretty sure the session is supposed to survive
> across any series of GET's and POST's until it is
> invalidated explicitly (or timed out).
> 
> Any thoughts? I'm using Tomcat 3.2.1
> 
> Thanks.
> 
> _______________________________________________________
> Do You Yahoo!?
> Get your free @yahoo.ca address at http://mail.yahoo.ca

Mime
View raw message