`
serenity
  • 浏览: 62986 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

转: WebWork框架的处理流程(2)

阅读更多

都说Struts 2与Struts 1相差太大,Struts 2是从webWrok发展而来的,那什么是WebWord呢??看看下面的介绍.

1.3.1 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。



 

分享到:
评论

相关推荐

    WebWork2 开发指南

    WebWork2 是一款基于Java的轻量级MVC(Model-View-Controller)框架,它在Web应用开发中提供了一种高效、灵活的解决方案。WebWork2 的设计目标是简化Web开发,提高代码的可维护性和可测试性,同时保持高度的定制能力...

    webwork2开发指南

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

    spring与webwork框架集成

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

    webwork2官方文档中文版

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

    webwork

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

    Webwork2开发指南

    它采用了Action和Interceptors的概念,使得业务处理流程更为清晰,同时提供了强大的异常处理机制。 2. **Action与控制器**:在Webwork2中,Action是处理用户请求的主要组件,它是业务逻辑的载体。开发者可以通过...

    webwork中文参考手册

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

    webwork2实例源代码

    WebWork2是一个基于Java的MVC(模型-视图-控制器)框架,它在早期的J2EE开发中被广泛使用。本实例源代码提供了深入理解WebWork2工作原理和应用开发的机会。以下是对WebWork2核心知识点的详细阐述: 1. **MVC架构**...

    webwork 2.2.4开发指南

    2. Action与ActionForm:Action是WebWork中的控制器组件,处理用户的请求,执行相应的业务逻辑,并将结果传递给视图。ActionForm则用于封装请求参数,作为模型与控制器之间的数据载体。 二、WebWork架构 1. 请求...

    webwork2.1.7

    9. **src**:源代码目录,包含了WebWork框架的源码或者示例应用的源码。 10. **lib**:库文件目录,存放了WebWork和其他依赖的第三方库。 **应用场景与学习价值:** WebWork 2.1.7虽然已不再活跃开发,但它的一些...

    WebWork_开发指南

    #### 一、WebWork框架概述 - **WebWork**:WebWork 是一款用于构建企业级 Java Web 应用程序的框架,它以模型-视图-控制器(MVC)架构为基础,为开发者提供了一种更加灵活的方式来处理用户的请求。随着版本的演进,...

    webwork中文文档

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

    webwork源码底层实现

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

    WebWork2.0讲解说明

    WebWork2.0是一款基于Java的企业级Web应用框架,它为开发者提供了强大的MVC(Model-View-Controller)架构支持,旨在简化Web应用程序的开发流程,提高代码的可维护性和可扩展性。本讲解将围绕WebWork2.0的核心概念、...

    WebWork深入浅出.doc

    5. 页面流程管理:WebWork的Action链和ActionForward可以管理页面流程。 6. 模块化管理:Action和视图的分离使得Web应用能够模块化。 7. 灵活可扩展性:支持多种展现技术,易于与其他业务层或数据层框架集成。 8. ...

    Webwork2-Guide.rar_webwork2

    Webwork2是一个基于Java的轻量级Web应用框架,它为开发者提供了构建MVC(Model-View-Controller)架构的应用程序的强大工具。本教程“Webwork2-Guide”旨在指导用户理解和掌握Webwork2框架的核心概念和技术。让我们...

Global site tag (gtag.js) - Google Analytics