请求转发和响应重定向的使用场景是啥

来源:2-4 请求转发与响应重定向的原理

张鑫179

2019-12-03 15:24:18

课程讲了区别,但是对使用场景,优劣情况没有比较!

写回答

1回答

芝芝兰兰

2019-12-03

请求转发与重定向的区别各自的优势如下:

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方法。


如果解答了同学的疑问,望采纳~

祝学习愉快~


2

0 学习 · 9666 问题

查看课程