Struts2 框架跟strut1一样都是从webwork2发展而来,它也是一个mvc框架。它与struts1不同,struts2有许多struts1,没有的优点,struts2的优点如下
第一:在软件设计上不依赖与Servlet API跟servlet没有太多的耦合度,struts2的设计是无侵入式的设计二struts1是侵入式设计。
第二; Struts2提供了拦截器的功能,利用拦截器进行AOP编程(面向切面编程),实现权限验证等功能。
第三: struts2也提供了类型转换的功能,对特殊的需求进行转换。如果我们要对同样的功能进行转换,我们必须在底层实现对beanutil的注册。
第四.:struts2支撑多种表现层的技术如jsp,freemarker等
第五:struts2可以对指定的方法和所有的方法进行校验。
第六:提供了全局范围,包范围和action范围的资源国际化的实现。
Struts2中很多的优点,这里只是总结了几点还有许多需要你总结发现。我们说了strus2的优点。下面我们来看一下它的体系结构。在体系结构之前我们来说一下MVC中各个字母代表的含义。M代表的Model业务处理层,View代表的是视图层,C代表的控制层,代表是业务逻辑层
注释;关于MVC模式可以参见Struts2入门基础之自定义MVC框架(一)
Struts2的体系结构图如下:
从体系结构图中我们可以发现struts2通过拦截器来处理用户的请求,从而允许用户的业务逻辑控制器和Servlet分离。在处理过程中,以业务逻辑控制器为目标创建一个控制器代理,控制器代理来处理用户的请求,处理请求调用业务控制器的execute方法,该方法的返回值来决定struts2以什么资源的方式来展现给用户。
从体系结构图中我们可以发现它的处理流程:
1浏览器发送请求例如/muweb/login.action,report/es.pdf等
2核心控制器FilgerDispatcher根据请求调用对赢的action
3Webwork的拦截器链自动调用应用的请求例如validate文件或者converter
4回调action的execute的方法,该方法先获取参数,然后执行数据的操作,既可以把数据保存到数据库中也可以把数据从数据中提取出来,同时在出来之后返回一个string类型的值。
5Action中execute的方法处理结果信息将输出到html中或者是文档,我们主要通过execute方法处理后的返回参数来调用。