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
What is the structure of the http response
What is the capacity the doget can send to the server?
How to get the actual path of servlet in server?
What are the different ways we can maintain state between requests?
What do you mean by servlet?
What is string tokenizer?
Why filter is used in servlet?
What is getservletcontext?
What is difference between server and servlet?
What is the workflow of a servlet?
How can you use a servlet to generate a plain text instead of html?
Differentiate between get and post?
How can the session in servlet can be destroyed?
What do you mean by chaining in servlet?
What do you mean by interservlet communication?