-
重定向
重定向是指由原请求地址重新定位到某个新地址,原有的请求失效,客户端看到的是新的请求返回的响应结果,客户端浏览器的地址变为新的地址。
页面请求转发:RequestDispatcher dispatcher=request.getRequestDispatcher(path).forward(request,response); -
请求转发
请求转发是指将请求再转发到其他地址,转发的过程中使用的是同一个请求,转发后地址栏不发生变化,可以用与servlet之传递数据使用。
response.sendRedirect(path);
response.sendRedirect()方法不仅可以重定向到当前应用程序中的资源,还可以重定向到同一个站点上的其他应用程序的资源,甚至是使用绝对url重定向到其他站点的资源。 -
区别
转发是服务器行为,重定向是客户端行为
(1)转发在服务器端完成的;重定向是在客户端完成的
(2)转发的速度快;重定向速度慢
(3)转发的是同一次请求;重定向是两次不同请求
(4)转发不会执行转发后的代码;重定向会执行重定向之后的代码
(5)转发地址栏没有变化;重定向地址栏有变化
(6)转发必须是在同一台服务器下完成;重定向可以在不同的服务器下完成
(7)转发操作共享请求对象,重定向操作不能共享请求对象 -
请求转发与重定向的选择:
优先选择请求转发,因为转发效率更高;由于在转发之后,浏览器中URL仍然指向开始页面,此时如果重载(刷新)当前页面,开始页面将会被重新调用。如果不想看到这样的情况,则选择转发。
在同一Web应用程序的两个请求间传递数据时,在转发与重定向之间,只能通过转发实现。如果需要跳转到其它服务器上的资源,则必须使用重定向。
区别转发与重定向
最新推荐文章于 2022-05-16 19:21:30 发布