`
heimeiyingwang
  • 浏览: 94844 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts2 ---1 学习资料

阅读更多

这一篇文章主要就是介绍一下Struts1 与 Struts2 一个大概比较,分别从以下几个方面进行比较:

Action类:
  Struts1要求Action类继承一个抽象类。
  Struts1的一个普遍问题是使用抽象类编程而不是接口。

  Struts2Action类可以实现一个Action接口
,也可以实现其他接口,使可选和定制的服务成为可能。
Struts2提供了一个ActionSupport基类去实现常用的接口。
Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。

线程模式:
  Struts1Action是单例模式并且是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1Action能做的事,并且要在开发时特别小心。Action资源必须是线程安全你的货同步的。
  Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。
  好处:不用担心线程安全问题
  不好的地方:创建的太频繁

Servlet依赖:
  Struts1 Action依赖于ServletApi,因为当一个Action被调用时,HttpServletRequest和HttpServletResponse被传递给execute方法。
   Struts2 Action不依赖于容器,允许Action脱离容器单独被测试。如果需要,Struts2 Action仍然可以访问出事的request和response。但是,其他的元素减少或者消除了最直接访问HttpServletRequest和HttpServletResponse的必要性。

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

捕获输入:
   Struts1使用ActionForm对象捕获输入。所有的ActionForm必须继承一个基类。因为其他JavaBean不能用作ActionForm,开发者经常创建多余的类捕获输入。动态Bean(DynaBeans)可以作为创建传统ActionForm的选择,但是,开发者可能是在重新描述(创建)已经存在的JavaBean(仍然会导致有冗余的javaBean)。
  Struts2直接使用Action属性作为输入属性,消除了对第二个输入对象的需求。Action属性能够通过web页面上的taglibs访问。Struts2也支持ActionForm模式。
  

表达式语言:
   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与Struts2的一些异同点,仅供参考。如有不同看法,可以互相探讨,也希望大家能批评指正。

1
0
分享到:
评论

相关推荐

    struts2-portlet学习手册

    本篇将基于“Struts2-Portlet学习手册”这一资料深入探讨如何使用Struts2进行Portlet开发,并重点介绍Struts2-Portlet的核心概念、架构设计以及实践案例。 #### 二、Struts2-Portlet概述 **Struts2-Portlet**是...

    struts2-2.2.3-all.zip

    根据提供的文件信息“struts2-2.2.3-all.zip”,我们可以推断出这份资料包含了Struts2框架的相关资源,包括样例代码、API文档、源码以及JAR包等。下面将针对这些资源进行详细的解读与分析。 ### Struts2简介 ...

    struts2-docs

    Struts2是一个强大的Java web应用程序框架,用于构建和维护可扩展、高效且易于管理的Web应用。...对于初学者和经验丰富的开发者来说,"struts2-docs"都是理解和应用Struts2框架的不可或缺的参考资料。

    struts-2.0.11-all.zip

    Struts2.0.11-all.zip 是一个包含Apache...总的来说,Struts2.0.11-all.zip压缩包是学习和使用Struts2框架的重要资源,涵盖了框架的核心组件、扩展功能以及示例代码,对于Java Web开发者来说,这是一个宝贵的参考资料。

    struts-------资料.rar

    10. **插件系统**:Struts 2拥有丰富的插件库,如Struts2-dojo-plugin支持Dojo库,Struts2-convention-plugin实现基于命名约定的自动配置等。 虽然现在Spring MVC和其他现代框架在Java Web开发中占据主导地位,但...

    struts2-----之一

    在本学习资料中,初学者将能深入理解Struts2的核心概念和工作原理,从而轻松入门。 Struts2框架的核心功能包括: 1. **请求分发**:Struts2通过Action类来处理HTTP请求。每个Action类对应一个业务逻辑,接收请求后...

    struts2-api

    这个"struts2-api"压缩包包含了Struts2框架的官方API文档,是开发者学习和理解Struts2核心组件及使用方法的重要资源。API文档通常以HTML形式提供,方便用户在线查看和搜索。 在Struts2框架中,有以下几个关键知识点...

    struts-2.3.36-all.zip

    1. **lib** 文件夹:这是存放所有Struts2框架依赖的JAR文件的地方,包括核心库、插件和其他依赖的第三方库。这些JAR文件对于理解和使用Struts2框架至关重要,它们提供了如Action、Result、Interceptor等关键功能的...

    struts-2.3.16.3

    标签"struts2"直接指向了我们讨论的核心,即Struts 2框架。Struts 2以其灵活性和可扩展性著称,它允许开发者通过拦截器(Interceptor)机制来定制请求处理流程,同时支持多种视图技术,如JSP、FreeMarker、 Velocity...

    struts2-blank.zip

    通过深入学习和使用这个Struts2的压缩包,开发者不仅可以掌握Struts2的基本用法,还能了解到如何构建、测试和部署一个完整的Java Web应用。同时,由于Struts2与Spring、Hibernate等框架的兼容性,熟悉这个框架有助于...

    struts2-spring3-hinernate4

    5. `1struts.txt`:这个文件可能是关于Struts2的基础知识,介绍其核心概念,如Action、Result、Interceptor,以及Struts2配置文件的编写等。 综上所述,SSH集成是Java Web开发中的重要技术栈,通过合理的配置和编程...

    struts-1.2.9-all

    总的来说,“struts-1.2.9-all”是一个全面了解和学习Struts 1.x的宝贵资料,无论是初学者还是经验丰富的开发者,都可以从中受益匪浅。通过实际操作和研究,我们可以将理论知识转化为实践技能,进一步提升我们的编程...

    struts2 学习资料

    这个"struts2 学习资料"包含了关于Struts2的基础到进阶的学习资源,可能是教程文档、示例代码或者是相关的学习笔记。 Struts2框架的核心特性包括: 1. **Action类**:在Struts2中,Action类是业务逻辑的载体,它...

    struts-2.3.16.1-docs.zip

    1. **快速入门**:这通常是一份简明教程,帮助开发者快速了解Struts2的基本概念和配置,如Action、Result、Interceptor等,并指导如何搭建第一个运行的Struts2应用。 2. **使用文档**:这部分详细介绍了如何在实际...

    struts2-tags-API.rar_struts2 api_struts2 tag api_struts2 tags ch

    "struts2-tags-API.rar"包含的是Struts2标签库的详细API文档,对于开发者来说是不可或缺的参考资料。 `struts2-api`标签表示这个资源与Struts2框架的核心API相关,可能涵盖了Action、Result、Interceptor等关键组件...

    starting-struts2-chinese

    这个“starting-struts2-chinese”压缩包包含了关于Struts2的中文学习资料,对于初学者或希望深入理解Struts2的开发者来说,是非常有价值的资源。 首先,让我们深入了解Struts2框架的核心特性: 1. **Action类**:...

    struts2.x所需要的支持类库,内附struts2的学习资料

    内附的Struts2学习资料可能包括教程文档、示例代码、API参考手册等,这些都能帮助初学者快速理解Struts2的架构和用法,包括Action的创建、拦截器的编写、结果类型配置、JSP页面的使用等。 5. **开发环境支持** ...

    struts2--之二

    本资料包"struts2--之二"是针对Struts2框架的深入学习资源,尤其适合初学者快速掌握该框架的基本用法和核心概念。 Struts2的核心功能包括: 1. **动作映射(Action Mapping)**:Struts2允许开发者定义特定的HTTP...

    Struts2.2-doc.zip

    总之,Struts2.2-doc.zip 提供了宝贵的参考资料,对于正在或准备使用Struts2框架的开发者来说,是不可或缺的学习工具。通过深入研究这两个文档,开发者可以更好地掌握Struts2的核心机制,从而构建出高效、稳定的Java...

    java-ee-struts2-study-master.zip

    "java-ee-struts2-study-master.zip"这个压缩包很可能包含了一个关于Java EE使用Struts2框架的实践项目源码,以及相关的学习资源和教程。 首先,让我们深入了解一下Struts2框架。Struts2是Apache软件基金会的开源...

Global site tag (gtag.js) - Google Analytics