What is the difference between RequestDispatcher and
sendRedirect?-

Answer Posted / qim2010

The forward method of RequestDispatcher will forward the
ServletRequest and ServletResponse that it is passed to the
path that was specified in getRequestDispatcher(String
path). The response will not be sent back to the client and
so the client will not know about this change of resource on
the server. This method is useful for communicating between
server resources, (servlet to servlet). Because the request
and response are forwarded to another resource all request
parameters are maintained and available for use. Since the
client does not know about this forward on the server, no
history of it will be stored on the client, so using the
back and forward buttons will not work. This method is
faster than using sendRedirect as no network round trip to
the server and back is required.

An example using forward:
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException,
IOException {
RequestDispatcher rd =
request.getRequestDispatcher("pathToResource");
rd.forward(request, response);
}

The sendRedirect(String path) method of HttpServletResponse
will tell the client that it should send a request to the
specified path. So the client will build a new request and
submit it to the server, because a new request is being
submitted all previous parameters stored in the request will
be unavailable. The client's history will be updated so the
forward and back buttons will work. This method is useful
for redirecting to pages on other servers and domains.

An example using sendRedirect:
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException,
IOException {
response.sendRedirect("pathToResource");
}

Is This Answer Correct ?    3 Yes 1 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

What is the structure of the http response

677


What is the capacity the doget can send to the server?

578


How to get the actual path of servlet in server?

741


What are the different ways we can maintain state between requests?

580


What do you mean by servlet?

724






What is string tokenizer?

632


Why filter is used in servlet?

528


What is getservletcontext?

552


What is difference between server and servlet?

581


What is the workflow of a servlet?

721


How can you use a servlet to generate a plain text instead of html?

599


Differentiate between get and post?

684


How can the session in servlet can be destroyed?

715


What do you mean by chaining in servlet?

576


What do you mean by interservlet communication?

590