• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Choosing Between Forward and Redirect

 
Ranch Hand
Posts: 181
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi

Often I found folks finding it messy choosing between Forward and Redirect..

I found this to be very clear:

http://java.oreilly.com/news/jsptips_1100.html



When you want to pass the control from one page to another, you can either forward to the other page, or redirect to the new page using the sendRedirect() method of the implicit response object.

Notice the following differences 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.


When you redirect, it 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).

And now how do you decide if you should use forward or redirect?

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, you ask yourself what happens if the user reloads the page or just resizes the window, this often reloads the page automatically).

But if your start page is a page that updates some information, such as adding an item to the shopping cart or inserting information in a database, you don't want it to be invoked again on a reload. To show the result of the processing, redirect to a page with a confirmation message, instead of using forward.



Cheers,
Su Yeu
[ January 16, 2006: Message edited by: Su Yeu ]
 
(instanceof Sidekick)
Posts: 8791
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Redirect After Post shows a nifty application of redirect. It's a full article expansion on your last paragraph, really.
 
Ew. You guys are ugly with a capital UG. Here, maybe this tiny ad can help:
a bit of art, as a gift, that will fit in a stocking
https://gardener-gift.com
reply
    Bookmark Topic Watch Topic
  • New Topic