转发&重定向

转发:

RequestDispatcher requestDispatcher = request.getRequestDispatcher("/welcome.jsp");
requestDispatcher.forward(request,response);

重定向:

response.sendRedirect("/welcome.jsp");

转发和重定向的区别:

1.地址栏变化
转发不会改变地址栏中的URL,而重定向则会改变
2.跳转范围
转发只能访问到当前web应用中的内容,相对URL以“/”开头,它是相对于当前WEB应用程序的根目录;而重定向则可以访问到任意web应用中的内容,相对URL以“/”开头,是相对于整个WEB站点的根目录。
3.request/response对象作用范围
转发后,在转发后的页面中仍然可以使用原来的request对象,而重定向,原来的request对象则失去作用.
所以,如果想要在多个页面使用相同的request对象,那么只能使用转发,而不能使用重定向. 

4.转发是服务器行为,重定向是客户端行为。也就是说转发浏览器只做了一次请求,但是重定向浏览器至少是进行了两次以上的请求。

5.重定向速度比转发慢

原文地址:https://www.cnblogs.com/qulingyuan/p/9921155.html