美文网首页
非原创的笔记,耶耶耶,JSP

非原创的笔记,耶耶耶,JSP

作者: 唯有口袋里的钱能给我安全感 | 来源:发表于2018-01-02 19:10 被阅读3次

    RequestDispatcher接口

    分类: coding-note  |  标签: servlet,include,string,path,jsp,浏览器  |  作者: angelia222 相关  |  发布日期 : 2014-05-03  |  热度 : 120°

    在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()方法只能在应用程序内

    部转发。

    相关文章

      网友评论

          本文标题:非原创的笔记,耶耶耶,JSP

          本文链接:https://www.haomeiwen.com/subject/mrpqnxtx.html