2019独角兽企业重金招聘Python工程师标准>>>

Struts2比Struts1已经有了很大的进步,优点很多,其中主要两个是:对框架API和ServletAPI的依赖减少,可扩展性提高。

Struts2的Action可以实现框架提供的Action接口也可以不实现这个接口。实际上框架Strut2的Action的要求很低,只要一个类,包含一个无参的、返回值类型为String的方法就行。其实Struts2的Action就是一个POJO。如果用户写一个类实现框架提供的Action接口或者继承框架提供的ActionSupport类, 则可以利用框架中的其他一些功能。比如在,Action接口中定义了一些常量,这些常量通常作为返回值共处理方法调用。

由于Struts2的Action对框架API和Servlet API的依赖减少,因此可测程度大大提高。

Struts2的可扩展性提高了。Struts2的核心jar包中由一个struts-default.xml文件,在该文件中设置了一些默认的bean,resultType类型,默认拦截器栈等,所有这些默认设置,用户都可以利用配置文件更改,可以更改为自己开发的bean,resulttype等。

因此用户开发了插件的话只要很简单的配置就可以很容易的和Struts2框架融合,这实现了框架对插件的可插拔的特性。

面向切面编程的思想在Strut2中也有了很好的体现。最重要的体现就是拦截器的使用。拦截器就是一个一个的小功能单位,用户可以将这些拦截器合并成一个大的拦截器,这个合成的拦截器就像单独的拦截器一样,只要将它配置到一个、Action中就可以。

我认为Struts2还是有一些不足之处的,我简单例举一下,不知道算不算缺点。

一就是在Struts2中Action中取得从jsp中传过来的参数时还是有点麻烦。可以为Struts2的Action中的属性配置上Getter和Setter方法,通过默认拦截器,就可以将请求参数设置到这些属性中。如果用这种方式,当请求参数很多时,Action类就会被这些表单属性弄的很臃肿,让人感觉会很乱。还有Action中的属性不但可以用来获得请求参数还可以输出到Jsp中,这样就会更乱。假设从JSP1中获得了参数money=100000,但是这个Action还要输出到JSP2中,但是输出的格式却不同,money=100,000,这样这个Action中的money中的值就变了。

关于校验那一块,感觉太烦乱,也太细化了,如果校验出错的只能给用户提示一些信息。如果有多个字段,每个字段出错时返回到不同的画面,这个功能在Strut2框架下借助框架提供的校验逻辑就不容易实现。

转载于:https://my.oschina.net/u/854926/blog/86180

struts2的优缺点相关推荐

  1. Struts2的基本原理与实现

    Struts2是什么 百度说的 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型 ...

  2. JAVA面试、笔试题

    @[TOC]目录 JAVA面试.笔试题 @目录 一. CoreJava部分 7 1. java中有哪些基本类型? 7 2. java反射 7 3. 易错,理解题 7 4. Java有几种创建对象的方法 ...

  3. Spring、Spring MVC、Struts2、、优缺点整理

    Spring 及其优点 大部分项目都少不了Spring的身影,为什么大家对他如此青睐,而且对他的追捧丝毫没有减退之势呢 Spring是什么: Spring是一个轻量级的DI和AOP容器框架. 说它轻量 ...

  4. Struts2,Spring,Hibernate框架的优缺点

    开源是3个框架共有的优点 Struts2框架(MVC框架)的优点如下: 1)  实现了MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实现: 2)  丰富的标签库,大大提高了开发的效率: 3) S ...

  5. Java MVC框架性能比较 jsp、struts1、struts2、springmvc3 (转帖)

    为什么80%的码农都做不了架构师?>>>    Java MVC框架性能比较 jsp.struts1.struts2.springmvc3 现在各种MVC框架很多,各框架的优缺点网络 ...

  6. java面试总结-(hibernate ibatis struts2 spring)

    说说Hibernate对象的三种状态 Hibernate对象有三种状态,分别是:临时态(Transient). 持久态(Persistent).游离态(Detached). 临时状态:是指从对象通过n ...

  7. java struts2 框架 入门简介

    目录 一.Struts2框架执行流程 二.Struts2的快速入门 1.导入jar包 2.配置web.xml文件 3.配置struts.xml文件 4.创建Action来完成逻辑操作 三.Struts ...

  8. Struts2框架学习Action命名空间创建方式

         Struts2框架中Action类时一个单独的javabean对象,相比struts1来说,不需要去继承任何类型或实现任何借口,表单数据包含在Action中,而Struts1则必须继承org ...

  9. 深入浅出的理解框架(Struts2、Hibernate、Spring)与 MVC 设计模式

    现在许许多多的初学者和程序员,都在趋之若鹜地学习Web开发的宝典级框架:Struts2,Spring,Hibernate.似乎这些框架成为了一个人是否精通Java,是否会写J2EE程序的唯一事实标准和 ...

最新文章

  1. Linux下同步模式、异步模式、阻塞调用、非阻塞调用总结
  2. 罗德里格斯公式推导,以及如何使用cv2.Rodrigues进行旋转矩阵和旋转向量之间的相互转化
  3. 开源大数据引擎:Greenplum 数据库架构分析
  4. flex平均分布换行后自动对齐
  5. PMP - 考试将于2011年8月31日更新
  6. 暴击!被初中生碾压智商!这份被国家数学集训队采用的初中奥数资料究竟有多厉害?...
  7. node 遍历读取制定后缀文件名
  8. LeetCode 698. 划分为k个相等的子集(回溯)
  9. python背景颜色怎么随机_Python中的随机颜色
  10. win系统如何连接共享服务器,window7 pro 访问局域网内共享服务器
  11. JavaHelp 开发系统帮助(二)
  12. android和emui的版本对应,同为Android 操作系统的小米MIUI和华为EMUI, 谁更优秀?
  13. java类的引用使用即String类的toUpperCase的使用
  14. 自绘LISTVIEW的滚动条(Delphi实现)
  15. petalinux 安装
  16. 入侵提权过程中猜解linux路径与windows路径,网站路径暴力
  17. BUAA_4:Kevin·Feng的正确@姿势
  18. 初学python--空函数、返回多个值
  19. 计算机毕业设计 SSM的房屋租赁管理系统(源码+论文)
  20. 深度 | 智慧城市背景下的“多规合一”标准探究

热门文章

  1. Linux学习总结(四)-两种模式修复系统,单用户,救援模式
  2. React全家桶构建一款Web音乐App实战(五):歌曲状态管理及播放功能实现
  3. 智能信贷产业进入爆发期,银行如何破解微贷难题?
  4. 搜索服务Elasticsearch与Solr比较
  5. 创建ServiceArea
  6. 【HTML5CSS3进阶学习01】气泡组件的实现
  7. 程序的内存分配----变量在可执行文件中的内存区分配
  8. 【机器学习】sklearn文档学习之特征选择
  9. MNIST二进制数据集探索--基于Numpy处理
  10. windows 两条命令快速关闭 445等危险端口