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 cookie? Why is cookie used?
What is string tokenizer?
Write a simple servlet program to print the contents of html.
Define servlet mapping?
What do you understand by mime type?
How to handle exceptions thrown by application with another servlet?
What are the differences between the servletconfig interface and the servletcontext interface?
What if we pass negative value in load-on-startup?
What is the use of servlet context?
Why HttpServlet class is declared abstract?
How do you invoke a Servlet? What is the difference between doPost method and doGet method?
How to get the actual path of servlet in server?
Difference between forward() method and sendredirect() method ?
Tell us something about servletconfig interface.
What is the purpose of dispatcherservlet properties?