Struts+Spring+Hibernate进阶开端(一)
入行就听说SSH,起初还以为是一个东西,具体内容就更加不详细了,总觉得高端大气上档次,经过学习之后才发现,不仅仅是高大上,更是低调奢华有内涵,经过一段时间的研究和学习SSH框架的基本原理与思想,总算接地气了。想通过以博文的形式和大家一起分享,共同进步,在更新博文的过程中难免有认识不足的地方,还请各位大牛提出宝贵的建议,对于好的建议一定虚心接受,认真学习。
这篇博文仅仅是SSH的开端简介,简单介绍一下SSH以及三种框架的整体概览,后面的博文会对各部分的内容一一进行详细的介绍。
什么是SSH?
官方的说法:SSH是Struts+Spring+Hibernate的一个jicheng框架,是目前较流行的的一种web应用程序开源框架。 个人见解:SSH不是一个框架,而是把多个框架(Struts,Spring,Hibernate)紧密的结合在一起,用于构建灵活,易于扩展的多层Web应用程序。
SSH框架的系统从职责上分为四层:表示层,业务逻辑层,数据持久层和域模块层(实体层)。
我们通过下面这张图说明一下,三种框架的关系以及所包含的内容,内容已经很详细了,在这里就不做过多的解释了。

下面再详细看一下组成SSH的这三个框架。
Struts
1.什么是Struts?
从简单性来看,Struts是这三个框架中中最简单的一个。它是基于MVC的框架。它通过采用JavaServlet/Jsp技术,实现了基于JavaEE web应用的MVC设计模式的应用框架,是MVC的一个具体实现或者说是MVC的一个具体产品。
2.Struts的核心构成

Struts的核心同样也是MVC的核心,Struts是MVC的一个具体产品。
Model
由Action,ActionForm以及JavaBean组成,其中ActionForm用于将用户请求的参数,封装成为ActionForm对象,我们可以理解为实体。由ActionServlet转发给Action,Action处理用户请求,将处理结果返回到界面。
View
该部分采用JSP+大量的taglib,实现页面的渲染。
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的核心构成

IOC
IOC就是IOC,不是什么技术,是一种设计模式。通过依赖注入的方式,由Spring管理和控制对象之间的依赖关系,避免硬编码所造成的过度程序耦合。
AOP
Aop通过预编译方式和运行期动态代理实现程序功能的同意维护的一种技术。
容器
能管理对象的生命周期,对象与对象之间的依赖关系就是容器。
3.为什么使用Spring?
没有Spring,Struts和Hibernate可以很好的运行,我称这样的模式为“独木桥”,但是有了Spring,Struts和Hibernate能够更好的结合在一起,协调工作。我称这种模式为“阳光大道”。Spring的核心是IOC和AOP,Spring使得管理对象更加方便,极大降低组件之间的耦合度。实现了软件各层之间的解耦。Spring的优点还有很多。
总结
SSH不仅实现了视图,控制器与模型的彻底分离,而且还是先了业务逻辑层与持久层的分离。耦合度降低,系统的灵活性更好,可复用性高。同时,框架为我们提供了一些基础性的服务,是我们的开发更加简单,大大的提高了开发效率。
Struts+Spring+Hibernate进阶开端(一)的更多相关文章
- 【SSH进阶之路】Struts + Spring + Hibernate 进阶开端(一)
[SSH进阶之路]Struts + Spring + Hibernate 进阶开端(一) 标签: hibernatespringstrutsssh开源框架 2014-08-29 07:56 9229人 ...
- Struts + Spring + Hibernate 进阶开端(一)
Long Long ago,就听说过SSH,起初还以为是一个东东,具体内容更是不详,总觉得高端大气上档次,经过学习之后才发现,不仅仅是高大上,更是低调奢华有内涵,经过一段时间的研究和学习SSH框架的基 ...
- Struts+Spring+Hibernate项目的启动线程
在Java Web项目中,经常要在项目开始运行时启动一个线程,每隔一定的时间就运行一定的代码,比如扫描数据库的变化等等.要实现这个功能,可以现在web.xml文件中定义一个Listener,然后在这个 ...
- Struts,spring,hibernate三大框架的面试
Struts,spring,hibernate三大框架的面试 1.Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3 ...
- 用eclipse搭建SSH(struts+spring+hibernate)框架
声明: 本文是个人对ssh框架的学习.理解而编辑出来的,可能有不足之处,请大家谅解,但希望能帮助到大家,一起探讨,一起学习! Struts + Spring + Hibernate三者各自的特点都是什 ...
- Struts+Spring+Hibernate整合入门详解
Java 5.0 Struts 2.0.9 Spring 2.0.6 Hibernate 3.2.4 作者: Liu Liu 转载请注明出处 基本概念和典型实用例子. 一.基本概念 St ...
- Struts+Spring+Hibernate、MVC、HTML、JSP
javaWeb应用 JavaWeb使用的技术,比如SSH(Struts.Spring.Hibernate).MVC.HTML.JSP等等技术,利用这些技术开发的Web应用在政府项目中非常受欢迎. 先说 ...
- velocity+spring mvc+spring ioc+ibatis初试感觉(与struts+spring+hibernate比较)
velocity+spring mvc+spring ioc+ibatis框架是我现在公司要求采用的,原因是因为阿里巴巴和淘宝在使用这样的框架,而我公司现在还主要是以向阿里巴巴和淘宝输送外派人员为 主 ...
- Struts+Spring+Hibernate处理Lob(Blob,Clob)
在使用struts+spring+hibernate的开发中,有些时候用户会有数据库存储文件的需求,在数据库中一般会采用Blob字段或Clob字段来存储二进制图片.流媒体或文件.现就将在实际开发中遇到 ...
随机推荐
- Java开发环境安装
一.安装JDK(java development kit) 下载地址:www.oracle.com/technetwork/java/javase/downloads 二.配置Java环境变量 1.J ...
- 分数相加减的代码(c++)
#include <iostream> using namespace std; int gy(int a,int k1) {int min; if(a>k1)min=k1; els ...
- Edusoho 的 Arale validator使用说明
1.js控制器文件开端 var Validator = require('bootstrap.validator'); require('common/validator-rules').inject ...
- 神奇的match和replace
源自跟奈落大叔的讨论,PHP和JavaScript的比较. 正则: 先说几个正则写法: () 选择匹配一组, (?:) 降低 () 的优先级, .*? 和 .+? ,阻止 . 和 + 的贪婪. 还有一 ...
- HSV颜色识别demo
HSV(Hue, Saturation, Value)色彩空间是一种区别与RGB的表示形式.其模型可视为一个倒立的棱锥或圆锥. 其中H为色调,用角度度量,取值范围为0°-360°,从红色开始按逆时针方 ...
- javascript中的一些基本方法收藏
W3C DOM 什么是DOM,DOM其实就是把一个HTML或者XML等符合W3C标准的文档内容模拟成一个JAVA对象,这样才能给JAVA或者JS来操作.下面是JS中模拟出的内置DOM对象documen ...
- 带KEY的SCP命令,老是要查,这次写在这里吧,
有些东东记不住,急要用时老是想不起,放在这里吧, scp -r -i /xxx/rsa.key -P port user@ip:/source/ /target/
- 使用Keil软件编写汇编源程序应注意事项
1)一定要使用微软的txt文本编辑器,否则键入逗号时编译通不过.应该是这个样('),不该是这个样(,). 2) 用数字做标号时,前面一定要加一个英文字母,否则编译通不过. 3) 有时编译通过的.asm ...
- Bring it on
I am going to open a whole new English Blog here. Most blogs here would be computer technologies, in ...
- c语言结构体在内存中存储,字节对齐
注意: 出于效率的考虑,C语言引入了字节对齐机制,一般来说,不同的编译器字节对齐机制有所不同,但还是有以下3条通用准则: (1)结构体变量的大小能够被其最宽基本类型成员的大小所整除: (2)结构体每个 ...