`

struts1.2和struts2.0有什么区别?都有什么优缺点?

阅读更多

/**Action类
Struts1要求Action类继承一个抽象类,Struts1使用抽象类编程而不是接口
Struts2可以实现Action接口也可以不实现,Struts2提供一个ActionSuport基类去实现常用接口。Action接口不是必须的,任何有execute的标识的

POJO都有可能成为struts2的Action的对象



/**线程模式
Struts1的Action是单例模式并且是线程安全的,仅有Action一个实例来处理所有请求。单策略模式限制了Struts1 Action能做的事。比且在开发时要

注意Action资源必须是线程安全比且是同步的。
Struts2的Action对象为每个请求产生一个实例,因此没有线程安全问题。



/**Servlet依赖
Struts1 Action依赖与Servlet API,因为当一个Action被调用时HttpServletRequest和HttpServletResponse被传递给execute方法。
Struts2 Action不依赖与容器,允许Action脱离容器被单独测试。如果需要,struts2依然可以访问初始的request和response。但是,其他的元素减

少或者消除了直接访问HttpServletRequest和HttpServletResponse的必要性。



/**可测性:
测试Struts1 Action的一个主要问题是execute方法暴漏了Servlet API(这使得测试要依赖于容器)。一个第三方扩展--Struts TestCase--提供了一套Struts1的模拟对象(来进行测试)
struts2 Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”支持也使测试更容易。



/**捕获输入:
struts1使用ActionForm对象捕获输入。所有ActionForm必须继承一个基类。因为其他JavaBean不能用作ActionForm,开发者经常创建多余的基类不或输入。动态Bean(DynaBeans)可以作为创建传统ActionForm的选择,但是,开发者可能是在重新描述(创建)已经存在的JavaBean(仍然会导致有沉余的JavaBean)。

Struts2直接使用Acrtion属性作为输入属性,消除了对第二个输入对象的请求。输入属性可能是有自己(子)属性的Rich对象类型。Action属性能过通过web页面上的Taglibs访问。struts2也支持ActionForm模式。Richard对象类型,包括业务对象,能够用作输入/输出对象。这种ModelDriven特性简化了Taglib对POJO输入对象的引用。


/**表达式语言
Struts1整合了JSTL,因此使用JSTL EL。这种EL有基本对象图遍历,但是对集合和索引属性的支持很脆弱。
Struts2可以使用JSTL,但是也支持一个更强大和灵活的表达式语言--“object graph Notation Language”(OGNL)



/**绑定值到页面(view)
Struts1使用标准JSP机制吧对象绑定到页面中来访问。
struts2使用ValueStack技术,使taglib能够访问值而不需要把你的页面(view)和对象绑定起来。ValueStack策略允许通过一系列名称相同但类型不同的属性重同页面(view)



/**类型转换
Struts1 ActionForm属性通常都是String类型。struts1使用Commons-Beanutils进行类型转换。每个类一个转换器,对每一个实例来说是不可配置的
struts2 使用OGNL进行类型转换,提供基本和常用对象的转换器。



/**效验
Struts1支持在ActionForm的validate方法中手动效验,或者通过Commons Validator的扩展来效验。同一个类可以有不同的效验内容,但不能效验子对象。
Struts2支持通过validate方法和XWork效验框架进行效验。XWork效验框架使用为属性类类型定义的效验和内容效验,来支持Chain效验子属性。



/**Action执行的控制
Struts1支持每一个模块有单独的Request Processors(生命周期),但是模块中的所有Action必须共享相同的生命周期。
struts2支持通过拦截器堆栈(Interceptor Stacks)为每一个Action创建不能的生命周期。堆栈能够根据需要和不同的Action一起使用。

分享到:
评论

相关推荐

    Struts1.2+Spring2.0+Hibernate3.1 Struts1.2+Spring2.0+Hibernate3.1

    Struts1.2+Spring2.0+Hibernate3.1Struts1.2+Spring2.0+Hibernate3.1Struts1.2+Spring2.0+Hibernate3.1Struts1.2+Spring2.0+Hibernate3.1

    struts1.2+spring2.0 登录 例子

    SS_test文件夹中的内容可能包含了相关的源代码、配置文件、数据库脚本等,这些都可用于了解和学习如何在实际项目中集成Struts1.2和Spring2.0,并实现登录功能。通过分析这些文件,开发者可以更深入地理解两个框架的...

    struts1.2+spring2.0+hibernate3.0所需要的包

    struts1.2+spring2.0+hibernate3.0所需要的包 struts1.2+spring2.0+hibernate3.0所需要的包 struts1.2+spring2.0+hibernate3.0所需要的包 struts1.2+spring2.0+hibernate3.0所需要的包

    struts1.2驱动包

    总的来说,Struts1.2驱动包是开发基于Struts1.2的Java Web应用的基础,它的稳定性和丰富的功能使得它在很多场景下依然有其价值。对于初学者和经验丰富的开发者来说,理解和掌握Struts1.2可以帮助构建高效、可维护的...

    Struts1.2+Spring1.2+Hibernate2.0搭建详解

    Struts1.2、Spring1.2和Hibernate2.0是经典...然而,需要注意的是,Struts1.2、Spring1.2和Hibernate2.0都已较为老旧,现在更推荐使用更新的版本,如Struts2、Spring Boot和Hibernate5,以获得更好的性能和最新的特性。

    struts1.2+spring2.0+hibernate3.1集成开发详解

    本篇文章将通过图文并茂的方式详细介绍如何在MyEclipse环境下,利用Struts 1.2、Spring 2.0 和 Hibernate 3.1 来构建一个查询Oracle数据库中雇员信息的应用,并探讨Hibernate中延迟加载机制的使用方法。 #### 2. 软...

    struts1.2资源整合

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

    struts1.2 2.0两个版本API 开发手册 JAR包

    本文将详细介绍Struts1.2和Struts2.0两个版本的主要API和开发中的关键知识点。 **Struts1.2 API** 在Struts1.2版本中,主要的API包括Action、Form Bean、ActionServlet、ActionMapping、ActionForward等核心组件。...

    struts1.2+spring2.0整合

    Struts1.2和Spring2.0的整合是Java企业级开发中常见的一种技术组合,它们各自在Web应用中承担着不同的职责。Struts1.2作为MVC框架,负责控制应用程序的流程,而Spring2.0则是一个全面的轻量级应用框架,提供了依赖...

    Ibatis Struts1.2 Spring 2.0 整合终极版

    Ibatis Struts1.2 Spring 2.0 整合终极版,Ibatis Struts1.2 Spring 2.0 整合终极版,Ibatis Struts1.2 Spring 2.0 整合终极版

    struts、struts1.2 学习教程

    Struts是Java Web开发中的一个MVC...总之,Struts1.2作为经典的Java Web框架,其设计理念和实现机制对理解现代Web开发仍有很大帮助。通过深入学习和实践,你可以提升自己的Java Web开发技能,更好地应对各种项目需求。

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

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

    struts对比1.2vs 2.0.rar

    对比Struts 1.2和2.0,我们可以看到以下几个显著的区别: 1. **配置方式**:Struts 1.2主要依赖XML配置文件,而Struts 2.0除了XML外,还支持注解和基于Java的配置,更加灵活。 2. **Action设计**:Struts 1.2的...

    Struts1.2中文学习手册

    Struts1.2是Apache软件基金会的Jakarta项目下的一个开源框架,主要用于构建基于Java的Web应用程序。这个框架提供了一种组织...该手册是学习Struts1.2的宝贵资源,无论你是Java新手还是有经验的开发者,都可以从中受益。

    struts1.2+spring2.0+hibernate3.1jar包

    Struts1.2、Spring2.0和Hibernate3.1是经典的Java企业级开发框架组合,它们在2000年代中期至后期广泛应用于构建基于Java的Web应用程序。这个组合通常被称为“SSH”三位一体,各自负责不同的职责: 1. **Struts1.2**...

    struts1.2下载包

    1. `lib`目录:包含各种依赖的JAR文件,如Struts的核心库、Servlet API、JSP API等,这些都是构建基于Struts1.2的应用程序所必需的。 2. `docs`目录:文档资料,包括API参考、用户指南等,帮助开发者理解Struts1.2的...

    Struts1.2+Spring2.0+Ibatis2.0整合小项目

    Struts1.2、Spring2.0和Ibatis2.0是Java开发中经典的三大开源框架,它们在企业级应用开发中广泛使用。这个小项目是将这三个框架整合在一起,以实现一个简单但完整的功能。下面我们将深入探讨这些知识点。 **Struts...

    STRUTS1.2中文文档

    Struts1.2是Apache软件基金会的Jakarta项目下的一个开源框架,主要用于构建基于Java的Web应用程序。这个框架的核心是Model-View-Controller(MVC)设计模式,它提供了一种结构化的、可扩展的方式来组织和管理应用的...

    struts1.2+spring2.0+hibernate3.2整合源码

    Struts1.2、Spring2.0和Hibernate3.2是经典的Java企业级开发框架组合,被称为SSH框架。这个整合源码提供了这三个组件的集成示例,确保了兼容性和无jar包冲突,使得开发者可以快速地搭建和运行一个完整的Java Web项目...

Global site tag (gtag.js) - Google Analytics