基本原理
博客分类:
Java EE
阐述
struts2
的执行流程。
Struts 2 框架本身大致可以分为 3 个部分:核心控制器 FilterDispatcher、业务控制器
Action 和用户实现的企业业务逻辑组件。
核心控制器 FilterDispatcher 是 Struts 2 框架的基础,包含了框架内部的控制流程和处理
机制。业务控制器 Action 和业务逻辑组件是需要用户来自己实现的。用户在开发 Action 和
业务逻辑组件的同时,还需要编写相关的配置文件,供核心控制器 FilterDispatcher 来使用。
Struts 2 的工作流程相对于 Struts 1 要简单,与 WebWork 框架基本相同,所以说 Struts 2
是 WebWork 的升级版本。
基本简要流程如下:
1、客户端浏览器发出 HTTP 请求。
2、根据 web.xml 配置,该请求被 FilterDispatcher 接收。
3、根据 struts.xml 配置,找到需要调用的 Action 类和方法,并通过 IoC 方式,将值注
入给 Aciton。
4、Action 调用业务逻辑组件处理业务逻辑,这一步包含表单验证。
5、Action 执行完毕,根据 struts.xml 中的配置找到对应的返回结果 result,并跳转到相
应页面。
6、返回 HTTP 响应到客户端浏览器。
工作原理
在 Struts2 框架中的处理大概分为以下几个步骤
1 客户端初始化一个指向 Servlet 容器(例如 Tomcat)的请求
2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做
ActionContextCleanUp 的可选过滤器,这个过滤器对于 Struts2 和其他框架的集成很有帮
助,例如:SiteMesh Plugin)
3 接着 FilterDispatcher 被调用,FilterDispatcher 询问 ActionMapper 来决定这个请是否
需要调用某个 Action
4 如果 ActionMapper 决定需要调用某个 Action,FilterDispatcher 把请求的处理交给
ActionProxy
5 ActionProxy 通过 Configuration Manager 询问框架的配置文件,找到需要调用的 Action
类
6 ActionProxy 创建一个 ActionInvocation 的实例。