加入收藏 | 设为首页
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

STRUTS2体系结构

Posted on 2014-10-31 15:36  墨香一点足以  阅读(1079)  评论(0)    收藏  举报

struts2架构图

图1.struts2的系统结构

这张图展示了struts2的内部模块,以及它的运行流程。浏览完图片后,看到了不同颜色的模块,如图左下所示:

  • 橙色表示Servlet Filters,所有请求都要经过过滤器链的处理。
  • 浅蓝色表示Struts Core,Struts2的核心部分。
  • 浅绿色表示Interceptors,Struts2的拦截器。
  • 黄色表示User created,由开发人员创建,包括struts.xml,Action,Template,是每个使用Struts2进行开发的人员必须会的部分。

各模块说明:

  • FilterDispatcher是Struts2的核心控制器,负责拦截所有的用户请求,根据ActionMapper的结果来决定是否处理请求。如果ActionMapper指出该URL应该被Struts2处理,那它将会执行Action处理,并停止过滤链上还没停止的过滤器。
  • ActionMapper提供了HTTP请求与Action执行之间的映射,即ActionMapper会判断这个请求是否应该被Struts2处理。
  • ActionProxy是一个特别的中间件,位于Action和xwork之间,使得将来引入更多的实现方式。
  • ConfigurationManager是xwork配置的管理中心,可以说是struts.xml在内存中的对应。
  • struts.xml是Struts2的配置文件,主要负责管理Struts2框架的业务控制器Action。
  • ActionInvocation真正调用并执行Action,拥有一个Action实例及其依赖的拦截器实例。
  • Interceptor,拦截器是一些无状态的类,可以自动拦截Action。
  • Action,Struts2中的动作执行单元,用来处理用户请求并封装业务所需数据。
  • Result:不同视图类型的抽象封装模型,不同的视图会对应不同的Result实现。
  • Template:不同视图类型的页面模版,如JSP。
  • Tag Subsystem,Struts2的标签库,抽象了不同的视图技术,如JSP,FreeMarker等。