zoukankan      html  css  js  c++  java
  • Servlet中的请求转发RequestDispatcher接口的forword与Include的区别

    RequestDispatcher接口中具有两个方法: forward() 与 include() 均 可完成请求 的转发。区别如下:

    forword():

    使用该方法,则当前 的 Servlet 中只能进行业务处理,而不能向浏览器发送要显示的数据。因为请求还未完成,需要继续向前( forward ),当请求完成后 服务器才会开启标准 响应 输出流,向输出流中写入数据。

    该方法的响应对象,使用的是第二个资源的响应对象。即第二个资源向浏览器回送的响应数据。

    两个 Servlet 中所使用的 Response 对象为同一个 ResponseFacade 对象。

                                             

    include():

    使用该方法,在将请求向后转发时,服务器会将标准响应输出流开启。当前Servlet可以向输出流中写入数据,并且服务器还会将要转向的资源的输出流中数据合并到当前的输出流中。

    该方法的响应对象,使用的是第一个资源的响应对象,即当前Servlet 向浏览器回送的响应数据。

    ApplicationHttpResponse 是HttpServletResponse 接口的实现类 ResponseFacade 的装饰者类,其增强了ResponseFacade 类的功能。ApplicationHttpResponse底层完成的一个工作是,将当前的 OtherServlet 中的输出流中的数据合并到了 SomeServlet 的标准输出流中。

  • 相关阅读:
    分页 存储过程
    Base64编码
    汉字转拼音 完整类
    C#利用SharpZipLib解压或压缩文件夹实例操作
    C#压缩解压zip 文件
    MapReduce shuffle原理
    设计模式(一)—— 代理模式
    Lombok的基本使用
    解决idea 每次新建项目需要重新配置maven
    10-20 Spring框架(三)—— AOP核心
  • 原文地址:https://www.cnblogs.com/lijie0609/p/11836413.html
Copyright © 2011-2022 走看看