入行就听说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进阶开端(一)的更多相关文章

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

    [SSH进阶之路]Struts + Spring + Hibernate 进阶开端(一) 标签: hibernatespringstrutsssh开源框架 2014-08-29 07:56 9229人 ...

  2. Struts + Spring + Hibernate 进阶开端(一)

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

  3. Struts+Spring+Hibernate项目的启动线程

    在Java Web项目中,经常要在项目开始运行时启动一个线程,每隔一定的时间就运行一定的代码,比如扫描数据库的变化等等.要实现这个功能,可以现在web.xml文件中定义一个Listener,然后在这个 ...

  4. Struts,spring,hibernate三大框架的面试

    Struts,spring,hibernate三大框架的面试 1.Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3 ...

  5. 用eclipse搭建SSH(struts+spring+hibernate)框架

    声明: 本文是个人对ssh框架的学习.理解而编辑出来的,可能有不足之处,请大家谅解,但希望能帮助到大家,一起探讨,一起学习! Struts + Spring + Hibernate三者各自的特点都是什 ...

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

    Java 5.0 Struts 2.0.9 Spring 2.0.6 Hibernate 3.2.4 作者:  Liu Liu 转载请注明出处 基本概念和典型实用例子. 一.基本概念       St ...

  7. Struts+Spring+Hibernate、MVC、HTML、JSP

    javaWeb应用 JavaWeb使用的技术,比如SSH(Struts.Spring.Hibernate).MVC.HTML.JSP等等技术,利用这些技术开发的Web应用在政府项目中非常受欢迎. 先说 ...

  8. velocity+spring mvc+spring ioc+ibatis初试感觉(与struts+spring+hibernate比较)

    velocity+spring mvc+spring ioc+ibatis框架是我现在公司要求采用的,原因是因为阿里巴巴和淘宝在使用这样的框架,而我公司现在还主要是以向阿里巴巴和淘宝输送外派人员为 主 ...

  9. Struts+Spring+Hibernate处理Lob(Blob,Clob)

    在使用struts+spring+hibernate的开发中,有些时候用户会有数据库存储文件的需求,在数据库中一般会采用Blob字段或Clob字段来存储二进制图片.流媒体或文件.现就将在实际开发中遇到 ...

随机推荐

  1. unexpected problem

    一个比较有趣的字符串问题,问题描述如下 大体意思就是给定一个字符串s以及一个整数m,找出一个能满足以上三个条件的字符串t的个数对10e9 + 7 取余输出. 第二三条是关键,t.s = s.t 举个例 ...

  2. android 反编译操作

    1:首先将apk程序解压: 2:将classes.dex反编译为jar包:$ ./dex2jar/dex2jar.sh classes.dex 将生成一个新的文件classes_dex2jar.jar ...

  3. ASP.NET WEB API 如何使用基于Post的方式传递多个值(二)

    前面我曾经写过一篇文章,是基于HttpContext的请求上下文中读取表单参数,其实还可以将其单独拆分出来. 基于Filter的方式 获取表单值:(核心代码)   public void OnActi ...

  4. 2014.7.8模拟赛【笨笨当粉刷匠】|bzoj1296 [SCOI]粉刷匠

    笨笨太好玩了,农田荒芜了,彩奖用光了,笨笨只好到处找工作,笨笨找到了一份粉刷匠的工作.笨笨有n条木板需要被粉刷.每条木板被分成m个格子,每个格子要被刷成红色或蓝色.笨笨每次粉刷,只能选择一条木板上一段 ...

  5. 戴着镣铐起舞——从logo设计说起

    一天中午走在路上,顺道去看了学校新媒体艺术与设计系的学生优秀作品展.看到一个logo设计时引发了我很大的兴趣,觉得设计的非常清新活泼,不过并没有拍下来,在这里不能贴图.但是logo设计大家应该都有所概 ...

  6. SRM 588 D2 L3:GameInDarknessDiv2,DFS

    题目来源:http://community.topcoder.com/stat?c=problem_statement&pm=12710 采用DFS搜索,第一次写的时候忘了加访问标志,结果状态 ...

  7. 仿糯米弹框效果demo

    代码例如以下: <!doctype html> <html lang="en"> <head> <meta charset="U ...

  8. Servlet登陆功能的实现

    (1)创建动态的Login页面 //登陆界面 package com.lc; import javax.servlet.http.*; import java.io.*; public class L ...

  9. swing入门例子

    // a simple exmple that can show the basis of swing------------------------------------------------- ...

  10. HDU 多校联合练习赛2 Warm up 2 二分图匹配

    Warm up 2 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total ...