Long Long ago,就据说过SSH,起初还觉得是一个东东,具体内容更是不详,总以为高端大气上档次,通过学习以后才发现,不只仅是高大上,更是低调奢华有内涵,通过一段时间的研究和学习SSH框架的基本原理与思想,总算接地气了。做为初学者,有点小小收获,想经过以博文的形式和你们一块儿分享,共同进步,在更新博文的过程当中不免有认识不足的地方,还请各位大牛提出宝贵的建议,对于好的建议必定虚心接受,认真学习。spring
这篇博文仅仅是SSH的开端简介,简单介绍一下SSH以及三种框架的总体概览,后面的博文会对各部分的内容一一进行详细的介绍,此系列博文会持续更新,也请你们关注个人博文。下面咱们进入今天的正题:数据库
官方的说法:SSH是 struts+spring+hibernate的一个集成框架,是目前较流行的一种web应用程序开源框架。设计模式
我的的看法:SSH不是一个框架,而是把多个框架(Struts、Spring以及Hibernate)紧密的结合在一块儿,用于构建灵活、易于扩展的多层Web应用程序。架构
SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层(实体层)。框架
咱们经过下面这张图说明一下,三种框架的关系以及所包含的内容,内容已经很详细了,在这里就不作过多的解释了。学习
下面咱们再详细看一下组成SSH的这三个框架。编码
一、什么是Struts?spa
从简单性来看,Struts是这三个框架中最简单的一个,它是基于MVC的框架。它经过采用JavaServlet/JSP技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架,是MVC的一个具体实现或着说是MVC的一个具体产品。.net
二、Struts的核心构成
Struts的核心一样也是MVC的核心,Struts是MVC的一个具体产品。
(1)Model
由Action、ActionForm以及JavaBean组成,其中ActionForm用于将用户请求的参数,封装成为ActionForm对象,咱们能够理解为实体,由ActionServlet转发给Action,Action处理用户请求,将处理结果返回到界面。
(2)View
该部分采用JSP+大量的taglib,实现页面的渲染。
(3)Controller
Controller是Struts的核心控制器,负责拦截用户请求,经过调用Model来实现处理用户请求的功能。
三、为何使用Struts?
使用Struts做为系统的总体基础架构,负责MVC的分离,将页面从业务逻辑分离出来,使用页面更加灵活多变,不会影响业务逻辑,简化了基于MVC的web应用程序的开发,于是使得开发更加高效。
一、什么是Hibernate?
Hibernate是一个对象关系映射框架,它对JDBC进行了轻量级的封装,使得咱们使用面向对象的思想操做关系型数据库。
二、Hibernate的核心构成
这部份内容咱们不作过多的解释,上面导图中的解释已经很简单明了了,若是仍是不懂的话,能够上网查阅相关资料。
三、为何使用Hibernate?
(1)Hibernate是JDBC的轻量级的对象封装,它使得与关系型数据库打交道变得更加轻松自如。
(2)对象化,它使得咱们能够以面向对象的思想操做关系型数据库,简化了Dao层编码工做,使得开发更加对象化了。
(3)移植性更好,支持各类数据库,更换数据库异常简单,不须要改代码。
(4)实现了透明持久化,没有实现第三方框架或接口,没有侵入性,是一种轻量级框架。
一、什么是Spring?
简单来讲,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
二、Spring的核心构成
(1)IoC
IoC就是IoC,不是什么技术,是一种设计模式。经过依赖注入的方式,由spring管理和控制对象之间的依赖关系,避免硬编码所形成的过分程序耦合。
(2)AoP
经过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。
(3)容器
能管理对象的生命周期、对象与对象之间的依赖关系就是容器。
三、为何使用Spring?
没有Spring,Struts和Hibernate能够很好的运行,我称这样的模式为“独木桥”,可是有了Spring,Struts和Hibernate可以更好的结合在一块儿,协调的工做。我称这样的模式为“阳光大道”。Spring的核心思想是IoC和AOP,Spring使得管理对象更加方便,极大的下降组件之间的耦合度,实现了软件各层之间的解耦。Spring的优势还有不少,咱们就再也不累述了。
SSH不只实现了视图、控制器与模型的完全分离,并且还实现了业务逻辑层与持久层的分离,耦合度下降,系统的灵活性更好,可复用性高。同时,框架为咱们提供了一些基础性的服务,使咱们的开发更加简单,大大提升开发效率。
下篇博客,咱们介绍Struts的基本原理+简单的登陆实例(附源码)