`
javachikuang
  • 浏览: 72162 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

WebWork框架的处理流程(2)

阅读更多
WebWork框架
WebWork 2建立在Xwork之上,处理HTTP的响应和请求。WebWork 2使用ServletDispatcher将HTTP请求的变成Action(业务层Action类)、Session(会话)、Application(应用程序)范围的映射及Request请求参数映射。WebWork 2支持多视图表示,视图部分可以使用JSP、Velocity、FreeMarker、JasperReports、XML等。
从处理流程上来看,WebWork与Struts 1非常类似,它们的核心都由控制器组成,其中控制器都由两个部分组成:
—核心控制器ServletDispatcher;
—业务逻辑控制器Action。
WebWork改变了Struts 1严重依赖Servlet API的缺陷,使得WebWork更加灵活,并给测试工作带来了方便。图1.8显示了WebWork工作流程。



(1)一个初始的请求被发送到Servlet容器(如Tomcat或Resin),这个请求经过一个标准的Filter链,其中包括(可选的)ActionContextCleanUp Filter,如果要在应用程序中整合其他的技术如SiteMesh,就需要使用这个Filter。然后请求经过FilterDispatcher(注:WW2.2之前处理这个请求的是ServletDispatcher),在它里面ActionMapper会判断这个请求是否需要调用Action。
(2)如果ActionMapper决定应该调用一个Action,FilterDispatcher就把请求委托给ActionProxy,ActionProxy通过WebWork的配置文件管理器读取xwork.xml文件里的配置信息。然后创建一个实现了命令模式的ActionInvocation。这一过程包括在调用action本身之前调用所有的Interceptor(before()方法)。
(3)一旦Action方法返回,ActionInvocation就要查找xwork.xml文件中这个Action的结果码(Action Result Code)(一个String如success、input)所对应的result,然后执行这个result。通常情况下,result会调用JSP或FreeMarker模板来呈现页面(但不总是这样,例如result也可以是一个Action链)。当呈现页面时,模板可以使用WebWork提供的一些标签,其中一些组件可以和ActionMapper一起工作来为后面的请求呈现恰当的URL。
(4)最后Interceptor被再次执行(顺序和开始相反,调用after()方法),然后最终请求被返回给web.xml中配置的其他Filter。如果已经设置了ActionContextCleanUpFilter,那么FilterDispatcher就不会清理ThreadLocal中的ActionContext信息。如果没有设置ActionContextCleanUp Filter,FilterDispatcher会清理掉所有的ThreadLocal。
分享到:
评论

相关推荐

    spring与webwork框架集成

    总的来说,Spring 和 WebWork 的集成是通过共享同一个上下文和依赖注入机制来实现的,这使得开发者能够充分利用 Spring 的优势,同时保留 WebWork 的动态控制流程和用户友好的错误处理。这种集成方式在过去的 Java ...

    webwork资源

    WebWork的执行流程涉及到ActionProxy和ActionInvocation两个概念。ActionProxy负责管理Action的生命周期,包括创建和执行Action。而ActionInvocation则代表了Action执行的状态,它持有Action实例和一系列Interceptor...

    webwork的工作流程

    在实际应用中,当用户发起一个HTTP请求时,WebWork框架首先解析请求,找到匹配的Action,然后根据配置的拦截器堆栈顺序执行拦截器,接着调用Action的方法,最后根据Action的返回值选择并执行对应的Result。...

    struts2与webwork2

    WebWork2作为一款开源的Java Web应用程序框架,在其鼎盛时期为开发者提供了灵活的MVC(Model-View-Controller)架构支持,简化了Web应用的开发流程。然而,随着时间的推移,为了进一步提升框架的功能性和社区影响力...

    webwork

    在深入研究WebWork源码时,开发者可以了解其内部的工作原理,包括请求处理流程、模型绑定、拦截器链的执行、异常处理机制等,这对于提高编程技能和理解MVC框架的设计模式非常有帮助。此外,查看`displaytag-1.0`源码...

    webwork中文文档

    **结果类型**:WebWork支持多种结果类型,如dispatcher、redirect、stream等,用于控制请求的处理流程和响应的方式。 ### WebWork框架的特点 - **灵活性**:WebWork提供了丰富的配置选项和插件系统,使得开发者...

    webwork2官方文档中文版

    1. **动作映射(Action Mapping)**:WebWork2通过配置文件定义动作映射,将URL请求映射到特定的Java类方法,简化了请求处理流程。 2. **强大的拦截器(Interceptor)机制**:拦截器可以在动作执行前后执行预处理和...

    webwork2开发指南

    WebWork2是一款基于Java的MVC(Model-View-Controller)框架,用于构建Web应用程序。在Web开发领域,它提供了一种结构化和模块化的开发方式,帮助开发者更高效地组织代码并实现业务逻辑。本指南将深入探讨WebWork2的...

    webwork.pdf

    与传统的Servlet模型相比,Action驱动模式提供了更清晰的代码结构和更易于管理的请求处理流程。 ##### XWork拦截器体系 XWork框架中的拦截器体系是其一大亮点,它提供了一种灵活的方式来扩展Action的行为。拦截器...

    webwork中文参考手册

    这个“WebWork中文参考手册”显然是针对想要学习和使用WebWork框架的初学者准备的资源。手册可能包含了框架的基本概念、核心组件、配置、控制器、模型、视图、动作、拦截器以及与Spring等其他框架的集成等内容。 在...

    webwork源码底层实现

    3. **请求处理流程**:当一个HTTP请求到达时,WebWork会解析请求参数,然后通过Action Mapping找到对应的Action实例。`com`目录下的源代码包含了许多Action类,它们是业务逻辑的具体实现。 4. **Interceptors(拦截...

    webwork Documentation

    WebWork框架内置了强大的表单处理机制,包括数据绑定、验证和转换,这极大地简化了前端表单数据的后端处理流程,提高了开发效率。 #### 国际化(I18N)支持 框架支持多语言环境,允许开发者轻松地为不同的语言和...

    Webwork教程

    #### 一、WebWork框架简介 **WebWork**是一个开源的Java Web应用程序框架,它的设计理念是简化Web应用的开发过程,提高开发效率。随着时间的发展,WebWork逐渐演变成了**Struts2**框架的核心部分。本文档主要介绍了...

    webwork2教程

    WebWork2 是一款轻量级的 Java Web 开发框架,它遵循 MVC (Model-View-Controller) 设计模式,旨在简化 Web 应用程序的开发流程。通过本文档的学习,您将能够掌握 WebWork2 的基本组件和操作流程。 #### 二、核心...

    WebWork2 开发指南

    三、WebWork2 开发流程 1. 安装和配置:首先,需要下载并配置WebWork2 的库文件,包括WebWork的核心库和其他依赖库。 2. 创建动作类:编写Java类作为动作,定义处理请求的方法和属性。 3. 配置动作:在配置文件中...

    WebWork 教程

    #### WebWork框架概览 WebWork是OpenSymphony组织研发的一款J2EE Web框架,其核心理念在于组件化与代码复用,采用的是MVC(Model-View-Controller)设计模式的变体——即所谓的“拉出式”MVC模式。随着版本演进,...

    webwork2实例源代码

    4. **Interceptor(拦截器)**:拦截器是WebWork2的一个重要特性,它们是可复用的代码片段,可以插入到Action执行流程中,实现如日志记录、权限检查、事务管理等功能。通过配置,可以灵活地调整拦截器链。 5. **...

    webwork深入浅出学习资料

    《深入解析WebWork框架:构建高效Web应用的基石》 WebWork框架,作为J2EE领域内备受推崇的Web开发框架之一,自诞生以来便以其卓越的性能、灵活性及易于集成的特点,在众多开发者中赢得了广泛的认可。《WebWork深入...

Global site tag (gtag.js) - Google Analytics