`
andismail
  • 浏览: 2835 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Struts2.0请求过程图解(转)

 
阅读更多
Struts2架构图


[size=xx-large]  请求首先通过Filter chain,Filter主要包括ActionContextCleanUp,它主要清理当前线程的ActionContext和Dispatcher;FilterDispatcher主要通过AcionMapper来决定需要调用哪个Action。
   ActionMapper取得了ActionMapping后,在Dispatcher的serviceAction方法里创建ActionProxy,ActionProxy创建ActionInvocation,然后ActionInvocation调用Interceptors,执行Action本身,创建Result并返回,当然,如果要在返回之前做些什么,可以实现PreResultListener。


Struts2部分类介绍
这部分从Struts2参考文档中翻译就可以了。
ActionMapper
   ActionMapper其实是HttpServletRequest和Action调用请求的一个映射,它屏蔽了Action对于Request等java Servlet类的依赖。Struts2中它的默认实现类是DefaultActionMapper,ActionMapper很大的用处可以根据自己的需要来设计url格式,它自己也有Restful的实现,具体可以参考文档的docs\actionmapper.html。
ActionProxy&ActionInvocation 
Action的一个代理,由ActionProxyFactory创建,它本身不包括Action实例,默认实现DefaultActionProxy是由ActionInvocation持有Action实例。ActionProxy作用是如何取得Action,无论是本地还是远程。而ActionInvocation的作用是如何执行Action,拦截器的功能就是在ActionInvocation中实现的。
ConfigurationProvider&Configuration   ConfigurationProvider就是Struts2中配置文件的解析器,Struts2中的配置文件主要是尤其实现类XmlConfigurationProvider及其子类StrutsXmlConfigurationProvider来解析,


Struts2请求流程
1、客户端发送请求
2、请求先通过ActionContextCleanUp-->FilterDispatcher
3、FilterDispatcher通过ActionMapper来决定这个Request需要调用哪个Action
4、如果ActionMapper决定调用某个Action,FilterDispatcher把请求的处理交给ActionProxy,这儿已经转到它的Delegate--Dispatcher来执行
5、ActionProxy根据ActionMapping和ConfigurationManager找到需要调用的Action类
6、ActionProxy创建一个ActionInvocation的实例
7、ActionInvocation调用真正的Action,当然这涉及到相关拦截器的调用
8、Action执行完毕,ActionInvocation创建Result并返回,当然,如果要在返回之前做些什么,可以实现PreResultListener。添加PreResultListener可以在Interceptor中实现,不知道其它还有什么方式?
分享到:
评论

相关推荐

    struts2.0工程搭建图解.xls

    struts2.0 工程 搭建 图解 struts2.0 工程 搭建 图解 struts2.0 工程 搭建 图解 struts2.0 工程 搭建 图解

    Struts2.0学习Struts2.0文档

    - 该页面可以包含简单的表单元素,用于提交请求至Struts 2.0 控制器。 #### 四、总结 通过上述步骤,我们已经成功搭建了一个基本的Struts 2.0 开发环境。接下来,开发者可以根据具体需求进一步深入学习Struts 2.0 ...

    struts2.0中文教程

    01 为Struts 2.0做好准备 02 常用的Struts 2.0的标志(Tag) 03 Struts 2.0的Action讲解 04 在Struts 2.0中国际化(i18n)您的应用程序 05 转换器(Converter)——Struts 2.0中的魔术师 06 在Struts 2.0中实现表单...

    Struts 2.0系列(MAX)

    Struts 2.0系列(MAX),pdf格式,全方位介绍struts2: 常用的Struts 2.0的标志(Tag)介绍 Struts 2.0的Action讲解 在Struts 2.0中国际化(i18n)您的应用程序 转换器(Converter)——Struts 2.0中的魔术师 在Struts ...

    JavaEE源代码 Struts2.0

    JavaEE源代码 Struts2.0JavaEE源代码 Struts2.0JavaEE源代码 Struts2.0JavaEE源代码 Struts2.0JavaEE源代码 Struts2.0JavaEE源代码 Struts2.0JavaEE源代码 Struts2.0JavaEE源代码 Struts2.0JavaEE源代码 Struts2.0...

    Struts2.0视频教程+struts2.0中文教程

    Struts2.0是Java Web开发中的一个强大框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建可维护性高、结构清晰的Web应用程序的工具。这个"Struts2.0视频教程+struts2.0中文教程"包含的资源旨在...

    struts2.0的特点

    示例中的web.xml文件就展示了如何配置Struts2.0的FilterDispatcher,使其能够拦截所有请求,将请求分发到相应的Action。 在页面展示上,Struts2.0提供了丰富的标签库,如、等,这些标签可以简化JSP页面的编写,同时...

    Struts2.0的api

    Struts2.0是Java Web开发中的一个热门框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建动态Web应用程序的强大工具。API文档是理解任何框架核心功能的关键,对于Struts2.0也不例外。让我们深入...

    Struts 2.0

    Struts 2.0 是一个基于 Model-View-Controller (MVC) 设计模式的Java Web应用程序框架。它并非Struts 1的直接升级,而是源自WebWork框架,提供了更强大的特性和灵活性。Struts 2的核心是Action,它是业务逻辑处理的...

    struts 2.0

    1. **Action和Result**: 在Struts 2.0中,Action类是处理用户请求的核心组件。Action类继承自`com.opensymphony.xwork2.ActionSupport`,并覆盖或实现相应的业务方法。完成业务逻辑后,Action会返回一个结果(Result...

    Struts2.0 Jar包

    Struts2.0是一款强大的Java Web框架,它在MVC(Model-View-Controller)设计模式的基础上,提供了灵活且强大的架构来构建企业级的Web应用程序。这个“Struts2.0 Jar包”包含了所有必要的库文件,使得开发者可以便捷...

    struts 2.0 详细配置

    ### Struts 2.0 详细配置解析 #### 一、Struts 2.0 简介 Struts 2.0 是一个基于 Java 的开源框架,用于开发 Web 应用程序。它继承了 Struts 1.x 的优点,并在架构上进行了改进,更加灵活且易于扩展。Struts 2.0 ...

    Struts2.0学习系列 以及 Struts2.0安装包

    在Struts2.0的学习过程中,首先需要了解的是其基本架构。Struts2.0框架整合了多种开源项目,如FreeMarker或JSP作为视图技术,OGNL(Object-Graph Navigation Language)作为表达式语言,以及拦截器机制来处理请求。...

    struts2.0入门案例

    Struts2.0是Java Web开发中一个非常重要的框架,它是Apache软件基金会的Jakarta项目下的一个开源产品,主要用于构建MVC(Model-View-Controller)模式的应用程序。本入门案例将带你逐步了解如何使用Struts2.0来创建...

    初识[Struts2.0]并[使用Struts2.0]进行SSH集成

    在"初识[Struts2.0]并[使用Struts2.0]进行SSH集成"的学习过程中,"userLogin"可能是一个示例应用,涉及用户登录功能。用户登录通常包括用户输入验证、数据库查询等操作,这些可以通过Struts2.0的Action实现,而...

    三大框架中文文档中的struts2.0开发手册(程序员必看)

    1. **Action和结果类型**:Struts2.0中的Action类是处理用户请求的核心,每个Action对应一个业务逻辑。Action执行完毕后,会返回一个Result,定义了如何处理操作的结果,如转发到某个JSP页面或者进行其他操作。 2. ...

    struts2.0的数据校验框架struts2.0的数据校验框架

    struts2.0的数据校验框架struts2.0的数据校验框架struts2.0的数据校验框架struts2.0的数据校验框架

    Struts_2.0从入门到精通

    Action是Struts2.0框架的核心组件,负责处理用户请求并返回相应的结果。Struts2.0支持两种Action编写方式:非IoC方式和IoC方式。非IoC方式下,Action需要手动管理依赖注入,而IoC方式则利用容器自动完成这一过程,使...

    struts2.0的 jar包和源文件

    通过阅读源代码,开发者可以深入理解Struts2.0的工作机制,包括请求处理流程、拦截器链的执行、配置解析等,这对于调试、优化和自定义框架行为非常有帮助。 学习Struts2.0,你需要掌握以下几个重要概念: - **...

    Struts 2.0全攻略之Struts 2.0参考手册

    Struts 2.0提供了一套完整的异常处理机制,可以捕获并处理Action执行过程中的异常,同时提供自定义的错误页面。 9. **国际化与本地化** Struts 2.0支持多语言环境,通过资源包(Resource Bundle)管理不同语言的...

Global site tag (gtag.js) - Google Analytics