Web组件的三种关联关系.doc_第1页
Web组件的三种关联关系.doc_第2页
Web组件的三种关联关系.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 Web组件的三种关联关系Web应用程序如此强大的原因之一是它们能彼此链接和聚合信息资源。Web组件之间存在三种关联关系: 请求转发 URL重定向 包含 存在以上关联关系的Web组件可以是JSP或Servlet,对于Struts应用,则还包括Action。这些Web组件都可以访问HttpServletRequest,和HttpServletResponse对象,具有处理请求、生成响应结果的功能。1.1 请求转发请求转发允许把请求转发给同一应用程序中的其他Web组件。这种技术通常用于Web应用控制层的Servlet流程控制器,它检查HTTP请求数据,并将请求转发到合适的目标组件,目标组件执行具体的请求处理操作,并生成响应结果。图1-5显示了一个Servlet把请求转发给另一个JSP组件的过程。图1-5 请求转发Servlet类使用javaxservletRequestDispatcherforward()方法来转发它所收到的HTTP请求。转发目标组件将处理该请求并生成响应结果,或者将请求继续转发到另一个组件。最初请求的ServletRequest和ServletResponse对象被传递给转发目标组件,这使得目标组件可以访问整个请求上下文。值得注意的是,只能把请求转发给同一Web应用中的组件,而不能转发给其他Web应用的组件。 如果当前的Servlet组件要把请求转发给一个JSP组件,如hello.jsp,可以在Servlet的 service()方法中执行以下代码: RequestDispatcher rd=requestgetRequestDispatcher(hellojsp); /Forward to requested URL rdforward(request,response); 在JSP页面中,可以使用标签来转发请求,例如: 对于请求转发,转发的源组件和目标组件共享request范围内的共享数据。1.2 请求重定向 请求重定向类似于请求转发,但也有一些重要区别: Web组件可以将请求重定向到任一URL,而不仅仅是同一应用中的URL。 重定向的源组件和目标组件之间不共用同一个HttpServletRequest对象,因此不能共享request范围内的共享数据。图1-6显示了一个Servlet把请求重定向给另一个JSP组件的过程。图1-6 请求重定向 如果当前应用的Servlet组件要把请求转发给URL“http:/jakartaapacheorg/stmts”,可以在Servlet的service()方法中执行以下代码:response,sendRedirect(“http:/jakarta.apacheorg/stmts/”); 若传参则在路径后加”?action=list”类似这样的queryString串 从图1-6中可以看出,HttpServletResponse的sendRedirect()方法向浏览器返回包含重定向的信息,浏览器根据这一信息迅速发出一个新HTTP请求,请求访问重定向目标组件。1.3 包含包含关系允许一个Web组件聚集来自同一个应用中其他Web组件的输出数据,并使用被聚集的数据来创建响应结果。这种技术通常用于模板处理器,它可以控制网页的布局。模板中每个页面区域的内容来自不同的URL,从而组成单个页面。这种技术能够为应用程序提供一致的外观和感觉。包含关系的源组件和目标组件共用同一个HttpServletRequest对象,因此它们共享request范围内的共享数据。图1-7显示了一个Servlet包含另一个JSP组件的过程。图1-7 Web组件的包含关系 Servlet类使用javax.servlet.RequestDispatcherinclude()方法包含其他的Web组件。例如,如果当前的Servlet组件包含了三个JSP文件:header.jspmain.jsp和footer.jsp,则可以在 Servlet的service()方法中执行以下代码: RequestDispatcher rd; rd=reqgetRequestDispatcherC/headerjsp) rdinclude(req,res); rd=reqgetRequestDispatcher(/mainjsp) rdinclude(req,res); rd=reqgetRequestDispatcher(/footer.jsp)rdinclude(req,res);这

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论