这里 request的请求转发和response的重定向有什么区别呢?

这里 request的请求转发和response的重定向有什么区别呢?

http://img1.sycdn.imooc.com//climg/5dedb14c09374e5012260802.jpg

HttpServletRequest HttpServletResponse作用分别是什么呢?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好!请求转发与重定向的区别如下:

1、RequestDispatcher.forward方法的调用者与被调用者之间共享相同的request对象和response对象,它们属于同一个访问请求和响应过程。所以在转发的前后页面中传递信息,可以使用request的Attribute

2、HttpServletResponse.sendRedirect方法调用者与被调用者使用各自的request对象和response对象,它们属于两个独立的访问请求和响应过程。这种情况下在request中放置Attribute会丢失,所以需要用session或者ServletContext对象。

3、综上所述,对于同一个WEB应用程序的内部资源之间的跳转,特别是跳转之前要对请求进行一些前期预处理,并要使用HttpServletRequest.setAttribute方法传递预处理结果,那就应该使用RequestDispatcher.forward方法。

不同WEB应用程序之间的重定向,特别是要重定向到另外一个WEB站点上的资源的情况,都应该使用HttpServletResponse.sendRedirect方法。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师