代码改变世界

Web组件的三种关系

2012-04-11 15:16  myjava2  阅读(518)  评论(0编辑  收藏  举报

       Web应用程序如此强大的原因之一是他们彼此连接和聚合信息资源,J2EE平台为特定的URLWEB组件提供三种相互关联的方式:请求转发、URL重定向和包含。

         一、转发请求:请求转发允许组件发送请求到某个应用程序中的URL,并通过统一应用程序中的不同URL中的组件来处理该请求,这个种技术通常用于WEB应用控制层Servlet流程控制器,检查web请求中的数据,并将请求转发到合适的目标组件,以便进行处理,如下图:Servlet把请求转发给另一个JSP组件的过程。

 

         1、请求转发是指将请求转发到另一个资源(一般为JSPServlet),此过程依然在同一个请求范围内,转发后浏览器地址内容不变。

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

 

代码如下:


 二、URL重定向:URLUniform Resource Locator)在因特网上服务程序上用于指定信息为止的表示方法,如图:

 

URL重定向主要有

         1Web组件可以讲请求重定向到任意URL,而不仅仅是同一个应用上下文中的URL,最初请求的内容丢失了(如post参数),重新定位到一个新地址,之前的请求失败,进入一个新的请求,并且跳转后浏览器地址栏中的内容将变为新的指定地址。

         2、重定向的源组件和目标组件不共用一个HttpServletRequest对象,因此不能共享request中的数据。

         3、重定向通过HttpServletRequest对象的sendRedirect()来实现,该方法就是相当于浏览器重新发送一个请求。

代码如下:

    三、包含:包含关系允许一个WEB组件聚集来自同一个应用中其他WEB组件的输出数据,并使用被聚集的数据来创建相应结果。如图:

    包含主要用于模板处理器,这里一个结构化的模板通常是jsp,用于控制器响应的布局,模板中的每个页面区域的内容来自不同的URL,从而组成单个页面。

实现:javax.servlet.RequestDispathcer.include()方法包含其他的WEB组件。

代码如下: