Servlet中的请求转发与包含
2015-02-28 14:45
253 查看
上一篇博客简单的介绍了一下有关Servlet的知识,从宏观上能够了解Servlet是干嘛的,这篇就来谈一下在Servlet中经常用到的两个概念请求转发与包含。
1.什么是请求转发与包含
在上一篇博客中我们大致了解了,Servlet是服务端的程序,用来接收客户端发过来的请求信息并处理信息。那么请求转发和包含就是表示由多个Servlet共同处理一个请求。比如说,客户端A向你挑战打架,如果你感觉自己不行的话,就可以转发给B,让B替你处理;或者你和B同志共同应对A的挑战,这就是包含。具体的流程图如下。
分析:根据上图可以得知,请求转发和请求包含都是处理的一次请求,所以服务器只会创建一个request对象和一个response对象,正如上面举得例子一样,都是处理的一次挑战的请求。因此图中的AServlet和BServlet中的request和response都是同一个域对象。既然两者共同拥有一份域对象,因此我们就可以把AServlet中的数据存放到域对象中,然后传到BServlet中再次获取。这就是request域的域范围,在一个请求链中。
2.请求转发实现
请求转发就是Servlet将请求转送给其他的Servlet或服务器资源,具体的实现如下
request.getRequestDispatcher("转发路径").forward(request,response)
1.getRequestDispatcher(String path):返回值类型是RequestDispatcher
2.forward(ServletRequest req,ServletResponse res):该方法时RequestDispatcher接口的方法,将请求从一个servlet转发到服务器上另一个资源。
3.请求包含实现
请求包含就是指多个Servlet共同处理一个请求。
request.getRequestDispatcher("转发路径").forward(request,response)
Include(ServletRequest request,ServletResponse response):表示包含
4.区别
(1)相同点
都是多个Servlet之间共同处理一个请求,并且在请求之间公用一个request对象和response对象
(2)不同点
如果是请求的话,那么前者将不能向客户端发出响应,这一工作就由后者来完成。
请求包含大多应用在jsp页面中,完成多页面的合并。
好了,上面讲解了太多的理论知识,估计能够从宏观上了解请求转发和包含到底是怎么回事了,下面就从代码实现上来深入的看一下。
相关文章推荐
- javaEE------------------有关servlet的一些细节(输出流以及转发、重定向和请求包含)
- Servlet中的站内转发、重定向以及请求包含
- servlet请求转发、包含以及重定向
- 多个servlet之间的跳转(转发、重定向、请求包含)的总结
- servlet请求转发、包含以及重定向
- Servlet请求转发与包含
- Servlet技术-请求转发,重定向和包含的关系
- Servlet第三方jar包使用3(Servlet获取form表单中的多有元素以及,请求转发,请求重定向,请求包含)
- servlet请求重定向、请求转发、请求包含 及cookie的应用
- servlet获取表单提交的数据、请求转发、请求包含、请求重定向
- Servlet 实现包含外部文件和转发请求
- 重定向、转发、请求包含、同一个servlet中字符字节流共存问题相关的一些知识点
- servlet请求转发的三种方式,请求转发与重定向以及包含
- servlet---知识点深化---重定向/转发/字节流字符流共存问题/多个servlet输出问题/请求包含
- 【Java.Web】Servlet —— 请求的转发和包含
- javaEE------------------有关servlet的一些细节(输出流以及转发、重定向和请求包含)
- Servlet入门介绍第四章——Servlet中的请求转发、包含、重定向
- 传智播客Servlet学习,请求重定向与请求转发
- servlet中请求转发(forword)与重定向(sendredirect)的区别
- JSTL请求重定向、包含、转发标签