概述
请求转发(forward):request对象下的方法
request.getRequestDispatcher(path).forward(request, response);
重定向(Redirect):response
response.sendRedirect(path);
本质区别:
1、请求的转发(forward)只发出了一次请求, 由浏览器发出一个quest到对应的Servlet中,在处理完成后,转发到别的Serlvet或者页面中继续处理,最后将这次的响应信息发给浏览器
2、重定向(Redirect)则发出了两次请求.
1)由浏览器发出一个quest到对应的Servlet中,在处理完成后,将这次的信息响应给浏览器。
2)浏览器在接收到这次的响应后,按照响应提供的路径(path)再向该方向发起第二次Servlet重新处理。处理完成后,重新响 应给浏览器
forward的原理图:
Redirect的原理图:
具体区别:
①. 请求的转发: 地址栏是初次发出请求的地址.
请求的重定向: 地址栏为最后响应的那个地址
②. 请求转发: 在最终的 Servlet 中, request 对象和中转的那个 request 是同一个对象.
请求的重定向: 在最终的 Servlet 中, request 对象和中转的那个 request 不是同一个对象.
③. 请求的转发: 只能转发给当前 WEB 应用的的资源
请求的重定向: 可以重定向到任何资源.
④. 请求的转发: / 代表的是当前 WEB 应用的根目录
请求的重定向: / 代表的是当前 WEB 站点的根目录.
最后
以上就是难过鲜花为你收集整理的请求转发(forward) 与 重定向(Redirect)的区别的全部内容,希望文章能够帮你解决请求转发(forward) 与 重定向(Redirect)的区别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复