Struts2简单介绍
Struts 2框架作为Struts 1.X框架的替代技术,相对Struts 1.X来说,有着本质上的改变。 Struts 2框架是从WebWork框架发展而来的.Apache Struts 2即是大家之前所熟悉的webwork2.随着各自的发展。webwork和Struts社区决定将二者合并为Struts2,新版本号的Struts与曾经版本号一样更易于使用。从某种程度上来讲。Struts2没有继承Struts1的血统,而是继承了webwork的血统而且吸收了Struts1和webwork两者的优势。所以说Struts2并非一个全新的框架。
mvc设计模式
谈到Struts就不得不谈谈mvc设计模式。mvc设计模式是一种眼下广泛应用的软件设计模式。随着网络应用的高速发展,应用变得越来越复杂,mvc设计模式为应用模型提供了最主要的分析方法。为构造产品提供了清晰的设计框架,为软件project提供规范的根据。
mvc设计模式将应用程序划分为模型层、视图层、控制器。
模型层包含业务逻辑和数据訪问层,在整个mvc模型中Model部分就是业务流程或状态的处理以及业务规则的制定。能够说是mvc中最重要的部分。
视图。一个web项目中可能有非常多不同的视图,mvc设计模式对于视图的处理仅限于视图上数据的採集和处理以及响应用户的请求。而不包含在视图上的业务流程的处理。
控制器,控制器在视图层与业务逻辑层之间起到了桥梁作用,控制了两者之间的数据流向。
当用户请求从V部分传到控制器时,控制器调用对应的模型层在控制器中进行处理。控制器再将处理结果转发给适当的视图层。循环进行此过程。
mvc工作流程:
1.用户的请求提交给控制器
2.控制器受到用户请求后依据用户的详细需求,调用对应的模型(javabean或者EJB)来处理用户请求。
3.控制器调用模型层进行数据处理后,依据处理结果进行下一步的跳转,如跳转到还有一个视图或其它控制层。
struts2工作原理
Struts2是基于mvc设计模式的java web框架技术之中的一个,Struts2框架依照mvc的设计思想把java web 应用程序分为:控制层(核心控制器和业务控制器)、模型层(业务逻辑组件和数据库訪问组件)、视图层(包含HTML、JSP、Struts2的表签)。
1.客户提交请求道server
2.请求被提交到一系列的过滤器或者拦截器。最后到达FilterDispather
3.FilterDispather读取配置文件struts.xml。依据配置信息调用某个Action来处理客户请求。
4.Action处理后。返回结果,FilterDispather依据struts.xml的配置找到相应的页面跳转。
核心控制器
Struts2的成功因素之中的一个在于核心控制器FilterDispather。该控制器作为一个过滤器执行在java web项目中,负责拦截全部用户请求,当用户请求到达时,该过滤请求会过滤用户请求。FilterDispather负责四个方面的功能:
(1)运行Actions
(2)清除ActionContext
(3)维护静态内容
(4)清除request生命周期内的XWork的interceptors
业务控制器
Struts2的成功的还有一个因素在于Action业务逻辑控制器。
开发基于Struts2的java web 应用项目时,Action是数据处理的核心,须要编写大量的Action类,并在struts.xml文件里配置Action。
Action类中包括了对用户请求的处理逻辑,因此也把Action称为Action业务控制器。它是用户请求和业务逻辑之间的桥梁,每一个Action充当客户的业务代理。
总结
Struts2紧紧环绕两大核心控制器,做到了依据请求的參数转发请求给适当的控制器、在控制器中调用业务接口、将业务接口返回的结果包装起来发送给指定的视图,并由视图完毕处理结果的展现。使得开发模块化、减少耦合、更易于扩展。当然Struts2的一些细节优点就更不用说了,比如获取表单内容,并组织生成參数对象、易于扩展的插件机制。