`

Struts2和Strtus1.x比较

阅读更多

Struts2Strtus1.x行全面的比让读者了解框架各自的缺点,以便于在自己的目中,根据实际情况,选择合适的框架,两者行比总结了如下表分析比

特性

Struts1.x

Struts2

Action

Struts1.x要求Action展自一个抽象基Struts1.x的一个共有的问题是面向抽象类编程而不是面向接口程。

Struts2Action类实现了一个Action接口,同其他接口一起来实现选择和自定的服Struts2提供一个名叫ActionSupport的基实现一般使用的接口。当然,Action接口不是必的。任何使用execute方法的POJO象可以被当作Struts 2Action象来使用。

线程模型

Struts1.x Action,因只有一个例来控制所有的求。策略造成了一定的限制,并且给开发带来了外的烦恼Action源必线安全或者同的。

Struts2 Action为每一个求都例化象,所以没有线安全的问题。(践中,servlet容器给每一个多丟弃的象,并且不会致性能和垃圾回收问题)。

Servlet

Struts1.xActionservlet API,当Action,以HttpServletRequestHttpServletResponse参数传给execute方法。

Struts2Action和容器无Servlet上下文被表现为简单Maps,允Action被独立的测试Struts2Action可以访问最初的(如果需要的)。但是,尽可能避免或排除其他元素直接访问HttpServletRequestHttpServletResponse

测试Struts1.x的主要问题execute方法暴露了Servlet API使得测试要依于容器)。第三方的展,如Struts TestCase,提供了一套Struts1的模拟对象(来测试)。

Struts2Action可以通初始化、置属性、用方法来测试。依注入的支持也是测试变得更简单

获输

Struts1.x使用ActionForm象来捕获输入。象Action,所有的ActionForm须扩展基。因其他的JavaBean不能作ActionForm使用,开发建多余的来捕获输入。DynaBeans可以被用来作替代ActionForm建。但是,开发者可能是在重新描述()存在的JavaBean(仍然会致有冗余的javabean)。

Struts2直接使用Action属性作为输入属性,消除了第二个象的需求。入属性可能是有自己()属性的rich型。Action属性能web面上的taglibs访问Struts2也支持ActionForm模式。rich型,包括业务对象,能用作/象。这种ModelDriven 特性化了taglibPOJO象的引用。

表达式

Struts1.x整合JSTL,所以它使用JSTL的表达式言。表达式言有基本的象移,但是集合和索引属性的支持很弱。

Struts2使用JSTL,但是也支持一个更大和灵活的表达式言--"Object Graph Notation Language" (OGNL)

值绑定到

Struts1.x使用JSP机制来象到面上下文。

Struts2使用“ValueStack”,使taglib够访问值而不需要把你的面(view)和定起来。ValueStack策略允一系列名称相同但型不同的属性重用面(view)。

转换

Struts1.xActionForm属性常都是StringStruts 1.x使用Commons-Beanutils转换转换每一个,而不是为每一个例配置。

Struts2使用OGNL转换。提供基本和常用象的转换

验证

Struts1.x支持在ActionFormvalidate方法中手,或者通Commons Validator展来校。同一个可以有不同的校内容,但不能校象。

Struts2支持通validate方法和XWork框架来行校XWork框架使用属性类类型定的校和内容校,来支持chain子属性

Action行控制

Struts1.x支持一个模独的Request Processors(生命周期),但是模中的所有Action共享相同的生命周期。

Struts2支持通过拦截器堆Interceptor Stacks为每一个Action建不同的生命周期。堆根据需要和不同的Action一起使用。

 

 

六、       结论

前面已经简要介Struts2的起源,并详细对比了Struts2Struts1.x的差异,应该对Struts2的基有所了解了——包括高的框架概念和基求流程,并理解Struts1.xStruts2两者之Action方面的差Struts2对拦截器与IoC的支持,而在Struts1.x中,些特性是很想象的。

应该明白:Struts2WebWork的升,而不是Struts 1.x的升Struts 2提供了与Struts1.x的兼容,但已不是Struts1.x的升于已有Struts1.x开发经验开发者而言,Struts1.x开发经验对Struts2并没有太大的帮助;相反,于已WebWork开发经验开发者而言,WebWork开发经验对Struts2开发将有很好的借

 

<script></script> 

分享到:
评论

相关推荐

    struts1.x 最简洁国际化 源代码

    以上就是关于Struts1.x国际化的基本概念和实现方式。通过理解这些知识点,开发者能够构建出对全球用户友好的应用程序。在实际项目中,应根据具体需求调整和扩展这些基础策略,以满足更复杂的需求。

    JSTL的各种标签文件和struts的标签文件,带strtus.jar包

    JSTL的各种标签文件和struts的标签文件,带strtus.jar包c-1_0.tld,c-1_0-rt.tld,c.tld,fmt-1_0.tld,fmt-1_0-rt.tld,fmt.tld,fn.tld,permittedTaglibs.tldscriptfree.tld,sql-1_0.tld,sql-1_0-rt.tld,sql....

    Strtus2学习笔记

    - **Struts2简介**:Struts2是一个基于MVC模式的开源Web应用框架,它继承了Struts1的一些特性,并在此基础上进行了很多改进,使得开发更加便捷高效。 - **学习目的**:通过学习Struts2框架,掌握其基本原理和使用...

    strtus2快速

    Struts2是一个基于MVC设计模式的Java web框架,它在功能和配置上与Struts1.x有着显著的区别。Struts2实际上是建立在Webwork框架之上,采用了Webwork的核心技术,如XWork库。尽管如此,Struts2仍然保留了动作驱动的...

    完整的struts2.0中文教程

    Struts2是Apache软件基金会的一个开源项目,它是Struts1.x的升级版,引入了许多改进和新特性。Struts2的核心目标是提供一个结构化的、可扩展的和灵活的框架,以便开发者可以更专注于业务逻辑的实现,而不是底层的...

    struts2.3.4-lib包

    6. **Servlet API**: Struts2与Servlet容器(如Tomcat、Jetty)紧密集成,因此需要Servlet API的相关库,如`javax.servlet-api-3.x.jar`和`jsp-api-2.x.jar`(具体版本根据你的服务器环境而定)。 7. **其他辅助库*...

    Android上次多个文件到Struts2

    确保在类路径下有`struts2-core-x.x.x.jar`,并导入相关的依赖。 2. **编写Action**:创建一个Action类,处理文件上传请求,并保存文件。 ```java public class UploadAction extends ActionSupport { private ...

    POI + Struts2 实现Excel导出工具包

    1. **引入依赖**:首先,你需要在项目的pom.xml文件中添加Apache POI和Struts2的依赖。对于POI,通常使用最新稳定版,例如POI 4.x系列,对于Struts2,可能需要根据你的项目确定合适的版本。 2. **创建Excel模板**:...

    Struts的验证框架Validate使用[2]

    不过,其工作原理和配置方式与Struts 1.x有所不同。 总的来说,Struts的验证框架Validate是提高应用质量的重要工具,通过合理利用,可以确保数据的有效性,减少潜在的错误,从而提升用户体验。理解并熟练掌握其使用...

    struts知识点总结

    详细的讲解了struts1.X部分,由浅入深的分析了strtus的内容,对一些难懂的部分,外加了部分代码做参考讲解,看完后能对struts有一个更新的认识

    【原创】Strtus实现验证码

    当用户提交表单时,Struts2框架会自动将输入的验证码与session中的验证码进行比较,如果匹配则通过验证,否则提示错误。 总结,通过Struts2实现验证码功能,主要涉及到Action配置、验证码生成类的设计以及前端展示...

    ajax get请求中文参数乱码解决

    在进行Web开发时,我们经常会遇到Ajax GET请求发送中文参数时出现乱码的问题...在提供的压缩包文件`strtus-ajax-by-get-zh-garbled`中,可能包含了关于Struts框架下解决Ajax GET请求中文乱码的示例代码,可以参考学习。

Global site tag (gtag.js) - Google Analytics