`
CB-13
  • 浏览: 22439 次
  • 性别: 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()方法只能在应用程序内部转发。
分享到:
评论

相关推荐

    servlet中实现请求转发,用户登录

    请求转发通过`RequestDispatcher`接口的`forward()`方法实现。以下是一个简单的示例: ```java protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, ...

    javaServlet请求转发和重定向.pdf

    请求转发使用 RequestDispatcher 接口中的 forward() 方法来实现,该方法可以把请求转发到另外一个资源,并让该资源对浏览器的请求进行响应。 例如,使用 RequestDispatcher 对象的 forward() 方法来实现请求转发:...

    java servlet请求转发重定向

    ### Java Servlet 请求转发与重定向详解 #### 一、引言 在Java Web开发中,请求转发和重定向是两种非常重要的技术手段,用于控制页面之间的跳转逻辑。这两种技术虽然都能实现页面间的跳转,但其工作原理、应用场景...

    Java中Request请求转发详解

    Java中Request请求转发是指在Servlet中使用RequestDispatcher将请求转发到另一个Servlet或JSP页面,以实现请求的重定向或包含。在本文中,我们将通过示例代码详细介绍Java中Request请求转发的实现过程。 ...

    一个servlet,请求转发,过滤

    在Java Web开发中,Servlet、请求转发和过滤器是核心概念,它们构成了Web应用程序的基础架构。下面将分别详细解释这三个知识点,并结合 `${}` 符号的使用进行深入探讨。 1. Servlet: Servlet 是 Java 提供的一种...

    直接请求转发(Forward)和间接请求转发(Redirect)两种区别.docx

    主要分为直接请求转发(Forward)和间接请求转发(Redirect)。这两种转发方式在处理请求时有着显著的区别。 直接请求转发(Forward): 直接请求转发是服务器内部的资源调度,用户在浏览器中只会看到最初的请求...

    jsp和servlet请求与响应

    ### JSP和Servlet请求与响应详解 #### 一、JSP内置对象概述 JSP(Java Server Pages)是一种用于创建动态网页的技术。它基于Java Servlet规范,并提供了许多内置对象,以便开发者可以更方便地处理HTTP请求和响应。...

    Servlet常用接口

    7. **RequestDispatcher接口**: 提供了转发和包含请求的能力,例如`request.getRequestDispatcher(String path).forward(request, response)`,用于将请求传递给其他资源。 8. **Filter和FilterChain**: Filter...

    7.Servlet请求和响应(1).zip

    5. **请求转发与重定向**:Servlet可以使用`RequestDispatcher`的`forward()`方法将请求转发到其他资源,而`sendRedirect()`方法则会向客户端发送一个HTTP重定向响应。 6. **会话管理**:Servlet可以通过`...

    Servlet接口及方法

    #### 二、RequestDispatcher接口 `RequestDispatcher`接口是Servlet容器提供的,用于实现请求转发和包含请求处理结果的功能。该接口提供了两个主要方法:`forward`和`include`。 ##### 1. forward方法 ```java ...

    请求转发和重定向的区别共1页.pdf.zip

    在Java Servlet中,`RequestDispatcher`接口的`forward()`方法用于请求转发。当服务器接收到一个请求后,它不会向客户端浏览器发送响应,而是内部将请求传递给另一个资源,如Servlet或JSP。这个过程对用户是透明的,...

    请求重定向个请求分派

    * 请求分派只能将请求转发给同一个 Web 应用程序中的其他组件,而重定向不仅可以定向到当前应用程序中的其他资源,也可以重定向到其他站点的资源上。 * 重定向的访问过程结束后,浏览器地址栏中显示的 URL 会发生...

    JavaWeb中的 请求转发 和 重定向.docx

    - 请求转发是服务器端的操作,通过`RequestDispatcher`接口的`forward()`方法实现。在HTML页面中,用户点击链接触发请求,这个请求被`ForwardServlet`捕获,然后调用`forward()`方法将请求传递给`TestServlet`。在...

    Servlet API中文文档

    此外,`javax.servlet.RequestDispatcher`接口用于请求转发和包含,这使得在一个Servlet中调用另一个Servlet或者JSP页面成为可能。 总的来说,Servlet API中文文档是Java Web开发者不可或缺的学习资源,它涵盖了从...

    servlet转发、包含详解(七)

    Servlet 转发是指将用户的请求通过一组 Servlet 来处理,每个 Servlet 都有自己特定的职责,当该 Servlet 完成自己的工作后将请求转发到下一个 Servlet 来处理,这种通过不同 Servlet 相互转发请求来完成对某个请求...

    servlet代码+说明文档

    5. **Servlet的转发和重定向**:Servlet可以通过RequestDispatcher的forward()方法将请求转发到其他资源,或者通过HttpServletResponse的sendRedirect()方法重定向浏览器。两者的区别在于前者是在服务器端完成的,后...

    Servlet+API+中文+手册

    `RequestDispatcher`接口允许Servlet转发请求或重定向到其他资源。这在需要多个Servlet协同工作或者处理错误时非常有用。 最后,Servlet 3.0引入了注解驱动的Servlet配置,开发者可以直接在Servlet类上使用`@Web...

    Java Servlet Api文档

    9. **RequestDispatcher接口**:它用于在Servlet之间转发请求或进行重定向。`forward()`和`include()`方法分别用于在请求处理流程中进行内部转发和包含其他资源。 10. **HttpServletRequest和HttpServletResponse...

    httpservlet_request

    3. **请求转发**:在Servlet中,我们可以使用`RequestDispatcher`接口的`forward()`方法实现请求转发。这允许Servlet将一个请求转发到服务器上的另一个资源,而不是直接返回响应。这种方式在同一个应用内部共享数据...

    servlet.jar包

    5. javax.servlet.RequestDispatcher:用于转发请求和包含资源,支持请求的定向。 6. javax.servlet.ServletRequest和ServletResponse:分别表示HTTP请求和响应,提供了获取请求数据和设置响应内容的方法。 此外,...

Global site tag (gtag.js) - Google Analytics