【原创】WEB组件的关联关系

上一篇 / 下一篇  2008-09-02 08:55:02 / 个人分类:开源学习

J2EE 平台为特定URL的 Web组件提供三种相互关联,分别是请求转发、URL重定向和包含,这几种关联关系之间是有区别的。本节将讨论如何使用Java Servlet API来实现请求转发、URL重定向和包含。

一、请求转发

请求转发允许组件发送请求到某个应用程序中的URL,并通过同一应用程序中的不同URL中的组件来处理该请求,它检查Web请求中的数据,并将请求定向到合适的组件,以便进行处理。

Servlet可以使用javax.servlet.RequestDispatcher.forward()方法来转发它所收到的HTTP 请求。接收转发请求的组件能够处理该请求并生成一个响应, 或者它还可以将请求转发到另一个组件。 最初请求的ServletRequest 和 ServletResponse 对象被传递给转发目标组件,通过这种方式,目标组件可以访问整个请求上下文。

如果Servlet要把请求转发给同一WEB应用组件,可以使用下面两行代码:

//获得RequestDispatcher对象ITPUB个人空间#q Q:z[xY#~I }.I{Y0}
RequestDispatcher requestDispatcher = request.getRequestDispatcher(url);
?`Ua([0//把请求转发到url指定的WEB组件ITPUB个人空间0\x9ReH)uE Ik@
requestDispatcher.forward(request, reponse);
?7?6M3M| Ar${0request和reponse分别为ServletRequest 和 ServletResponse 对象。
4t-~ Dz ^%dDBJ+x q0JSP页面中,可以使用<jsp:forward>标签来转发请求,例如:
3X/c6LG"Z5Vp0<jsp:forward page=”HelloKitty.jsp”>

对于请求转发,转发的源组件和目标组件共享request(即一次请求)范围内的共享数据。

二、URL重定向

URL 重定向类似于请求转发, 但也有一些重要的区别,Web组件可以将请求重定向到任一URL, 而不仅仅是同一应用上下文中的URL。另外,重定向的源组件和目标组件之间不共用同一个Request对象,因此不能共享request范围内的共享数据。

URL 重定向可以通过方法javax.servlet.ServletResponse.sendRedirect()完成,这个方法的唯一参数就是重定向的目标URL ,例如:
$r+xA%c1_n0response. sendRedirect(url);ITPUB个人空间8G/_-fcFQ`%iX
提示: URL重定向相当于客户端重新发送了一次Http请求。同一WEB应用也可以用重定向,但WEB组件之间不能共用上下文信息,而且重定向的效率会比较低。

三、包含

包含关系允许一个Web组件聚集来自同一个应用中其他的Web组件输出数据,并使用被聚集的数据来创建响应结果。在Servlet中可以使用RequestDispatcher.include()方法包含其它的Web组件。

在Servlet中可以写成RequestDispatcher rd=request.getRequestDispatcher(url)来获取一个包含对象,然后调用rd.include(request,response)包含。

在JSP中使用标签,例如<%@ include file=”HelloKitty.jsp”>来包含一个文件。
3}3nI{L*J(v"B/|0


TAG: java jsp servlet

引用 删除 Guest   /   2008-10-08 09:33:38
3
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-12-02  
 123456
78910111213
14151617181920
21222324252627
28293031   

数据统计

  • 访问量: 13462
  • 日志数: 43
  • 文件数: 11
  • 建立时间: 2008-02-14
  • 更新时间: 2008-09-05

RSS订阅

Open Toolbar