"深入解析Struts2框架处理流程与Action管理差异"

需积分: 9 0 下载量 87 浏览量 更新于2024-01-18 收藏 4.09MB PPT 举报
Struts2是一个基于WebWork2发展而来的MVC框架,它与Struts1在代码编写风格和一些特性上有着较大的差异。下面是对Struts2的处理流程和对Action的管理方式的总结。 StrutsPrepareAndExecuteFilter是Struts2框架的核心控制器,它拦截用户的请求并进行过滤。默认情况下,如果用户请求的路径没有后缀或者后缀是.action,请求会被转入Struts2框架进行处理,否则框架会忽略该请求。当请求进入Struts2框架处理时,会经过一系列的拦截器后再到达Action。与Struts1不同的是,Struts2对每个用户请求都会创建一个Action实例,因此Struts2中的Action是线程安全的。 相比之下,Struts1采用单例模式,整个应用生命周期内只存在一个Action实例。这是两者对Action管理方式的主要差异之一。在以后的面试中,有可能会询问这个差异,因此应当做好准备。 Struts2相对于Struts1的优点有以下几个方面:首先,它采用无侵入式设计,没有紧密耦合的API依赖,不需要依赖于Servlet API和Struts API。其次,Struts2提供了拦截器功能,可以实现如权限拦截等AOP编程的功能。第三,Struts2提供了类型转换器,可以将特殊的请求参数转换成需要的类型。第四,它支持多种表现层技术。第五,Struts2的输入校验可以对指定方法进行校验。最后,它提供了全局、包范围和Action范围的国际化资源文件管理实现。 综上所述,Struts2是一个基于WebWork2发展而来的MVC框架,它在代码编写风格、处理流程和对Action的管理方式上与Struts1有很大的差异。Struts2采用了无侵入式设计、提供了拦截器和类型转换器等功能,并支持多种表现层技术和输入校验。在处理用户请求时,Struts2会创建一个线程安全的Action实例来处理每个请求。与Struts1相比,Struts2具有更加灵活和强大的功能,因此在实际开发中被广泛使用。