`
CB-13
  • 浏览: 21431 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Servlet请求转发 RequestDispatcher接口

    博客分类:
  • Web
阅读更多
在Servlet中,利用RequestDispatcher对象,可以将请求转发给另外一个Servlet或JSP页面,甚至是HTML页面,来处理对请求的响应。

一、RequestDispatcher接口方法简介 

     1. RequestDispatcher对象由Servlet容器来创建,封装一个由路径所标识的服务器资源。   

     2. RequestDispatcher接口中定义了二种方法用于请求转发:   

           forward(ServletRequest,ServletResponse)方法:     

     将请求转发给服务器上另外一个Servlet,JSP页面,或者HTML文件      这个方法必须在响应被提交给客户端之前调用,否则抛出异常。     

     方法调用后在响应中的没有提交的内容被自动消除。   

           include(ServletRequest,ServletResponse)方法 :    

      用于在响应中包含其他资源(Servlet,JSP页面或HTML文件)的内容。     

      即请求转发后,原先的Servlet还可以继续输出响应信息,转发到的Servlet对请求做出的响应将并入原先Servlet的响应对象中。     

      3. forward方法和include方法的区别:

       forward方法调用后在响应中的没有提交的内容被自动消除。include方法使原先的Servlet和转发到的Servlet都可以输出响应信息。   

二、得到RequestDispatcher对象 

      三种方法可以得到RequestDispatcher对象:  

       1. 利用ServletRequest接口中的getRequestDispatcher(String  path)方法。  

       2. ServletContext接口中getNamedDispatcher(String  path)和getRequestDispatcher(String  path)方法。

     ServletRequest接口和ServletContext接口中getRequestDispatcher方法区别:  

       1. 参数的区别   

       参数虽然都是资源路径名,ServletContext接口的中参数路径必须以“/”开始,是相对于当前Servlet上下文根,    ServletRequest接口中的参数路径不仅可以相对于当前Servlet上下文根,还可以相对与当前Servlet路径   

       2. 跨WEB应用程序访问资源   

       通过ServletContext.getContext()方法获取另个WEB应用程序的上下文环境对象来    调用getRequestDispatcher(String  path)方法 将请求转发到另个WEB应用程序的资源。                      

       还需要在当前WEB应用程序配置中设置<context>元素,指定crossContext属性值为true。

三、ServletResqonse接口中的sendReadirect()方法和forward()方法的区别 

       二个方法都是用于请求转发的方法,转发给另外的资源为客户端服务。但二者有本质的区别

       sendReadirect()方法原理:  

       1. 客户端发送请求,Servlet1做出处理。  

       2. Servlet1调用sendReadirect()方法,将客户端的请求 重新定位 到Servlet2。  

       3. 客户端浏览器访问Servlet2. 

       4. Servlet2对客户端浏览器做出响应。

       forward()方法原理: 

       1. 客户端发送请求,Servlet1做出处理。 

       2. Servlet1调用sendReadirect()方法,将请求转发给Servlet2来处理请求,为客户端服务。  

       3. Servlet2对客户端浏览器做出响应。     

      区别:  

       1. 定位与转发  

       sendReadirect()方法是重新定位到另外一个资源来处理请求,URL会重新定位,让客户端重新访问另外一个资源。    forward()方法是转发到另外一个资源来处理请求。URL不会变化。隐藏了处理对象的变化。  

       2. 处理请求的资源的范围  

       sendReadirect()方法可以跨WEB应用程序和服务器重新定位资源来处理请求。forward()方法只能在应用程序内部转发。
分享到:
评论

相关推荐

    java-servlet-api.doc

    例外的情况是这个Servlet执行了SingleThreadModel接口,如果是那样的话,Servlet只能同时处理一个请求。 Servlet依照Servlet引擎的映射来响应客户端的请求。一个映射对包括一个Servlet实例以及一个Servlet返回数据的...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    6.6.1 requestdispatcher接口 232 6.6.2 得到requestdispatcher对象 232 6.6.3 请求转发的实例 233 6.6.4 sendredirect()和forward()方法的区别 238 6.7 小结 239 第7章 web应用程序的部署 240 7.1 配置任意...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    6.6.1 requestdispatcher接口 232 6.6.2 得到requestdispatcher对象 232 6.6.3 请求转发的实例 233 6.6.4 sendredirect()和forward()方法的区别 238 6.7 小结 239 第7章 web应用程序的部署 240 7.1 配置任意...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    6.6.1 requestdispatcher接口 232 6.6.2 得到requestdispatcher对象 232 6.6.3 请求转发的实例 233 6.6.4 sendredirect()和forward()方法的区别 238 6.7 小结 239 第7章 web应用程序的部署 240 7.1 配置任意...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    6.6.1 requestdispatcher接口 232 6.6.2 得到requestdispatcher对象 232 6.6.3 请求转发的实例 233 6.6.4 sendredirect()和forward()方法的区别 238 6.7 小结 239 第7章 web应用程序的部署 240 7.1 配置任意...

    Java™ Servlet 规范.

    Servlet 接口 ...................... 15 2.1 请求处理方法 ...........................................................................................................................................15 ...

    Servlet3.1规范(最终版) PDF

    Servlet 接口 ...................... 15 2.1 请求处理方法 ...........................................................................................................................................15 ...

    java web技术开发大全(最全最新)

    4.2.10 实例:使用RequestDispatcher转发Web资源 4.3 HttpServletResponse类的其他功能 4.3.1 产生状态响应码 4.3.2 设置响应消息头 4.3.3 实例:验证响应头设置情况 4.4 使用:HttpServletRequest获得...

    java web开发技术大全

    4.2.10 实例:使用RequestDispatcher转发Web资源 4.3 HttpServletResponse类的其他功能 4.3.1 产生状态响应码 4.3.2 设置响应消息头 4.3.3 实例:验证响应头设置情况 4.4 使用:HttpServletRequest...

    spring security 参考手册中文版

    14.2.3 SavedRequest和RequestCache接口 123 14.3 SecurityContextPersistenceFilter 123 14.3.1 SecurityContextRepository 124 14.4 UsernamePasswordAuthenticationFilter 125 14.4.1认证成功与失败的应用流程 ...

Global site tag (gtag.js) - Google Analytics