`

struts1.2和struts2区别

 
阅读更多

学习笔记,转自:http://tianhailong.com/struts1-2%E5%92%8Cstruts2%E5%8C%BA%E5%88%AB.html

 

ts1.2和struts2区别
struts1.2和struts2最大的不同是,struts2集成了Webwork。
区别相当大,2.0改进很多,整合webwork,去掉了一些不常用得标签,
struts2.x是在webwork2的基础上构建的,集成了大量的东西,像什么拦截器,校验框架等,相当复杂,struts1.x相对来说就显得小得多了,东西就那么几个。
特性
Struts 1。2
Struts 2 .0

Action类
Struts 1要求Action类要扩展自一个抽象基类。Struts 1的一个共有的问题是面向抽象类编程而不是面向接口编程。
Struts 2的Action类实现了一个Action接口,连同其他接口一起来实现可选择和自定义的服务。Struts 2提供一个名叫ActionSupport的基类来实现一般使用的接口。虽然,Action接口不是必须的。任何使用execute方法的POJO对象可 以被当作Struts 2的Action对象来使用。

线程模型
Struts 1 Action类是单例类,因为只有一个示例来控制所有的请求。单例类策略造成了一定的限制幷且给开发带来了额外的烦恼。Action资源必须是线程安全或者同步的。
Struts 2 Action对象为每一个请求都实例化对象,所以没有线程安全的问题。(实践中,servlet容器产生许多丢弃的对象对于每一个请求,多于一个的对象并不影响垃圾收集)

Servlet 依赖
Struts 1的Action类依赖于servlet API以为HttpServletRequest和HttpServletResponse作为参数传给execute方法当Action被调用时。
Struts 2的Action不和容器有关。Servlet上下文被表现为简单的Maps,允许Action被独立的测试。Struts 2的Action可以访问最初的请求和相应,如果需要的话。然而,其他的架构元素减少或者排除直接访问HttpServletRequest或者 HttpServletResponse的需要。

易测性
测试Struts 1的主要障碍是execute方法暴露了Servlet API。第三方的扩展,Struts测试用例,提供Struts 1的集合对象。
Struts 2的Action可以通过实例化Action来测试,设置属性,然后调用方法。依赖注入的支持也是测试变得更简单。

接受输入
Struts 1使用ActionForm对象来捕获输入。象Action一样,所有的ActionForm必须扩展基类。因为其他的JavaBean不能作为 ActionForm使用,开发者经常创建多余的类来捕获输入。DynaBeans可以被用来作为替代ActionForm的类来创建。但是开发者可以重 新描述已经存在的JavaBean。
Struts 2 Action属性作为输入属性,排除第二个输入对象的需要。输入属性可能有丰富的对象类型这些类型有他们自己的属性。Action的属性可以通过标签库来 访问。Struts 2也支持ActionForm形式。丰富的对象类型,包含业务或者域对象,可以被当作输入或者输出对象来使用。糢型驱动特性简化标签对POJO输入对象的 引用。

表达式语言
Struts 1整和JSTL,所以它使用JSTL的表达式语言。表达式语言有基本的图形对象移动,但是相对很弱的集合和被索引的属性支持。
Struts 2使用JSTL,但是框架也支持更强大和更灵活的表达式,叫做“对象图形符号语言”(OGNL)。

将值绑定要视图上
Struts 1使用标準JSP机製来绑定对象到页面上下文。
Struts 2使用“ValueStack”技术为了标签库可以不用链接你的视图到对象的表现类型来访问值。ValueStack策略允许重用视图。

类型转换
Struts 1的ActionForm属性经常都是String的。Struts 1使用Commons-Beanutils来类型转换。转换每一个类,幷不是为每一个实例配置。
Struts 2使用OGNL来类型转换。框架包含转换器来为基本的和共同的对象类型和原始类型。

验证
Struts 1支持手动验证凭借ActionForm的validate方法,或者通过扩展的公用验证器。类可以有不同的验证上下文来未相同的类,但是不能不能包括验证子对象。
Struts 2支持手动验证凭藉validate方法和XWork验证框架。Xwork验证框架支持一连串的验证子属性使用的验证为了属性类的类型和严正上下文而定义。

Action执行的控制
Struts 1支持独立的请求处理器对于每一个模型,但是所有在模型中的Action必须共享同一个生命周期。
Struts 2支持在每一个Action基础上凭借拦截栈创建不同的生命周期。自定义栈可以被创建幷且使用不同的所需 的Action。

分享到:
评论

相关推荐

    struts1.2驱动包

    Struts1.2因其稳定性和广泛的功能集而在过去备受推崇,尤其在教育领域,许多教授和讲师推荐使用它作为教学和项目开发的基础。 Struts框架的核心特性包括: 1. **ActionServlet**:这是Struts框架的入口点,负责...

    struts1.2资源整合

    Struts1.2是Apache软件基金会的开源框架,主要用于构建基于Java的企业级Web应用程序。...通过对这些资源的有效整合和利用,开发者可以更好地理解和运用Struts1.2框架,从而构建出高效、稳定的Web应用。

    struts1.2 + spring2.5 + hibernate3.2框架demo

    Struts1.2、Spring2.5和Hibernate3.2是经典的Java企业级开发框架组合,它们各自在应用程序的不同层次上发挥着重要作用。Struts1.2是一个MVC(Model-View-Controller)框架,主要负责处理用户界面与业务逻辑之间的...

    struts、struts1.2 学习教程

    本教程将深入探讨Struts1.2的核心概念、功能以及与Struts2的区别。 一、Struts框架基础 1. **MVC模式**:Struts遵循MVC设计模式,分离了业务逻辑、数据模型和用户界面。模型负责处理业务逻辑,视图负责展示数据,...

    struts1.2下载包

    2. `docs`目录:文档资料,包括API参考、用户指南等,帮助开发者理解Struts1.2的工作原理和使用方法。 3. `examples`目录:包含了一些示例应用,展示了Struts1.2的各种功能和最佳实践,是学习和调试的好材料。 4. `...

    Struts1.2中文学习手册

    Struts1.2中文学习手册是一本面向初学者的指南,它涵盖了Struts1.2的基础知识、配置、控制器、模型、视图以及动作和业务逻辑的整合。 首先,手册会介绍Struts1.2的核心概念,包括Action类、Form Bean和Tiles布局。...

    STRUTS1.2中文文档

    2. **Action类**:Action类是Struts1.2的核心组件,它实现了Controller的功能。每个Action类对应一个用户请求,处理完成后返回一个ActionForward对象,指示下一个视图或动作。 3. **配置文件**:Struts1.2的配置...

    struts 1.2 类库和源码

    这个压缩包包含了Struts 1.2版本的类库和源码,使得开发者能够方便地研究和学习这个经典框架的工作原理。 Struts 1.2 类库主要包括以下组件: 1. **核心库(lib)**:这是框架运行的基础,包含如struts-core、...

    struts1.2 jar包

    然而,需要注意的是,尽管Struts1.2在当时非常流行,但由于其存在一些安全漏洞和已不再维护,目前的Java Web开发更多转向了Struts2或者其他更现代的框架,如Spring MVC和Play Framework。对于新项目,建议使用更安全...

    struts1.2标签实例

    Struts1.2标签是Java Web开发中Struts框架的一部分,它提供了一种在JSP页面中更加便捷、可维护的方式来处理业务逻辑和控制流程。Struts1.2标签库大大简化了视图层的开发,使开发者可以避免过多地在JSP中编写Java脚本...

    struts 1.2驱动包

    Struts 1.2虽然在现代Web开发中已经被Struts 2或者Spring MVC等更新的框架取代,但它的设计理念和模式对于理解MVC架构和Web应用的开发仍然具有重要的学习价值。在学习和使用Struts 1.2时,开发者应关注其核心组件的...

    struts1.2 from表单提交包含list的对象

    在Struts1.2中处理表单提交,特别是当表单数据包含列表对象时,需要理解一些核心概念和技术。这篇博客文章可能详细探讨了如何在Struts1.2中处理这类情况。 首先,让我们来了解Struts1.2中的表单提交流程。当用户在...

    Struts 1.2 API详细讲解.rar

    9. **Validator**:Struts 1.2包含了一个验证框架,用于在客户端和服务器端验证用户输入的数据,确保其合法性和完整性。 10. **Tiles和Struts标签库**:Struts提供了丰富的JSP标签库,如logic、bean、html、tiles等...

    struts1.2.jar包

    2. **Action类**:在Struts1.2中,Action类是核心组件,它接收来自用户的请求,处理业务逻辑,并决定跳转到哪个JSP页面进行响应。Action类继承自org.apache.struts.action.Action,并需要覆盖execute()方法。 3. **...

    struts1.2+hibernate开发的小项目

    Struts1.2和Hibernate是两个非常经典的Java Web开发框架,它们在早期的Web应用程序开发中占据了重要地位。Struts1.2是一个基于MVC(Model-View-Controller)模式的框架,主要用于处理用户请求和控制业务逻辑,而...

    struts1.2+spring2.0 登录 例子

    Struts1.2和Spring2.0是两个经典的Java企业级开发框架,它们在Web应用程序开发中被广泛使用。这个“struts1.2+spring2.0 登录例子”是一个整合了这两个框架的示例项目,旨在帮助开发者理解如何在实际应用中集成和...

    struts1.2 简单文件上传例子

    Struts1.2是一个经典的Java Web框架,由Apache软件基金会开发。它提供了MVC(Model-View-Controller)设计模式的实现,使得开发者能够更方便地构建可维护、可扩展的Web应用程序。在这个"struts1.2简单文件上传例子...

    基于Struts1.2的上传下载Demo

    本项目"基于Struts1.2的上传下载Demo"是针对该框架的一个实践示例,旨在帮助开发者理解和解决在Struts1.2环境中进行文件上传与下载的问题。 首先,让我们深入了解一下Struts1.2中的文件上传功能。在Struts1.2中,...

Global site tag (gtag.js) - Google Analytics