1.二者的请求方式不同

redirect是通过客户端发起的请求,forward是通过服务器端发起的请求

2.在浏览器中二者的url表现不同

redirect在浏览器中显示的是被请求的URL,forward在浏览器中不显示被请求的URL

3.二者底层实现的思路不同

redirect发送的请求信息首先会发送到客户端,然后通过客户端再发送到服务器上,所以需要在客户端与服务器之间进行一次通信。forward是直接找到目标,并include过来。

4.参数传递不同

redirect:重新开始一个request,原页面的request生命周期结束。

forward:forward另一个连接的时候。request变量是在其生命周期内的。另一个页面也可以使用,其实质是把目标地址include。

5.定义不同

直接转发方式(forward):客户端和浏览器只发出一次请求,Servlet、HTML、JSP或其它信息资源,由第二个信息资源响应该请求,在请求对象request中,保存的对象对于每个信息资源是共享的。

间接转发方式(redirect)实际是两次HTTP请求,服务器端在响应第一次请求的时候,让浏览器再向另外一个URL发出请求,从而达到转发的目的。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐