导读:在结束了BS之后,接触到的第一个项目算是网上商城了。这次用到了和之前都不一样的框架:SSH。这个项目就和之前学牛腩一样,有着里程碑的意义。当然了,这也就意味着,什么都是新鲜的,接触到的东西,有时候压根儿就不知道是怎么回事儿,但结合牛腩的经验来看,这其实并没有什么大问题,将基础理解了就行。接下来,就介绍一些SSH框架的基础概念。

一:什么是SSH

SSH 为 struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。其架构图为:

集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data
Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。

SSH 框架的具体流程为:

当浏览器发出请求i,首先是由Struts通过配置文件将ActionServlet接收到的请求委派给相应的Action处理,然后经过Spring IOC容器负责调用业务层组件(4)和数据持久层组件(5)完成业务处理,以及对应的数据持久化。而在数据持久层中,采用Hibernate对象映射处理数据并返回结果。

二、用三层的眼光看SSH

在SSH框架中,依旧可以东西出三层的影子。结合到上面的SSH流程图,我们可以大致划分出这样的几个类型:JSP页面,Action,Service,Dao,Struts、Spring。那么用三层来划分则是:UI层(JSP页面、Action模型)、BLL(Service/FormBean)、DAL(Dao/JavaBean),B层和D层和三层并没有明显的区别。那么SSH和三层的不同点在哪儿呢,我认为是:

在三层中,UI层直接调用B层,通过entity传参。而在SSH中,一个做好的页面,首先需要调用Action处理器,在Action中调用Service,进而由Service调用Dao。而传参,则是通过模型驱动。在调用Action的时候,是通过Struts的配置而决定具体调用哪一个Action,不对,或者说一个Action通过Struts配置调用哪一个页面更为合适(依赖倒转),而在三层中,但我们需要调用B层时,是使用New关键字,新建一个对象,而在SSH里面,而是通过Spring注入的形式而定。

三、总结

SSH框架在刚开始接触的时候,其实还是比较陌生的,但如果用学过的知识去解释它的时候,又变得不那么困难。在理解这个SSH框架的时候,上面的两张图给我很大帮助,有时候通过文字难理解的时候,不妨画张图出来帮助理解,更为形象化。

【SSH 1】SSH框架的基本理解的更多相关文章

  1. 第1章 ssh和SSH服务(包含隧道内容)

    本文对SSH连接验证机制进行了非常详细的分析,还详细介绍了ssh客户端工具的各种功能,相信能让各位对ssh有个全方位较透彻的了解,而不是仅仅只会用它来连接远程主机. 另外,本人翻译了ssh客户端命令的 ...

  2. [转]ssh和SSH服务(包含隧道内容)

    本文对SSH连接验证机制进行了非常详细的分析,还详细介绍了ssh客户端工具的各种功能,相信能让各位对ssh有个全方位较透彻的了解,而不是仅仅只会用它来连接远程主机. 另外,本人翻译了ssh客户端命令的 ...

  3. ssh和SSH服务(包含隧道内容)

    ssh和SSH服务(包含隧道内容) 72.16.10.6:/etc/fstab-->/172.16.10.3:/tmp/a.txt. [root@xuexi ~]# scp 172.16.10. ...

  4. 烂泥:学习ssh之ssh密钥随身携带

    本文由秀依林枫提供友情赞助,首发于烂泥行天下 在上一篇文章<烂泥:学习ssh之ssh无密码登陆>中,我们讲解了如何使用ssh密钥,免密码登陆服务器. 这篇文章我们再来讲解,如何把已经生成的 ...

  5. 烂泥:学习ssh之ssh无密码登陆

    本文由秀依林枫提供友情赞助,首发于烂泥行天下 最近一个月没有写过文章,主要是刚刚换的新工作.新公司服务器OS使用的是ubuntu server版,和以前熟悉的centos还是有很多不同的. 刚好这几天 ...

  6. VPN指定某个程序,其实是改路由表(赛风支持VPN和SSH和SSH+模式)

    其实就是使用IE代理的意思,方法有很多.最简单的就是读取注册表中的代理信息.具体找;\Software\Microsoft\Windows\CurrentVersion\Internet Settin ...

  7. SSH WebShell: SSH在线WEB管理器安装教程 - VPS管理百科

    SSH WebShell: SSH在线WEB管理器安装教程 - VPS管理百科 SSH WebShell: SSH在线WEB管理器安装教程 本站原创 [基于 署名-非商业使用-相同方式分享 2.5 协 ...

  8. 浅谈Cordova框架的一些理解

    前言 因为工作原因,最近需要研究Cordova框架,看了其中的源码和实现方式,当场在看的时候马上能理解,但是事后再回去看相关源码时候却发现之前理解的内容又忘记了,又不得不重新开始看,所以总觉得需要记录 ...

  9. man ssh翻译(ssh命令中文手册)

    本文为命令ssh的man文档翻译,翻译了90%的内容,剩余是一些没必要翻译的东西,请见谅. 如此文有所疑惑,希望我的另一篇文章能解惑: SSH(1)                    BSD Ge ...

随机推荐

  1. 原生js 用正则实现removeclass hasclass getsclass addclass .

    function getByClass(oParent,sClass){ if(oParent.getElementsByClassName){ return oParent.getElementsB ...

  2. 黄聪:WordPress 备案期间临时关闭站点设置404

    在header.php文件顶部添加如下代码即可: <? if( !is_user_logged_in() ){ wp_die('网站备案审核中……', '网站备案', array('respon ...

  3. CXF发布restful WebService的入门例子(服务器端)

    研究了两天CXF对restful的支持.   现在,想实现一个以 http://localhost:9999/roomservice 为入口, http://localhost:9999/roomse ...

  4. MVC 安装

    mvc 4 支持window xp,window 7,window 8, mvc 4 支持vs2010,vs2012 vs2012中包含mvc4; vs2010中需要安装mvc4 安装包:

  5. PLSQL_性能优化系列06_Oracle Soft Parse / Hard Parse软硬解析

    2014-08-11 Createed By BaoXinjian

  6. CF 461B Appleman and Tree 树形DP

    Appleman has a tree with n vertices. Some of the vertices (at least one) are colored black and other ...

  7. NeHe OpenGL教程 第三十九课:物理模拟

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  8. Error: L6218E: Undefined symbol TIM_ARRPreloadConfig (referred from pwm_output.o).

    出错原因:模板FWLIB中没有添加stm32f10x_tim.c文件.添加即可 一般利用库开发,将ppp.c(ppp.c又调用了库stm32f10x_xx.h)写好之后的调用步骤: 1 将ppp.c和 ...

  9. 树莓派:使用OpenCV调用自带的摄像头.

    总所周知,树莓派上,调用摄像头的指令有raspistill和raspivid.若要使用opencv对摄像头进行调用,不少人会出现 cvCaptureFromCAM(0)函数无法找到Pi Cam的错误情 ...

  10. phpStudy(lnmp)集成环境安装

    phpStudy phpStudy » PHP教程 » phpStudy for Linux (lnmp+lamp一键安装包) phpStudy for Linux (lnmp+lamp一键安装包) ...