Win a copy of Functional Reactive Programming this week in the Other Languages forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

jsp:forward and res.sendRedirect()

 
sree bk
Greenhorn
Posts: 7
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi
I think i got the last question wrong. I read somewhere that fsp:forward can ONLY forward to a URL on the local server (or within the same context ?) while this is not so with sendRedirect()?
Isn't this a big limitation then ?
sree bk
 
Alex Kravets
Ranch Hand
Posts: 476
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I guess it could be looked at as limitation, but with <jsp:forward> you can also send parameters to the next page. Sure you can do it using: res.sendRedirect("www.website.com?var1=33");, but then you will see what you've sent once the redirected page is loaded, with jsp:forward I don't think you will.
 
Tony Alicea
Desperado
Sheriff
Posts: 3226
5
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
From http://java.oreilly.com/news/jsptips_1100.html (Top Ten JSP Tips)
4.Choosing Between Forward and Redirect
If you want to pass the control from one page to another, you can either
forward to the other page, as described above, or redirect to the new page
(using the sendRedirect() method of the implicit response object).
There's an important difference between a forward and a redirect. When
you forward, the target page is invoked by the JSP container through an
internal method call; the new page continues to process the same request
and the browser is not aware of the fact that more than one page is
involved. A redirect, on the other hand, means that the first page tells the
browser to make a new request to the target page. The URL shown in the
browser therefore changes to the URL of the new page when you redirect,
but stays unchanged when you use forward. A redirect is slower than a
forward because the browser has to make a new request. Another difference
is that request scope objects are no longer available after a redirect because
it results in a new request. If you need to pass data to the page you redirect
to, you have to use a query string and pass them as request parameters (or
save the data as session or application scope objects).
So how do you decide if you should use forward or redirect? I look at it
like this: Forwarding is always faster, so that's the first choice. But since
the URL in the browser refers to the start page even after the forward, I ask
myself what happens if the user reloads the page (or just resizes the
window; this often reloads the page automatically). If the start page is a
page that updates some information, such as adding an item to the shopping
cart or inserting information in a database, I don't want it to be invoked
again on a reload. To show the result of the processing, I therefore redirect
to a page with a confirmation message, instead of using forward.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic