Why use 'redirect=true' in struts 1.* forward?

Redirect sends a response to the browser that forces the browser to make a new request. From the server point of view, the browser just makes a new request (albeit autmatically). Some characteristics of a redirect:

  • The existing parameters and attributes are disposed, a new request is formed with the parameters you specify in the URL.
  • The new URL is visible in the browser, the user can bookmark it.
  • It takes a trip to the browser and back, so it can be slower.

A forward happens on the server. The browser is not involved in this. Some characteristics of the forward:

  • New parameters are added or overwrite existing parameters. So the existing parameters cannot be removed from the request.
  • Stuff can be added in request context, it will remain available. You can pass information in this way.
  • The URL is not changed in the browser, for the browser the original address remains intact.
  • You can only forward to another URL in the same application.

So it depends on what you want to accomplish. A forward is generally spoken faster. But if the user should be able to bookmark the new location, it is not an option.


it prevents the 'double submit problem'

Never show pages in response to POST

Always load pages using GET

Navigate from POST to GET using REDIRECT

more on this here and here

Tags:

Struts