Web组件之间存在三种关联关系:请求转发,URL重定向和包含。正确理解三种关联关系对于共享数据在Web应用范围的保存是至关重要的。存在以上关联关系的Web组件可以是JSP或Servlet。当然,对于Struts,还可以是Action。
1.请求转发
请求转发把请求转发至同一应用的其他Web组件,常用于Web控制层的Servlet流程控制器,它检查Http请求数据,将请求转发至合适的目标组件,由组件执行具体的请求处理,最后生成处理结果。Servlet使用javax.servlet.RequestDispatcher.forward()方法将ServletRequest和ServletResponse的对象作为参数传递给目标组件,使得目标组件能够访问整个请求的上下文。对于请求转发,转发源的组件和目标组件共享request范围内的数据。
2.请求重定向
请求重定向由服务器端向客户端浏览器返回包含重定向的信息,浏览器根据这一信息迅速发出一个新的Http请求,请求访问重定向目标。因此,转发源的组件和目标组件不共享同一个HttpServletRequest,从而无法共享request范围内的数据。
3.包含
这种使用方法通常用于模块化页面布局。各模块中的页面虽然来自不同的URL,但是却共享同一个HttpServletRequest对象,因此可以共享request范围内的数据。
posted on 2008-05-06 11:45
覃思明 阅读(146)
评论(0) 编辑 收藏