`
jianggege
  • 浏览: 97964 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

struts1和struts2区别(java程序猿必看)

阅读更多

struts1和struts2区别(java程序猿必看)

一、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。

 

分享到:
评论

相关推荐

    Java程序猿技术路线图

    Java 程序猿技术路线图 在技术方面,无论我们怎么学习,总感觉需要提升自己不知道自己处于什么水平了。但是,如果有清晰的指示图供参考还是非常不错的,这样我们清楚的知道我们大概处于那个阶段和水平。 Java ...

    张龙圣思园struts2学习笔记word

    Struts2是Apache软件基金会下的一个开源框架,主要用于构建企业级的Java web应用程序。张龙圣思园的Struts2学习笔记,无疑为Java开发者提供了一份宝贵的参考资料,它可能涵盖了Struts2的基础概念、核心组件、配置...

    struts2框架jar包

    Struts2框架是Java EE(Java 2 Platform, Enterprise Edition)平台上的一款开源MVC(Model-View-Controller)框架,用于构建动态Web应用程序。它的核心是Action类,它负责处理用户的请求并调用业务逻辑。Struts2...

    struts2的jar包.zip

    Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它在Web开发领域中被广泛使用。Struts2的核心是Action类,它负责处理用户请求并调用业务逻辑。该框架提供了强大的拦截器...

    Struts2开发文档.chm

    分享一个Struts2开发文档,获取网上资源的同事也把获取到比较实用的文档分享给java程序猿。

    Struts框架结构的Java Web开发技术基础与实践教程》上

    在Java Web应用开发中,Struts框架帮助开发者组织代码,实现业务逻辑与用户界面的分离,提高了开发效率和应用的可维护性。 **1. MVC设计模式** MVC设计模式是软件工程中的一种经典架构,它将应用分为三个主要部分...

    Struts 2.3.4.zip

    8. **主题和皮肤**:Struts 2支持多种主题和皮肤,可以方便地改变应用程序的外观和感觉,提供更好的用户体验。 9. **异常处理**:Struts 2提供了一套完善的异常处理机制,可以通过配置文件定义全局和Action级别的...

    struts2 jar包

    Struts2是一个基于MVC(Model-View-Controller)设计模式的Java web应用程序框架,它极大地简化了在Java EE平台上构建动态web应用的过程。在Java社区中,Struts2因其强大的功能、高度可扩展性和丰富的插件库而备受...

    一份简约高级的Java后端程序猿简历

    - **框架熟练使用**:包括SpringBoot、Spring、Struts2、Hibernate、iBatis、MyBatis和SpringMVC,这些是Java Web开发中常见的框架。 - **分布式框架**:熟悉Dubbo+zookeeper,用于构建分布式服务,以及Shiro安全...

    基于Struts2框架的名片管理系统

    【基于Struts2框架的名片管理系统】是一种使用JavaEE技术栈构建的企业级应用程序,它旨在高效管理和存储名片信息。Struts2是ActionServlet的一种增强版本,是Java Web开发中的一个流行MVC(Model-View-Controller)...

    spring3.0+struts2.2+hibernate3.3集成.rar

    Struts 2提供了强大的拦截器(Interceptor)机制,使得开发者可以方便地扩展和定制应用程序的行为。Struts 2.2版本可能包含了性能优化和新特性的增强。 **Hibernate 3.3** 是一个对象关系映射(ORM)框架,允许...

    struts1.2资源整合

    Struts1.2是Apache软件基金会的开源框架,主要用于构建基于Java的企业级Web应用程序。它遵循Model-View-Controller(MVC)设计模式,提供了一种结构化的方式来组织应用程序,从而提高了开发效率和代码可维护性。这次...

    重构mvc实现struts框架

    - **test_servlet4、test_servlet3、test_servlet1、test_servlet2**:这些可能是演示MVC和Struts实现过程中各个阶段的Servlet程序,每个可能代表重构的一个步骤。 - **使用说明.txt**:这份文件可能包含了解和运行...

    Struts

    Struts通过提供一种组织应用程序结构的方式,使开发者可以更有效地处理业务逻辑、控制流程和视图的分离。 **一、Struts架构** Struts框架的核心组件包括ActionServlet、ActionForm、Action、ActionMapping和Tiles等...

    struts2教程

    Struts2是一个强大的Java web应用程序框架,用于构建和维护可扩展、结构清晰的MVC(模型-视图-控制器)架构应用。它是由Apache软件基金会维护,并且是Apache Struts项目的一部分,旨在解决其前身Struts 1在设计和...

    struts2 中action的使用

    Struts2是一个强大的MVC(Model-View-Controller)框架,广泛用于构建Java Web应用程序。在Struts2中,Action类是核心组件,它扮演着控制器的角色,负责处理用户请求并驱动模型。以下是对"struts2中action的使用"的...

    Struts2+Spring4+Hibernate4框架整合小项目,包含ssh源码及SQL文件(MySQL)

    Struts2、Spring4和Hibernate4是Java Web开发中经典的三大框架,它们分别负责MVC模式中的Action层、业务逻辑层和服务数据访问层。这个整合项目提供了SSH框架的基础应用实例,适合初学者学习和理解这三大框架如何协同...

    struts2的5个基本包

    Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java Web开发中扮演着重要的角色。这个框架提供了一种结构化的方式来组织应用程序,从而简化开发过程并提高代码的可维护性。标题提到的"5个基本包"是...

    struts1拦截器实现所需saif.jar包

    Struts1是一个经典的Java Web框架,它为开发者提供了一种结构化的MVC(Model-View-Controller)模型,便于构建可维护性和可扩展性良好的Web应用程序。在Struts1中,拦截器(Interceptor)扮演着重要的角色,它们是...

    struts-2.5.13-all.zip

    Struts2是一个非常著名的Java Web开发框架,由Apache软件基金会维护。它的主要目的是提供一个用于构建企业级Web应用程序的强大的MVC(Model-View-Controller)架构。在本压缩包"struts-2.5.13-all.zip"中,包含了...

Global site tag (gtag.js) - Google Analytics