(十一)RequestDispatcher

/**
 *
 * <p>标题: RequestDispatcher</p>
 * <p>
 *    功能描述:
 *    1、RequestDispatcher对象由Servlet容器创建,用于封装一个由路径所标识的服务器资源。利用RequestDispatcher对象,可以把请求转发给其他的Servlet或JSP页面。
 *    2、可以从ServletContext中的getRequestDispatcher得到,也可以 在servletRequest中的getRequestDispatcher得到。
 *    3、http://localhost:7777/SltLearn/OutServletInfo中request.getRequestDispatcher("/");得到了项目的跟路径,指SltLearn/下
 * </p>
 * <p>创建日期: 2016年1月19日 上午10:51:18</p>
 * <p>作者: 年华</p>
 * <p>版本: 1.0</p>
 */
public abstract interface RequestDispatcher {
    /*
     *该方法用于将请求从一个Servlet传递给服务器上的另外的Servlet、JSP页面或者是HTML文件。
     *在Servlet中,可以对请求做一个初步的处理,然后调用这个方法,将请求传递给其他的资源来输出响应。
     *要注意的是,这个方法必须在响应被提交给客户端之前调用,否则的话,它将抛出IllegalStateException异常。
     *在forward()方法调用之后,原先在响应缓存中的没有提交的内容将被自动清除。
     *
     */
    public abstract void forward(ServletRequest paramServletRequest,
            ServletResponse paramServletResponse) throws ServletException,
            IOException;

    /*
     * 该方法用于在响应中包含其他资源(Servlet、JSP页面或HTML文件)的内容。
     * 和forward()方法的区别在于:利用include()方法将请求转发给其他的Servlet,
     * 被调用的Servlet对该请求做出的响应将并入原先的响应对象中,
     * 原先的Servlet还可以继续输出响应信息。而利用forward()方法将请求转发给其他的Servlet,
     * 将由被调用的Servlet负责对请求做出响应,而原先Servlet的执行则终止。
     *
     */
    public abstract void include(ServletRequest paramServletRequest,
            ServletResponse paramServletResponse) throws ServletException,
            IOException;

    //总结:这两个方法的共同点:客户端访问的地址将不会发生变化,还是原先访问的地址,变化的只是内部的跳转调用。

}
时间: 2024-11-07 16:29:40

(十一)RequestDispatcher的相关文章

Spring 4 官方文档学习(十一)Web MVC 框架之resolving views 解析视图

接前面的Spring 4 官方文档学习(十一)Web MVC 框架,那篇太长,故另起一篇. 针对web应用的所有的MVC框架,都会提供一种呈现views的方式.Spring提供了view resolvers,可以让你在浏览器中render model,而不必绑定到某种特定的view技术上.开箱即用,例如,Spring可以让你使用JSPs.Velocity目标和XSLT views.See Chapter 23, View technologies for a discussion of how

android产品研发(二十一)--&gt;UI优化

转载请标明出处:一片枫叶的专栏 上一篇文章中我们讲解了android产品研发过程中的代码Review.通过代码Review能够提高产品质量,增强团队成员之间的沟通,提高开发效率,所以良好的产品开发迭代过程中,代码Review是一个必不可少的步骤.那么如何进行代码Review呢?我们主要讲解了团队成员之间的代码Review,代码lint检查,开发规范等方面的知识点,更多关于代码Review相关的知识可参考我的:android产品研发(二十)–>代码Review 本文我们将讲解一下android U

荣耀的双十一:为冠军而来

前些日子,第三方数据机构发布报告指出华为手机在出货量方面已经赶超小米,之后又有知名自媒体指出,荣耀仅2014年第一年的销量就达到2000万部,而2015年更是只用半年时间就达到2000万部销量.该自媒体指出,华为在2015年的销量将会铁定超越1亿部,而按照目前发展速度来看,未来荣耀或将实现单品牌赶超小米的速度. 这种磅礴而凶猛的发展势头,使得荣耀对双十一也信心满满. 10月30日,荣耀官方微博发布消息,内容和配图均以"为冠军而来"为口号,力图抢夺双十一手机销量冠军的意图可见一斑.除此之

我的编程之路(二十一) 规范

不知不觉一周就过去了,这周细想真的没有做成什么,因为几乎都是做了改,改了做··· 1.代码规范 以前自认为自己很注重代码规范,但是没有想到自己项目组的开发会将代码规范审查的那么严谨,这突然让我想到之前说到程序员都喜欢追求完美,都喜欢自己和自己的风格一致,否则就会觉得别扭,不过与此不同,这是团队开发,代码规范是为了统一风格,便于别人的阅读与后人的修改与维护,虽然因为这我前前后后改了三次dao层的代码,一是要用公司封装的借口,二是要把异常处理都放在这一层或者service层,三是要用公司自己写的工具

QT开发(二十一)——QT布局管理器

QT开发(二十一)--QT布局管理器 一.布局管理器简介 QT中使用绝对定位的布局方式无法自适应窗口的变化. QT中提供了对界面组件进行布局管理的类,用于对界面组件进行管理,能够自动排列窗口中的界面组件,窗口大小变化后自动更新界面组件的大小. QLayout是QT中布局管理器的抽象基类,通过对QLayout的继承,实现了功能各异且互补的布局管理器. 布局管理器不是界面组件,而是界面组件的定位策略. 任意容器类型的组件都可以指定布局管理器. 同一个布局管理器管理中的组件拥有相同的父组件,在设置布局

struts2官方 中文教程 系列十一:使用XML进行表单验证

在本教程中,我们将讨论如何使用Struts 2的XML验证方法来验证表单字段中用户的输入.在前面的教程中,我们讨论了在Action类中使用validate方法验证用户的输入.使用单独的XML验证文件让您可以内置到Struts 2框架的验证器. 贴个本帖的地址,以免被爬:struts2官方 中文教程 系列十一:使用XML进行表单验证  即 http://www.cnblogs.com/linghaoxinpian/p/6938720.html 下载本章节代码 为了使用户能够编辑存储在Person对

《构建之法》第十一、十二章学习总结

第十一章的内容是软件设计与实现. 在第一节中,讲的是关于分析和设计方法,向我们介绍在"需求分析"."设计与实现"阶段."测试""发布"阶段该搞清楚的问题. 在第二节中,讲的是关于图形建模和分析方法.在表达实体和实体之间的关系时,可以用到思维导图(Mind Map).实体关系图(ERD).UCD ;在表达数据的流动时,可以用到DFD工具:在表达控制流的时候可以用到FSM工具:前面提到的这些图形建模方法各有特点,UML却可以有一个

javascript高级程序设计 第十一章--DOM扩展

javascript高级程序设计 第十一章--DOM扩展DOM最主要的扩展就是选择符API.HTML5和Element Traversal Selectors API:定义了两个方法 querySelector() 和 querySelectorAll(),能够基于CSS选择符从DOM中取得元素.querySelector()方法接收一个CSS选择符,返回该模式匹配的第一个元素,querySelectorAll()接收的参数一样,但是返回NodeList实例: matchesSelector()

第十一周PSP&amp;进度条

PSP 一.表格: D日期     C类型 C内容 S开始时间 E结束时间 I时间间隔 T净时间(mins) 预计花费时间(mins) 11月24号 站立会议 分配任务&设计final方案 13:00 13:30 0 30 30   编写 bug修正报告 14:35 15:14 0 39 40 11月25号 站立会议 继续完成没完成任务 13:00 13:30 0 30 30   编码 新亮点 14:45 18:23 21 207 180   数据 数据收集整理 19:21 20:48 13