`

Struts2的英文流程图和简要说明

阅读更多
核心控制器FilterDispatcher是Struts 2框架的基础,包含了框架内部的控制流程和处理机制。业务控制器Action和业务逻辑组件是需要用户来自己实现的。用户在开发Action和业务逻辑组件的同时,还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用。

Struts 2的工作流程相对于Struts 1要简单,与WebWork框架基本相同,所以说Struts 2是WebWork的升级版本。Struts 2框架按照模块来划分,可以分为Servlet Filters、Struts核心模块、拦截器和用户实现部分。

一个请求在Struts 2框架中的处理大概分为以下几个步骤。


   
客户端提交一个(HttpServletRequest)请求,如上文在浏览器中输入      http://localhost: 8080/bookcode/ch2/Reg.action就是提交一个(HttpServletRequest)请求。
   
请求被提交到一系列(主要是3层)的过滤器(Filter),如(ActionContextCleanUp、其他过滤器(SiteMesh等)、 FilterDispatcher)。注意:这里是有顺序的,先ActionContext      CleanUp,再其他过滤器(Othter      Filters、SiteMesh等),最后到FilterDispatcher。
   
FilterDispatcher是控制器的核心,就是MVC的Struts 2实现中控制层(Controller)的核心。
   
FilterDispatcher 询问ActionMapper是否需要调用某个Action来处理这个(HttpServlet Request)请求,如果ActionMapper决定需要调用某个Action,FilterDispatcher则把请求的处理交给 ActionProxy。
   
ActionProxy通过Configuration Manager(struts.xml)询问框架的配置文件,找到需要调用的Action类。例如,用户注册示例将找到UserReg类。
   
ActionProxy创建一个ActionInvocation实例,同时ActionInvocation通过代理模式调用Action。但在调用之前,ActionInvocation会根据配置加载Action相关的所有Interceptor(拦截器)。
   
一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果result。
Struts 2的核心控制器是FilterDispatcher,有3个重要的方法:destroy()、doFilter()和Init(),可以在Struts 2的下载文件夹中找到源代码.

在doFilter()方法中,将调用dispatcher.serviceAction,该方法如果找到相应的Action,将把用户请求交给ActionProxy。serviceAction()代码在Dispatcher.java中.

从上面代码中可以看出来,Struts 2用于处理用户请求的Action实例,并不是用户实现的业务控制器,而是Action代理。关于Action代理相关内容,读者可以参考拦截器章节的介绍。

前面一直在说Action可以是一个普通的Java类,与Servlet API完全分离,但是为了实现业务逻辑,Action需要使用HttpServletRequest内容。

Struts 2设计的精巧之处就是使用了Action代理,Action代理可以根据系统的配置,加载一系列的拦截器,由拦截器将 HttpServletRequest参数解析出来,传入Action。同样,Action处理的结果也是通过拦截器传入 HttpServletResponse,然后由HttpServletRequest传给用户。

Struts 2处理过程模型

★ 说明 ★

拦截器是Struts 2框架的核心,通过拦截器,实现了AOP(面向切面编程)。使用拦截器,可以简化Web开发中的某些应用,例如,权限拦截器可以简化Web应用中的权限检查。

业务控制器Action

业务控制器Action是由开发者自己编写实现的,Action类可以是一个简单的Java类,与Servlet API完全分离。Action一般都有一个execute()方法,也可以定义其他业务控制方法,详细内容将在后面介绍。


Action的execute()返回一个String类型值,这与Struts 1返回的ActionForward相比,简单易懂。Struts 2提供了一个ActionSupport工具类,该类实现了Action接口和validate()方法,一般开发者编写Action可以直接继承 ActionSupport类。编写Action类后,开发者还必须在配置文件中配置Action。一个Action的配置应该包含下面几个元素:


   
1、该Action的name,即用户请求所指向的URL。
   
2、Action所对应的class元素,对应Action类的位置。
   
3、指定result逻辑名称和实际资源的定位
  • 大小: 55.7 KB
分享到:
评论

相关推荐

    中兴struts2 时序图

    在《时序图及简要说明.doc》文档中,可能会包含更详细的解释,比如各个组件的具体交互细节、特定场景下的流程变化、异常处理等。这份文档将帮助开发者深入理解Struts2的工作原理,从而更好地应用和优化框架,提高...

    Struts2入门教程(全新完整版)

    一、准备工作及实例 3 1.解压struts-2.1.6-all.zip 3 2.六个基本包 3 3.初识struts2配置文件 4 ... 下面对struts2的基本执行流程作一简要说明,此流程说明可以结合官方提供的struts2结构图来看: 60

    struts2讲义.doc

    ### Struts2讲义知识点概览 #### 第一章:Struts是否过时? ##### Struts历史发展过程 ...以上内容仅是对Struts 2讲义的简要总结,深入学习和掌握Struts 2框架,需要结合实际项目经验和持续的实践探索。

    struts2的速成教程,充电的都来看了

    - **Spring与Struts2集成**:说明如何将Spring与Struts2相结合,以实现更为灵活的对象管理和事务控制。 #### 十五、集成iBatis - **iBatis简介**:介绍iBatis(现称为MyBatis)的基本概念及特点。 - **Struts2与...

    系统概要设计模板及简要说明

    ### 系统概要设计模板及简要说明 #### 引言 系统概要设计是软件工程中的关键步骤,它为后续的详细设计和系统实现提供了基础框架和方向。长沙园有限公司的信息中心针对其门户网站——CSSP_CMS,进行了一次全面的...

    struts数据源配置

    在深入探讨Struts框架中的数据源配置之前,我们先来简要回顾一下Struts框架的基本概念。Struts是一个开源的MVC(Model-View-Controller)框架,主要用于Java Web应用程序的开发,它能够帮助开发者构建出结构清晰、...

    毕业设计 深入Struts架构 外文资料翻译

    - **GUI与架构的发展**:简要回顾了图形用户界面(GUI)的发展历程,以及如何影响了软件架构的发展趋势,特别是MVC架构模式的提出和发展。 通过以上内容,我们可以看到Struts不仅是一个强大的Web应用框架,而且还是...

    SSH图书商城

    5. **简要文档.doc**:这个文件很可能是项目简介或者开发指南,包含了SSH图书商城的基本功能介绍、系统架构、开发流程和注意事项等内容,对于理解和维护项目至关重要。 6. **bookstore**:这是一个可能包含源代码、...

    基金交易平台(系统需求和需求分析说明书)定义.pdf

    基金交易平台系统需求和需求分析说明书是软件开发过程中的重要文档,它详细描述了系统的目标、功能、用户环境以及性能和技术要求。以下是对这些内容的详细解释: 1. **项目背景**: 开放式上市基金交易平台的开发...

    jsp 电子商务系统

    - "Struts网上商城(图书)说明.txt":Struts是Java Web开发的一个MVC框架,这可能是对一个使用Struts框架的网上商城项目的简要说明,可能是该项目的一部分或者参考。 - "动态网站制作指南.url":可能是一个指向教程或...

    家电售后服务系统.rar

    8. **说明.txt**:这是一个文本文件,可能包含系统安装、配置或升级的简要说明,或者是一些开发者留下的注释和提示。 9. **售后服务界面**:这部分可能是系统实际的用户界面截图或者设计图,展示了用户在系统中进行...

    市政电子政务需求文档(机密)

    《市政电子政务需求文档》是针对政府信息化项目的一份详细技术文档,旨在规划和定义市政电子政务系统的功能和操作流程。这份文档对于理解和构建高效、安全的电子政务平台至关重要。 1. **简介** - 目的:文档的...

    毕业论文jsp1791销售数据决策支持系统ssh.doc

    本系统采用的技术栈主要包括Extjs、Struts2、Spring和Hibernate,以及数据库管理系统MySQL。以下是对这些技术的简要介绍: 1. Extjs:这是一种用于构建富客户端Web应用的JavaScript框架,提供了丰富的用户界面组件...

    网上书城论文计算机网上书城论文

    - 业务流程图则描绘了用户从浏览到购买图书的完整过程,涉及的步骤和角色。 5. **详细设计**: - 数据库详细设计包括数据表的设计,如用户信息表、图书信息表、订单信息表等,以及它们之间的关联关系。 - 建立...

    毕业论文jsp1728网上购物系统ssh.pdf

    6. **业务流程分析**:绘制业务流程图,展示从用户下单到完成交易的整个流程。 7. **数据库设计**:涉及ER图(实体关系图),说明数据库的实体、属性和关系,以及数据字典,详细定义每个表的字段和含义。 8. **数据...

Global site tag (gtag.js) - Google Analytics