Struts2 概述

1,仍然是一个基于请求响应的MVC框架

2,Struts2不是Struts1的升级

3,Struts2与Struts1的体系结构差距非常大

4,Struts2采用了另一个MVC框架WebWork的核心设计

5,Struts2更优秀:松耦合设计。。

Struts1与Struts2的对比

1,Action方面

Struts1的Action必须继承;Struts1是单例的,存在线程安全问题;控制执行方面,Struts1固定不变的

Struts2的Action可以不继承;Struts2是多例的,没有线程安全问题;控制执行方面,Struts2通过拦截器,可以改变执行流程,灵活配置的

2,Servlet API依赖与可测试性

Struts1的Action测试性不好,Struts1中的Action需要依赖Servlet API,因为需要容器支持,因为在Action依赖Servlet API

Struts2的Action测试性不好,Struts2中的Actionk可以不用依赖ServletAPI,可以直接写一个单元测试完成,因为Struts2的Aciton是一个POJO对象

3,ActionForm方面

Struts1收集数据通常使用ActionForm,而ActionForm还需要继承,使得ActionForm的复用率降低。另外项目非常大会建立很多ActionForm给维护带来工作量,但也有好处,数据的收集和控制进行很好的分离。

Struts2可以不用使用ActionForm来收集数据,直接让Action来收集 数据,但也可以采用类似ActionForm的方式来收集数据,Struts2采用ModelDriven的方式来支持类似Struts1的ActionForm方式,所以Struts2更灵活。

4,类型转换与表达式语言方面

Struts1对ActionForm的类型转换采用 commons-beanutils工具,而定义完成一个转换器,将对所有的ActionForm起作用,而不能针对某一个ActionForm来配置是否使用此类型的转换器。Struts1中我们通常使用JSTL作为显示层绑定数据的方式。

Struts2使用OGNL进行类型转换,功能更加强大,转换过程可以针对某个类型进行配置。;Struts2中我们可以使用功能更强大的表达式语言OGNL(Object Graph Notation Language)

5,校验

Struts1采用覆盖ActionForm中的validate()方法或采用验证框架commons validator来验证

Struts2支持使用覆盖validate()方法来完成验证,也支持验证框架XWork来验证。

Struts2概述及与Struts1的对比相关推荐

  1. Struts2与Struts1的对比

    Struts2与Struts1的对比 Action 类: • Struts1要求Action类继承一个抽象基类.Struts1的一个普遍问题是使用抽象类编程而不是接口. • Struts 2 Acti ...

  2. Struts2与Struts1的对比学习(一)

    写在前面: Struts1官方已经停止更新,现在用的也比较少,但是了解Struts1可以帮助我们更好的理解Struts2. 我们不能简单的把Struts2理解为Struts1的升级,甚至可以说这样理解 ...

  3. Struts1、Struts2、Spring MVC 流程图,对比

    Struts1.Struts2.Spring MVC框架的区别 2011-01-23 15:12:32|  分类:Struts |  标签:struts1  struts2  spring  mvc框 ...

  4. 【Web架构】静态站点生成器概述 Gatsby ,Hugo 和Jekyll对比

    在本文中,您将看到三种最好的静态站点生成器的比较,它们的优点.缺点以及您应该使用它们的原因. 网站统治着网络,无论是静态的还是动态的.虽然现在很多网站都是动态的,但是静态的仍然很受欢迎.事实上,静态网 ...

  5. Struts1和Struts2的区别和对比(完整版)

    struts2不是struts1的升级,而是继承的webwork的血统,它吸收了struts1和webwork的优势. 先看struts的Action官方注释(struts1.3.8源代码) /** ...

  6. Struts1和Struts2的区别和对比(完整版)(转)

    Struts1和Struts2的区别和对比(完整版)(转) Struts1和Struts2的区别和对比: Action 类:  • Struts1要求Action类继承一个抽象基类.Struts1的一 ...

  7. Struts1、Struts2及SpringMVC对比

    Struts2其实并不是一个陌生的Web框架,Struts2是以Webwork的设计思想为核心,吸收了Struts1的优点,因此,可以认为Struts2是Struts1和Webwork结合的产物. 简 ...

  8. Struts1与Struts2对比分析

    Struts2其实并不是一个陌生的Web框架,Struts2是以Webwork的设计思想为核心,吸收了Struts1的优点,因此,可以认为Struts2是Struts1和Webwork结合的产物. 简 ...

  9. Struts2和Struts1.x的全面比较

    Struts2和Struts1.x的全面比较 为了对Struts2和Strtus1.x进行全面的比较,让读者了解这两种框架各自的优缺点,以便于在自己的项目中,根据实际情况,选择合适的框架,对它们两者进 ...

  10. Struts1和Struts2对照

    最近学习Struts1和Struts2.好多人.提到非常多的信息. Struts2不从Struts1进化. Struts2的前身WebWork. 呢,看了一些资料,下边就来比較比較. 一.架构分析 S ...

最新文章

  1. Bigtable:结构化数据的分布式存储系统
  2. windows域控制器恢复
  3. HDU 2896 病毒侵袭 AC自动机
  4. 【PAT乙级】1029 旧键盘 (20 分)
  5. IE6 PNG 透明的方法
  6. Kubernetes从懵圈到熟练:认证与调度
  7. 使用SAP Cloud Platform fullstack WebIDE创建SAP UI5应用并部署
  8. 【ArcGIS风暴】水文分析模块实验:山脊线和山谷线提取
  9. c语言结构体定义字符串数组,C语言,结构体中字符串的声明(采用字符指针还是字符数组)...
  10. MVC Area Usage
  11. Ubuntu没有ifconfig
  12. 苹果 M1 Pro 和 M1 Max 与原始 M1 相比性能如何?
  13. Dimensional 将 290 亿美元的共同基金转换为 ETF
  14. PMP 考试一定要报培训班吗?(PMP备考资料分享)
  15. ip纯真数据库查询国家省市名称
  16. 基因家族分析-蛋白互作网络分析
  17. 将本地代码push到github上
  18. Java ffmpeg视频压缩IOS播放没有声音问题解决(超级简单)
  19. Vue+vant使用uploader上传图片
  20. 调用第三方地图app导航(高德、百度、腾讯)

热门文章

  1. 使用C#创建一个进程杀手Windows服务
  2. 2019年中国公有云厂商发展状况白皮书
  3. 常用的免费CMS建站系统推荐
  4. php递归还原,php递归算法处理
  5. VBScript连接各种数据库
  6. 垃圾邮件服务器 查询,exchange2013如果在服务器上查询到垃圾邮件的真实IP地址
  7. 电商公司ERP管理软件与旺店通、第三方仓库以及云仓的贯通解决方案
  8. SEO学习必上的网址大全
  9. Cisco Jabber 多个高危漏洞风险通告
  10. SAP License:FICO知识浓缩版