关于request.getRequestDispatcher()的两个方法以及request域

转:

关于request.getRequestDispatcher()的两个方法以及request域
原创
————————————————
版权声明:本文为CSDN博主「DoNg_2521」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/h2503652646/java/article/details/83661347

 

关于request.getRequestDispatcher()的两个方法以及request域
原创 DoNg_2521 最后发布于2018-11-02 21:00:48 阅读数 29853 收藏
展开

一、getRequestDispatcher()

getRequestDispatcher()包含两个方法,分别是请求转发和请求包含。

RequestDispatcher rd = request.getRequestDispatcher("/MyServlet");

请求转发: rd.forward( request , response );
请求包含: rd.include( request , response);

一个请求跨多个Servlet,需要使用转发和包含。

请求转发:由下一个Servlet完成响应体!当前Servlet可以设置响应头!(留头不留体)
请求包含:由两个Servlet共同完成响应体!(留头又留体)

无论是请求转发还是请求包含,都在一个请求范围内!使用同一个request和response!

二、请求转发和重定向的区别:

请求转发是一个请求一次响应,而重定向是两次请求两次响应。
请求转发地址不变化,而重定向会显示后一个请求的地址
请求转发只能转发到本项目其它Servlet,而重定向不只能重定向到本项目的其它Servlet,还能定向到其它项目
请求转发是服务端行为,只需给出转发的Servlet路径,而重定向需要给出requestURI,既包含项目名!

三、request域
同一个请求范围内使用request.setAttribute()和request.getAttribute()来传值!前一个Servlet调用setAttribute()保存值,后一个Servlet调用getAttribute()获取值;

点赞 19
收藏
分享

————————————————
版权声明:本文为CSDN博主「DoNg_2521」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/h2503652646/java/article/details/83661347

posted @ 2020-04-10 16:10  戈博折刀  阅读(2545)  评论(0编辑  收藏  举报