1.Struts2更加优雅一些,至少Action变成了一个纯粹的POJO,而无须再实现任何一个接口。
2.Struts2不再提供Webwork2内置的IoC容器支持,转而将Spring作为ObjectFactory的缺省实现。所有由Struts2创建的对象都是由ObjectFactory实例化,ObjectFactory可以集成各种IoC容器,例如Spring、Pico、 Plexus等等.
3.在拦截器方面,Struts2不再支持AroundInterceptor,如果要用到AroundInterceptor ,则必须单独引入Webwork2的相关类,或者重写自己的拦截器。
Struts2中绝大多数预建interceptor都从AbstractInterceptor扩展而来,AbstractInterceptor不在支持before、after两个抽象方法,取而代之的是intercept方法被抽象出来,交由子类去实现。 其实大多数interceptor只会去实现before、after中的一个,这样就必须还要在ww中为另一个提供空方法,再由于线程安全问题WW中before和after两个方法之间是无法共享数据,提供两个抽象方法实在意义不大。
AroundInterceptor抽象类在Struts2中已经去除,before和after两个方法无法共用数据,这个类真的没什么用,很多时候都是实现Interceptor接口更为实际。在Strtus2中,实现AbtractInterceptor更为有用,因为可以不用实现init 和destory方法,直接实现intercept方法就可以了。
4.Struts2全面引入了Dojo,大概是对以前Webwork2在客户端实现的不满吧。例如不再支持Webwork2的richtexteditor,而以Dojo的编辑器取代。说实话,Webwork2了的rich text编辑器确实不太好用,有不少bug。还把Webwork2的Datepicker标签换成了Dojo实现的datetimepicker标签。
5.Struts2在Action映射方面的改进值得关注,尤其是借鉴了Spring的方式,提供了对action名称通配符的支持。在Webwork2里,需要在xwork.xml里以如下格式定义action
<action name="Logon" class="com.Logon">
<result type="redirectAction">Menu</result>
<result name="input">/Logon.jsp</result>
</action>
而在Struts2中,则可以引入通配符,形如:
<action name="*Logon" class="com.Logon">
<result type="redirectAction">Menu</result>
<result name="input">/Logon.jsp</result>
</action>
这样,任何以Logon结尾用作登录验证的Action,例如NewUserLogon,都可调用com.Logon的一个实例。
6.Struts2还引入一个消息存储拦截器MessageStoreInterceptor用于存放、检索各种提示、错误消息等等,在一个session生命期中都是可用的。
7.对于模型层来说,struts2可以使用任何数据访问技术,像jdbc、ejb、hibernate等;对于视图层来说,struts2可以与jsp、jtl、jsf、pdf、xslt、templates、Jakarta Velocity engine等
分享到:
相关推荐
在探讨Struts2与WebWork2的联系与区别的过程中,我们不得不提到它们的历史渊源以及在Java Web开发领域中的地位。Struts2框架实际上可以视为WebWork2框架的继承者,两者之间的关系紧密而复杂,下面将从多个角度深入...
Struts2、Webwork2 和 DWR 是三个在 Web 开发领域中至关重要的技术,尤其在构建企业级的 WEB2.0 应用程序时。接下来,我们将详细探讨这三个技术的核心概念、工作原理以及它们之间的关系。 **Struts2** 是一个基于 ...
此外,Spring MVC是Spring框架的一部分,用于构建Web应用,它与Struts2一样基于MVC模式,但提供了更多灵活性和可扩展性。 将Struts2、WebWork和Spring结合在一起,可以创建出一个强大的企业级应用架构。Struts2负责...
Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,...
#### 二、Struts2与线程安全问题 Struts2框架设计时充分考虑了线程安全问题,主要体现在其默认使用“prototype”作用域来管理`Action`类实例,这意味着每次请求都会创建一个新的`Action`实例。 - **Struts2中...
与WebWork相比,Struts2的拦截器链更加强大,可以更方便地组合和自定义拦截器,实现复杂的业务逻辑。 5. **表达式语言(EL)和OGNL**: Struts2采用OGNL(Object-Graph Navigation Language)作为默认的表达式语言...
struts2的教程,struts2整合了struts1+webwork.基于MVC的Framework struts2的教程,struts2整合了struts1+webwork.基于MVC的Framework
**Struts 2与WebWork的结合**: Struts 2 的核心技术基础是WebWork,它在Struts 1的基础上进行了许多改进,如更强大的表达式语言(OGNL)、拦截器机制、更简单的配置等。WebWork的这些特性被集成到Struts 2中,使得...
Struts2和Webwork远程命令执行漏洞主要源于Apache Struts2框架中的一个设计缺陷,该框架使用OGNL(Object-Graph Navigation Language)表达式来处理用户输入,这为恶意攻击者提供了可乘之机。该漏洞发生在Struts2的...
- `webwork2开发指南.pdf`则是针对WebWork框架的指导手册,帮助理解WebWork的设计原理和用法。 通过以上文档,你可以系统地学习Struts2和WebWork的基本概念、核心组件以及实际应用。在掌握这两个框架的基础上,...
在视图层,Struts2提供了自己的标签库,这些标签在功能上与WebWork的标签相似,但有所增强。Struts2的标签使得在JSP页面上操作和展示数据变得更加简单,减少了硬编码,提高了代码的可读性和复用性。同时,Struts2...
Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品
从给定的文件信息来看,标题“struts2中文学习文档”和描述“struts2的根本webwork2”表明这是一份关于Struts2框架的学习资料,特别强调了Struts2与WebWork2的关系。Struts2是Apache Struts的一个版本,它是一个用于...
不用多说了,Struts 2权威指南--基于WebWork核心的MVC开发(高清完整版),解压出来有200多M,因为权限不怎么够,我一共分了12卷,是一本不可多得的好书。第一卷附目录: 第1章 Struts 2概述,第2章 Struts 2下的Hello...
Struts 2 与Struts 1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:WebWork基础上发展起来的。从某种程度上来讲,Struts2没有继承Struts 1的血统,而是继承WebWork的血统。...
Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,...
Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,...
是学习struts 2很好的资料,这是原代码,分成两个压缩包.
Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,...
Struts2 和 Struts1 是两个著名的 Java Web 开发框架,它们都出自 Apache Software Foundation,但有着显著的区别。Struts1 是早期的 MVC 框架,而 Struts2 则是在 WebWork 框架的基础上发展起来的,它吸收了 Struts...