javaweb之请求转发和请求包含
来源:互联网 发布:java ftp上传文件 编辑:程序博客网 时间:2024/04/28 20:55
·关于请求转发和请求包含我们首先得知道无论是请求转发还是请求包含,都表示由多个Servlet共同来处理一个请求。
例如Servlet1来处理请求,然后Servlet1又转发给Servlet2来继续处理这个请求。下面用例子测试下:
-----请求转发
在AServlet中,把请求转发到BServlet:
public class AServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {System.out.println("AServlet");RequestDispatcher rd = request.getRequestDispatcher("/BServlet");rd.forward(request, response);}}
public class BServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {System.out.println("BServlet");}}
结果:
Aservlet
BServlet
-----请求包含
在AServlet中,把请求包含到BServlet:
public class AServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {System.out.println("AServlet");RequestDispatcher rd = request.getRequestDispatcher("/BServlet");rd.include(request, response);}}
public class BServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {System.out.println("BServlet");}}
结果:
Aservlet
BServlet请求转发与请求包含比较
1.如果在AServlet中请求转发到BServlet,那么在AServlet中就不允许再输出响应体,即不能再使用response.getWriter()和response.getOutputStream()向客户端输出,这一工作应该由BServlet来完成;如果是使用请求包含,那么没有这个限制;
2.请求转发虽然不能输出响应体,但还是可以设置响应头的,例如:response.setContentType(”text/html;charset=utf-8”);
3.请求包含大多是应用在JSP页面中,完成多页面的合并;
4.请求请求大多是应用在Servlet中,转发目标大多是JSP页面最后来比较一下请求转发与重定向:
--- 请求转发是一个请求,而重定向是两个请求;
--- 请求转发后浏览器地址栏不会有变化,而重定向会有变化,因为重定向是两个请求;
---请求转发的目标只能是本应用中的资源,重定向的目标可以是其他应用;
---请求转发对AServlet和BServlet的请求方法是相同的,即要么都是GET,要么都是POST,因为请求转发是一个请求;
---重定向的第二个请求一定是GET。
0 0
- javaweb之请求转发和请求包含
- 请求转发和请求包含
- 请求转发和请求包含
- 请求转发和包含
- 请求转发和包含
- JavaWeb开发之深入分析请求转发和重定向的应用场景以及请求包含 (跟着龙哥学JavaWeb)
- 请求转发和请求包含 相关细节
- 重定向,请求转发和请求包含
- javawebday24(请求转发和请求包含)
- JavaWeb学习之请求转发和重定向
- javaweb请求转发和重定向
- HTTP 请求转发、重定向和包含
- JavaWeb-JSP 请求转发和请求重定向
- 请求重定向、请求转发、请求包含
- 请求重定向,请求转发,请求包含
- 请求重定向、请求转发、请求包含
- 请求重定向|请求转发|请求包含
- JSP中的请求转发和请求包含小解
- linux的目录小结
- .NET设计规范————类型设计规范
- spark的submit
- varchar长度需要是2的倍数吗?
- 《leetcode》:H-Index
- javaweb之请求转发和请求包含
- 用Media Foundation来获取计算机摄像头
- LCS问题(最长公共子序列)-动态规划实现
- javaee之Servlet的理解
- Java线程详解
- C语言指针
- failed to lazily initialize a collection of
- python 学习 (二) 变量类型
- nfs