struts2是基于web的一个MVC框架
MVC介绍
MVC思想将一个应用分为三个基本部分:Model(模型)、View(视图) 和Controller(控制器),这三个部分以最少的耦合协同工作,从而提高应用的可扩展及可维护性。
MVC有如下特点:
1.多个视图可以对应一个模型。按MVC设计模式,一个模型对应多个视图,可以减少代码的复制及代码的维护量,一量模型发生改变,也易于维护。
2.应用被分为三层,降低了各层之间的耦合,提供了应用的可扩展性。
3.MVC更符合软件工程化管理的精神。不同的层各司其职,每一层的组件具有相的特征,有利于通过管理。
struts1介绍
struts1框架介绍,控制器就是它的核心,struts1的控制器由两个部分组成,核心控制器和业务逻辑控制器。其中核心控制器就是ActionServlet,由Struts1框架提供;业务逻辑控制就是用户自定义的Action,由应用开发者提供。
struts1处理流程:当用户发送一个需要得到服务器处理的请求时,该请求被ActionServlet拦截到,ActionServlet将该请求转发给对应的业务逻辑控制器,业务逻辑控制器调用模型来处理用户请求,最后把处理的结果响应给用户。
struts1中MVC的三个角色
Model:主要由底层的业务逻辑组件充当,这些业务逻辑组件封装了底层数据库访问,业务逻辑方法实现。
View:主要采用JSP实现。
Controller:由两部分组成,系统核心控制器(ActionServlet),业务逻辑控制器(用户自己实现的Action实例)
Struts1中存在的缺陷
1.支持的表现层技术单一,只支持JSP作为表现层技术。
2.与Servlet API严重耦合,难于测试。
3.代码严重依赖于Struts1 API,属于侵入式设计。
Struts2 框架介绍
Struts2也是以控制器为核心,它包括核心控制器(FilterDispatcher)和业务控制器及用户实现的的业务逻辑组件。
Struts 2框架的大致处理流程如下。
(1)浏览器发送请求,例如请求/mypage.action、/reports/myreport.pdf等。
(2)核心控制器FilterDispatcher根据请求决定调用合适的Action。
(3)Struts 2的拦截器链自动对请求应用通用功能,例如workflow、validation或文件上传等功能。
(4)回调Action的execute方法,该execute方法先获取用户请求参数,然后执行某种数据库操作,既可以将数据保存到数据库,也可以从数据库中检索信息。实际上,因为Action只是一个控制器,它会调用业务逻辑组件来处理用户的请求。
(5)Action的execute方法处理结果信息将被输出到浏览器中,可以是HTML页面、图像,也可以是PDF文档或者其他文档。此时支持的视图技术非常多,既支持JSP,也支持Velocity、FreeMarker等模板技术。
Struts2 相关接口介绍
Action接口:定义了几个标准的字符串常量,比如SUCCESS、NONE、ERROR、INPUT等
ActionSupport类:些类是一个工具类,它已经实现了Action接口,除些之外,它还实现了Validateable接口,提供了数据校验功能。