Struts 2 的执行流程

大致如此所示:Web 服务器启动解析 struts.xml,初始化消息文件,
Action 路径映射等资源,初始化框架→用户请求 XXX.action →Struts 2 过滤器使用对象工
厂(Object Factory,可以是自带或者是 Spring)创建 Action 类的示例 →执行 IOC和拦截器
(包括解析表单参数,文件上传,将解析结果注入 Action 对象) →调用 Action 中用户编
写的业务方法 →根据返回的结果(Result)路径转向视图层 →视图层进行显示(包括调用标
签库等) 。

 

Action 类

Struts2的Action类实现了一个Action接口,连同其他接口一起来实现可选择和自定义的服务。Struts2提
供一个名叫ActionSupport 的基类来实现一般使用的接口。 当然, Action接口不是必须的。 任何使用execute
方法的POJO对象可以被当作Struts 2的Action对象来使用。

 

线程模型

Struts2 Action对象为每一个请求都实例化对象,所以没有线程安全的问题。 (实践中,servlet容器给每一个请求产生许多丟弃的对象,并且不会导致性能和垃圾回收问题)

 

Servlet 依赖

Struts2 的 Action 和容器无关。Servlet 上下文被表现为简单的 Maps,允许 Action 被独立的测试。Struts2
的 Action 可以访问最初的请求(如果需要的话)。但是,尽可能避免或排除其他元素直接访问
HttpServletRequest 或HttpServletResponse。

 

易测性

Struts2的Action可以通过初始化、设置属性、调用方法来测试。依赖注入的支持也是测试变得更简单。

 

 

你可能感兴趣的:(spring,struts,servlet,测试,IOC,action)