Long Long ago,就听说过SSH,起初还以为是一个东东,具体内容更是不详,总觉得高端大气上档次,经过学习之后才发现,不仅仅是高大上,更是低调奢华有内涵,经过一段时间的研究和学习SSH框架的基本原理与思想,总算接地气了。作为初学者,有点小小收获,想通过以博文的形式和大家一起分享,共同进步,在更新博文的过程中难免有认识不足的地方,还请各位大牛提出宝贵的建议,对于好的建议一定虚心接受,认真学习。

这篇博文仅仅是SSH的开端简介,简单介绍一下SSH以及三种框架的整体概览,后面的博文会对各部分的内容一一进行详细的介绍,此系列博文会持续更新,也请大家关注我的博文。下面我们进入今天的正题:

什么是SSH

官方的说法:SSH是 struts+spring+hibernate的一个集成框架,是目前较流行的一种web应用程序开源框架。

个人的见解:SSH不是一个框架,而是把多个框架(Struts、Spring以及Hibernate)紧密的结合在一起,用于构建灵活、易于扩展的多层Web应用程序。

SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层(实体层)。

我们通过下面这张图说明一下,三种框架的关系以及所包含的内容,内容已经很详细了,在这里就不做过多的解释了。

下面我们再详细看一下组成SSH的这三个框架。

Struts

1、什么是Struts?

从简单性来看,Struts是这三个框架中最简单的一个,它是基于MVC的框架。它通过采用JavaServlet/JSP技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架,是MVC的一个具体实现或着说是MVC的一个具体产品。

2、Struts的核心构成

Struts的核心同样也是MVC的核心,Struts是MVC的一个具体产品。

(1)Model

由Action、ActionForm以及JavaBean组成,其中ActionForm用于将用户请求的参数,封装成为ActionForm对象,我们可以理解为实体,由ActionServlet转发给Action,Action处理用户请求,将处理结果返回到界面。

(2)View

该部分采用JSP+大量的taglib,实现页面的渲染。

(3)Controller

Controller是Struts的核心控制器,负责拦截用户请求,通过调用Model来实现处理用户请求的功能。

3、为什么使用Struts?

使用Struts作为系统的整体基础架构,负责MVC的分离,将页面从业务逻辑分离出来,使用页面更加灵活多变,不会影响业务逻辑,简化了基于MVC的web应用程序的开发,因而使得开发更加高效。

Hibernate

1、什么是Hibernate?

Hibernate是一个对象关系映射框架,它对JDBC进行了轻量级的封装,使得我们使用面向对象的思想操作关系型数据库。

2、Hibernate的核心构成

这部分内容我们不做过多的解释,上面导图中的解释已经很简单明了了,如果还是不懂的话,可以上网查阅相关资料。

3、为什么使用Hibernate?

(1)Hibernate是JDBC的轻量级的对象封装,它使得与关系型数据库打交道变得更加轻松自如。

(2)对象化,它使得我们可以以面向对象的思想操作关系型数据库,简化了Dao层编码工作,使得开发更加对象化了。

(3)移植性更好,支持各种数据库,更换数据库异常简单,不需要改代码。

(4)实现了透明持久化,没有实现第三方框架或接口,没有侵入性,是一种轻量级框架。

Spring

1、什么是Spring?

简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

2、Spring的核心构成

(1)IoC

IoC就是IoC,不是什么技术,是一种设计模式。通过依赖注入的方式,由spring管理和控制对象之间的依赖关系,避免硬编码所造成的过度程序耦合。

(2)AoP

通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。

(3)容器

能管理对象的生命周期、对象与对象之间的依赖关系就是容器。

3、为什么使用Spring?

没有Spring,Struts和Hibernate可以很好的运行,我称这样的模式为“独木桥”,但是有了Spring,Struts和Hibernate能够更好的结合在一起,协调的工作。我称这样的模式为“阳光大道”。Spring的核心思想是IoC和AOP,Spring使得管理对象更加方便,极大的降低组件之间的耦合度,实现了软件各层之间的解耦。Spring的优点还有很多,我们就不再累述了。

总结

SSH不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离,耦合度降低,系统的灵活性更好,可复用性高。同时,框架为我们提供了一些基础性的服务,使我们的开发更加简单,大大提高开发效率

Struts + Spring + Hibernate 进阶开端(一)相关推荐

  1. 【SSH进阶之路】Struts + Spring + Hibernate 进阶开端(一)

    Long Long ago.就听说过SSH.起初还以为是一个东东,详细内容更是不详,总认为高端大气上档次,经过学习之后才发现,不不过高大上,更是低调奢华有内涵,经过一段时间的研究和学习SSH框架的基本 ...

  2. ssh(Struts+spring+Hibernate)三大框架整合-简述

    ssh(Struts+spring+Hibernate)三大框架配合使用来开发项目,是目前javaee最流行的开发方式,必须掌握: 注意: 为了稳健起见,每加入一个框架,我们就需要测试一下,必须通过才 ...

  3. struts+spring+hibernate总结

    简单的说: struts 控制用的 hibernate 操作数据库的 spring 用解耦的 详细的说: struts 在 ssh 框架中起控制的作用 , 其核心是 Controller, 即 Act ...

  4. java ssh框架 struts spring hibernate 简介

    目录 什么是SSH框架 浅谈Struts 什么是Struts Struts的核心构成 为什么使用Struts 浅谈Hibernate 什么是Hibernate Hibernate的核心构成 浅谈Spr ...

  5. Struts+Spring+Hibernate整合入门详解

    标签: strutshibernatespringbeanactionimport 2007-08-12 16:05 36280人阅读 评论(13) 收藏 举报 分类: STRUTS&SPRI ...

  6. SSH框架(Struts+Spring+Hibernate)

    在SSH 的组合框架模式中,三者各自的作用? Struts 是一个很好的MVC框架,主要技术是Servlet和Jsp.Struts的MVC设计模式可以使我们的逻辑变得很清晰,让我们写的程序层次分明.基 ...

  7. Struts+Spring+Hibernate处理Lob(Blob,Clob)--sessionFactory中注入 org.springframework.jdbc.support.lob.Def

    [转载]org.springframework.jdbc.support.lob. 转载▼ 标签: 转载 分类: spring 原文地址:org.springframework.jdbc.suppor ...

  8. jello框架,struts+spring+hibernate的终结者?

    jello框架V1.6(以下简称框架)是一个开源的基于AOA技术的java web应用程序框架,它包含了一些独特的观点如零配置.BCP模式.DMM持久化技术等等,支持快速的web应用程序开发.更多内容 ...

  9. 关于Struts+Spring+Hibernate的理解

    Struts,Spring和Hibernate是目前企业最流行的组合框架.一般一个Web项目分为四层:呈现层, 业务逻辑层. 持久层和数据库层.Struts负责呈现层...... 转载于:https: ...

  10. Struts+Spring+Hibernate练习(完整)(1)

    转载:[url]http://www.blogjava.net/oksonic/archive/2005/11/06/18370.html[/url] 工具: Eclipse3.1.MyEclipse ...

最新文章

  1. 八百客与51CTO结了梁子?
  2. Numpy和Pandas的区别
  3. php的类图怎么生成_PHP设计模式之简单工厂模式
  4. 分布式之延时任务方案解析
  5. 负载均衡轮询算法和服务器性能,SpringCloud-Ribbon负载均衡机制、手写轮询算法
  6. J2ME开发及JBuilder工具的应用
  7. php使用自定义alert,IOS_iOS自定义alertView提示框实例分享,本文实例为大家分享iOS自定义a - phpStudy...
  8. (MATLAB)使用梯度下降进行一元线性回归
  9. linux云服务器,Tomcat服务器常见 The value for the useBean class attribute is invalid 错误
  10. 详细Ubuntu系统修改默认软件下载源
  11. OSError: [Errno 8] Exec format error
  12. MIPI CSI-2笔记(10) -- Low Level Protocol(延迟降低、传输效率增强特性LRTE)
  13. Python 3,4行代码实现去除图片背景色,从此告别PS!!
  14. 上海羽毛球场预定app_羽毛球预约管家
  15. Speedoffice(excel)如何利用SUMPRODUCT函数求和
  16. 全球区块链理事会(GBBC)成立中国分会,开启新篇章
  17. python HTMLParser
  18. 为什么毕业季不要表白?
  19. matlab 中实现读取图像上点坐标并在图片上标记点和将坐标显示出来
  20. Iot智慧新零售魔镜智能硬件有哪些

热门文章

  1. TechNet Magazine/TechNet杂志
  2. 【RTOS】为H7配套的uCOS-III模板也是可以用于MDK AC6的,提供个模板
  3. wow和scrollreveal动画
  4. 如何用prometheus监控k8s集群中业务pod的metrics
  5. C#枚举中使用Flags特性
  6. 设计模式学习笔记(二十:享元模式)
  7. IOS 的loadView 及使用loadView中初始化View注意的问题。(死循环并不可怕)
  8. 面试第二弹-重点描述
  9. 宇宙第一开发工具:vs2019 开发Python
  10. 【t092】迷之阶梯