Forward Versus Redirect
It’s often necessary for more than one component to share control of a request. For example, one servlet may be responsible for authenticating and authorizing a client, while it’s the job of a different servlet to retrieve some data for the user. The sharing of a request can be accomplished in several different ways.
There are important differences between how a web container processes a forward request versus how it processes a redirect. The Struts front controller servlet, discussed in Chapter 1, will always perform one or the other for a typical request, so it’s important that you understand these differences and the impact that each mechanism will have on your application.
Using a Redirect
When the sendRedirect( )
method is invoked, it causes the web
container to return to the browser a response indicating that a new
URL should be requested. Because the browser issues a completely new
request, any objects that are stored as request attributes before the
redirect occurs will be lost. This is one of the biggest differences
between a forward and redirect. Figure 2-5
illustrates why this occurs.

Figure 2-5. A redirect causes the browser to issue a new request
Because of the extra round trip that occurs, a redirect is slower
than a forward. Example 2-1 provides an example
servlet that performs a redirect for a JSP page called
result.jsp when a request for ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access