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设计模式将应用程序划分为模型层、视图层、控制器。
模型层包括业务逻辑和数据访问层,在整个mvc模型中model部分就是业务流程或状态的处理以及业务规则的制定,可以说是mvc中最重要的部分。
视图,一个web项目中可能有很多不同的视图,mvc设计模式对于视图的处理仅限于视图上数据的采集和处理以及响应用户的请求,而不包括在视图上的业务流程的处理。
控制器,控制器在视图层与业务逻辑层之间起到了桥梁作用,控制了两者之间的数据流向。当用户请求从v部分传到控制器时,控制器调用相应的模型层在控制器中进行处理。控制器再将处理结果转发给适当的视图层,循环进行此过程。
1.用户的请求提交给控制器
2.控制器受到用户请求后根据用户的具体需求,调用相应的模型(javabean或者ejb)来处理用户请求。
3.控制器调用模型层进行数据处理后,根据处理结果进行下一步的跳转,如跳转到另一个视图或其他控制层。
struts2是基于mvc设计模式的java web框架技术之一,struts2框架按照mvc的设计思想把java web 应用程序分为:控制层(核心控制器和业务控制器)、模型层(业务逻辑组件和数据库访问组件)、视图层(包括html、jsp、struts2的表签)。
1.客户提交请求道服务器
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的一些细节好处就更不用说了,例如获取表单内容,并组织生成参数对象、易于扩展的插件机制。