转发&重定向
转发:
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.重定向速度比转发慢