请求转发(RequestDispatcher):服务器收到请求后,从一个资源跳转到另一个资源的操作。
(1)浏览器地址栏不发生改变,不会变为目标地址
(2)请求转发是服务器的行为,整个转发的过程在服务器中完成
(3)整个过程是一次请求,一次响应
(4)各个资源共享Request域中的数据
(5)可以转发到WEB-INF目录下
(6)不可以访问工程以外的资源(如:http://www.baidu.com)
响应重定向(Redirect):客户端给服务器发请求,然后服务器发送重定向的状态码给客户端,同时客户端向服务器重新请求指定的地址。
(1)浏览器地址栏发生改变,变为目标地址
(2)重定向是浏览器的行为,通过响应对象HttpServletResponse来执行
(3)整个过程是两次请求,两次响应
(4)不共享Request域中数据
(5)不能访问WEB-INF目录下的资源
(6)可以访问工程外的资源(如:http://www.baidu.com)
区别:
请求转发:不会改变url,只是获取另外一个url的地址,而重定向则会改变改变url,实现url的跳转