图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等。

浙公网安备 33010602011771号