Struts的优缺点

Struts优点:

(1)实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现。

(2)具有丰富的Tag标签库,如能灵活运用,能大大提高开发效率。

(3)页面导航使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有很大好处。

(4)提供Exception处理机制。

(5)数据库链接池的管理。

(6)支持应用国际化。

Struts缺点:

(1)转到展示层时,需要配置forward,如果有十个展示层的jsp,需要配置十次struts,而且还不包括有时候目录、文件变更,需要重新修改forward,注意,每次修改配置之后,要求重新部署整个项目,而tomcate这样的服务器,还必须重新启动服务器

(2)Struts的Action必需是thread-safe方式,它仅仅允许一个实例去处理所有的请求。所以action用到的所有的资源都必需统一同步,这个就引起了线程安全的问题。

(3)测试不方便。Struts的每个Action都同Web层耦合在一起,这样它的测试依赖于Web容器,单元测试也很难实现。不过有一个Junit的扩展工具Struts TestCase可以实现它的单元测试。

(4)类型的转换。Struts的FormBean把所有的数据都作为String类型,它可以使用工具Commons-Beanutils进行类型转化。但它的转化都是在Class级别,而且转化的类型是不可配置的。类型转化时的错误信息返回给用户也是非常困难的。

(5)对Servlet的依赖性过强。Struts处理Action时必需要依赖ServletRequest和ServletResponse,所有它摆脱不了Servlet容器。

(6)前端表达式语言方面。Struts集成了JSTL,所以它主要使用JSTL的表达式语言来获取数据。可是JSTL的表达式语言在Collection和索引属性方面处理显得很弱。

(7)对Action执行的控制困难。Struts创建一个Action,如果想控制它的执行顺序将会非常困难。甚至你要重新去写Servlet来实现你的这个功能需求。

(8)对Action执行前和后的处理。Struts处理Action的时候是基于class的hierarchies,很难在action处理前和后进行操作。

(9)对事件支持不够。在struts中,实际是一个表单Form对应一个Action类(或DispatchAction),换一句话说:在Struts中实际是一个表单只能对应一个事件,struts这种事件方式称为application event,application event和component event相比是一种粗粒度的事件。

Spring优缺点

Spring优点:

(1)Spring能有效地组织你的中间层对象,不管你是否选择使用了EJB。如果你仅仅使用了Struts或其他为J2EE的API特制的framework,Spring致力于解决剩下的问题。

(2)Spring能消除在许多工程中常见的对Singleton的过多使用。根据我的经验,这是一个很大的问题,它降低了系统的可测试性和面向对象的程度。

(3)通过一种在不同应用程序和项目间一致的方法来处理配置文件,Spring能消除各种各样自定义格式的属性文件的需要。

(4)通过把对接口编程而不是对类编程的代价几乎减少到没有,Spring能够促进养成好的编程习惯。

(5)Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。在Spring应用中的大多数业务对象没有依赖于Spring。

(6)使用Spring构建的应用程序易于单元测试。

(7)Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或local EJBs来实现业务接口,却不会影响调用代码。

(8)Spring帮助你解决许多问题而无需使用EJB。Spring能提供一种EJB的替换物,它们适用于许多web应用。例如,Spring能使用AOP提供声明性事务管理而不通过EJB容器,如果你仅仅需要与单个数据库打交道,甚至不需要一个JTA实现。

(9)Spring为数据存取提供了一个一致的框架,不论是使用的是JDBC还是O/R mapping产品(如Hibernate)。

spring缺点:

jsp中要写很多代码、控制器过于灵活,缺少一个公用控制器

Hibernate优缺点

Hibernate优点

(1)hibernate是基于ORM技术的开源框架,对JDBC进行了轻量级的封装,使用面向对象的思想来操纵数据库。

(2)hibernate提供了session缓存和二级缓存,对于不需要进行复杂查询的系统,性能有提升。

(3)使用Hibernate,移植性好(只要使用Hibernate标准开发,更换数据库时,只需要配置相应的配置文件就可以了,不需要做其它任务的操作)。

(4)Hibernate实现了透明持久化。当保存一个对象时,这个对象不需要继承Hibernate中的任何类、实现任何接口,只是个纯粹的POJO对象。

(5)Hibernate是一个没有侵入性的轻量级框架。

(6)不需要手动编写SQL语句(不需要编辑JDBC),只需要操作相应的对象就可以了,就可以存储、更新、删除、加载对象,提高生产效率。

(7)Hibernate代码测试方便。

Hibernate缺点

(1)hibernate学习成本比较高。

(2)不适合有复杂的sql查询(统计)。

(3)不适合批量操作数据(针对单一对象的增删查改)。

SSH框架各自优缺点总结相关推荐

  1. 《SSH框架》---SSH框架与框架

       我们首先网上商城使用的是ssh框架,百度得到:SSH是 struts+spring+hibernate的一个集成框架,是目前比较流行的一种Web应用程序开源框架.    集成SSH框架的系统从职 ...

  2. Java--SSH,SSM和Spring Boot框架区别优缺点

    一.SSH(Struts + Spring + Hibernate) 1.基本概念 SSH框架是JAVA EE中三种框架所集成,分别是Struts,Spring,Hibernate框架所组成 集成SS ...

  3. SSH框架总结,超详细

    传统的Java Web应用程序是采用JSP+Servlet+Javabean来实现的,这种模式实现了最基本的MVC分层,使的程序结构分为几层,有负责前台展示的 JSP.负责流程逻辑控制的Servlet ...

  4. [转载]SSH框架搭建详细图文教程

    什么是SSH? SSH对应 struts spring hibernatestruts 采用MVC模式,主要是作用于用户交互spring 采用IOC和AOP~作用比较抽象,是用于项目的松耦合hiber ...

  5. ssh框架实现数据库_自顶向下介绍SSH及其如何实现安全的数据共享

    ssh框架实现数据库 by Sam Ollason 通过萨姆·奥拉森(Sam Ollason) This article will take a high-level and top-down app ...

  6. php e框架是啥,几款主流PHP框架的优缺点评比

    PHP语言还是比较常用到的一门计算机高级语言.我们将会在这篇文章中向大家主要介绍关于PHP框架相关优缺点评比,作为一个参考风险给朋友们. 主要参考的PHP框架包括:CodeIgniter.CakePH ...

  7. 使用SSH框架实现用户登录验证

    今天,写一个非常简单的通过struts+hibernate+spring的集成来实现用户登录验证的例子,让大家了解一下三者是如何是整合的. 我们可以通过myeclipse的向导,生成相应的环境搭建,如 ...

  8. SSH框架整合-慕课课程

    SSH框架整合-慕课课程 学习时间:2018年12月3日 慕课链接:基于SSH实现员工管理系统之框架整合篇 内容:Struts2+Hibernate+Spring框架整合,分为Struts2整合Spr ...

  9. java web的ssh框架_JavaWeb_(SSH论坛)_二、框架整合

    基于SSH框架的小型论坛项目 一.项目入门 传送门 二.框架整合 传送门 三.用户模块 传送门 四.页面显示 传送门 五.帖子模块 传送门 六.点赞模块 传送门 七.辅助模块传送门 导入Jar包 导入 ...

最新文章

  1. 华三h3c交换机最详细的配置实例手册_华为/思科/华三基本命令对比
  2. 从60多场技术面试中,我总结了这份面试经验
  3. Runtime底层原理--动态方法解析总结
  4. 深入mysql ON DUPLICATE KEY UPDATE 语法的分析
  5. 面向对象封装之无参无返,无参有返
  6. Numpy统计计算、数组比较,看这篇就够了
  7. [唐胡璐]VBS技巧 - Adding Quotes(为字符串加双引号)
  8. html视频直播源码,用HTML5开发简单的视频播放器,附源码
  9. 解决a标签下载文件token验证问题
  10. 02_RampTexture(渐变纹理)
  11. TvRecyclerView
  12. 11-散列1 电话聊天狂人分数 25作者 DS课程组单位 浙江大学
  13. 机器学习(三)——决策树
  14. jQuery取值和赋值的基本方法
  15. java中的LinkedList(链表)与ArrayList(动态数组):(2)尝试简单实现LinkedList
  16. SciPy 教程与安装
  17. 【一起来烧脑】一步学会HTML体系
  18. 视频讲解:分布式dtu配电终端SDAF-8608/分布式dtu集中式dtu区别
  19. 实施ERP系统之我见
  20. 支付宝五福集齐收益大预测

热门文章

  1. Word文档怎么删除html标签,Word文档中怎么删除空白页?删除空白页的六种方法
  2. textarea高度自适应自动增高撑开
  3. rtthread studio与正点原子apollo(3)--硬件定时器HTIMER
  4. 流量回放开源代码Java_流量回放原理
  5. 【翻译自HVR官方手册】HVR数据复制软件介绍与术语解释
  6. 计算机应用与素养大赛题,计算机应用与素养大赛题(7页)-原创力文档
  7. DNS基本概念报文格式
  8. Unity3D教程:赛车漂移算法
  9. 语音聊天室资料(一)
  10. 天津滨海新区“标签”:AI 与智慧城市深度融合