Struts学习

Struts2-概述
struts2 是strut的下一代产品,它是1代和webwork的技术基础的合并,全新的 Struts 2 与 Struts 1 差别巨大,但是相对于 WebWork,Struts 2 的变化很小。
Struts 2并不是一门完全独立的技术,而是建立在其他 Web 技术之上的一个 MVC 框架。Struts 2 以WebWork 为核心,采用拦截器的机制来处理用户的请求,这种设计使得业务逻辑控制器能够与 Servlet API 完全脱离开,所以 Struts 2 可以理解为 WebWork 的更新产品。实际上,WebWork 和 Struts 社区已经合二为一,即现在的 Struts 2 社区。(备注:和Tomcat一样,它们都是Apache公司的研究成果
Struts的MVC模式
在 Struts 2 中,
V:视图层对应视图组件,通常是指 JSP 页面,也适用于 Velocity、FreeMarker等其他视图显示技术。
M:模型层对应业务逻辑组件,它通常用于实现业务逻辑及与底层数据库的交互等。
C:系统核心控制器为 Struts 2 框架提供的 StrutsPrepareAndExecuteFilter,它是一个起过滤作用的类,能根据请求自动调用相应的 Action。而业务逻辑控制器是开发者自定义的一系列Action,在 Action 中负责调用相应的业务逻辑组件,来完成调用处理。
所以,我们一般把Action归为模型层,但是它是属于模型层的控制器

这里写图片描述
线程安全的工作模式
每次请求都会创建一个新的Action对象,与Servlet是不同的
Servlet的生命周期–单例模式
Action:每次发送一个请求,就会创建一个新的Action 多例
实现Action的三种方式 第一种是普通类,public String execute(){} 第二种是implements Action 第三种是extends ActionSupport