getRequestDispatcher 中请求转发和请求包含的使用说明
程序员文章站
2022-07-01 12:40:33
getRequestDispatcher() getRequestDispatcher() 包含两个方法,分别是请求转发和请求包含。 请求转发:当前Servlet可以设置响应头, 由下一个Servlet完成响应体 ,下一个Servlet输出响应体后, 当前Servlet不可以继续输出 !(留头不留体 ......
getrequestdispatcher()
getrequestdispatcher() 包含两个方法,分别是请求转发和请求包含。
requestdispatcher rd = request.getrequestdispatcher("/myservlet"); rd.forward(request, response); // 请求转发 rd.include(request, response); // 请求包含
- 请求转发:当前servlet可以设置响应头,由下一个servlet完成响应体,下一个servlet输出响应体后,当前servlet不可以继续输出!(留头不留体)
- 请求包含:当前servlet可以设置响应头,由两个servlet共同完成响应体,下一个servlet输出响应体后,当前servlet可以继续输出!(留头又留体)
无论是请求转发还是请求包含,都在一个请求范围内!使用同一个request和response。
请求转发和重定向的区别
- 请求转发只有一次请求和一次响应,重定向有两次请求和两次响应。
- 请求转发地址不发生改变,重定向会跳转到后一个请求的地址。
- 请求转发只能转发到本项目的其它servlet,重定向不只能重定向到本项目的其它servlet,还能重定向到其它项目。
- 请求转发是服务端行为,只需给出转发的servlet路径,重定向需要给出requesturi,既包含项目名。
请求值传递
同一个请求范围内可以使用request.setattribute()和request.getattribute()来相互传值。前一个servlet调用setattribute()保存值,后一个servlet调用getattribute()获取值。
推荐阅读
-
nginx的请求转发和php的header请求跳转原理是一样的吗?
-
浅谈IOS中AFNetworking网络请求的get和post步骤
-
Servlet获取AJAX POST请求中参数以form data和request payload形式传输的方法
-
[日常] 使用TCPDUMP和Ethereal抓包分析HTTP请求中的异常情况
-
php中curl和soap方式请求服务超时问题的解决
-
微信小程序授权 获取用户的openid和session_key【后端使用java语言编写】,我写的是get方式,目的是测试能否获取到微信服务器中的数据,后期我会写上post请求方式。
-
Scrapy中的POST请求发送和递归爬取
-
浅谈HTTP中GET和POST请求方式的区别
-
SpringMVC中如何解决post和get请求的中文乱码问题
-
Servlet请求转发的步骤和实例