`
thecloud
  • 浏览: 872006 次
文章分类
社区版块
存档分类
最新评论

SSH框架总结(框架分析+环境搭建+实例源码下载)

 
阅读更多

首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活、易于扩展的多层Web应用程序

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

Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持Spring一方面作为一个轻量级的IoC容器,负责查找、定位、创建和管理对象及对象之间的依赖关系,另一方面能使StrutsHibernate更好地工作。

SSH构建系统的基本业务流程是:

1在表示层中,首先通过JSP页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。

2在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。

3在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。

采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。

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

一、Spring

1、什么是Spring?

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

2、Spring的特性

具体自己百度吧

所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码

3、为什么使用Spring?

Spring的以上特性使得开发人员使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

二、Struts

1、什么是Struts?

它通过采用 Java Servlet/JSP 技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。

2、Struts1的核心构成

在 Struts1 中,由一个名为 ActionServlet 的 Servlet 充当 控制器(Controller)的角色,根据描述模型、视图、控制器对应关系的 struts-config.xml 的配置文件,转发视图(View)的请求,组装响应数据模型(Model)。

在 MVC 的模型(Model)部分,经常划分为两个主要子系统(系统的内部数据状态与改变数据状态的逻辑动作),这两个概念子系统分别具体对应 Struts 1里的 ActionForm 与 Action 两个需要继承实现超类。在这里,Struts 1可以与各种标准的数据访问技术结合在一起,包括Enterprise Java Beans(EJB), JDBC 与 JNDI。

在 Struts 1的视图(View) 端,除了使用标准的JavaServer Pages(JSP)以外,还提供了大量的标签库使用,同时也可以与其他表现层组件技术(产品)进行整合,比如 Velocity Templates,XSLT 等。

通过应用 Struts 的框架,最终用户可以把大部分的关注点放在自己的业务逻辑(Action)与 映射关系的配置文件(struts-config.xml)中。

3、Struts1的基本执行流程

详见《STRUTS基本工作流程》

4、什么是struts2

Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品

5、strut2的体系结构

解析:

当Web容器收到请求(HttpServletRequest)它将请求传递给一个标准的的过滤链包括 流程(ActionContextCleanUp)过滤器,然后经过Other filters(SiteMesh ,etc),

接下来需要调用FilterDispatcher核心控制器,然后它调用ActionMapper确定请求那个Action,ActionMapper返回一个收集Action详细信息的ActionMaping对象。

接下来FilterDispatcher将控制权委派给ActionProxy,ActionProxy调用配置管理器(ConfigurationManager) 从配置文件中读取配置信息(struts.xml),然后创建ActionInvocation对象,ActionInvocation在调用Action之前会依次的调用所用配置拦截器(Interceptor N) 一旦执行结果返回结果字符串ActionInvocation负责查找结果字符串对应的(Result)然后执行这个Result Result会调用一些模版(JSP)

来呈现页面,之后拦截器(Interceptor N)会在被执行(顺序和Action执行之前相反)最后响应(HttpServletResponse)被返回在web.xml中配置的那些过滤器和(核心控制器)(FilterDispatcher)。

6、为什么使用Struts?

首先,Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化

另外, struts具有页面导航功能,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。

7、Struts1和Struts2的区别

详见《Struts1 和 Struts2

三、Hibernate

1、什么是Hibernate?

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任

2、Hibernate核心构成

具体就不展开了

3、Hibernate基本执行流程

为什么使用Hibernate?

1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。

2、Hibernate是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作,将软件开发人员从大量相同的数据持久层相关编程工作中解放出来,使开发更对象化了。

3、移植性好,支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了,不用改变hibernate代码。

4、支持透明持久化,因为hibernate操作的是纯粹的(pojo)java类,没有实现任何接口,没有侵入性。所以说它是一个轻量级框架。

最后附上SSH1和SSH2框架搭建的实例,点击即可下载

SSH1框架搭建实例(spring2+struts1+hibernate3)采用旧版本,详见代码中注释

SSH2框架搭建实例(spring3.2+strust2.3.4+hibernate4.2)全部采用最新版本,详见代码中注释

开发环境搭建,参照我的另一篇博客

Win7(64) + eclipse(64)+ tomcat7(64)+ jdk7(64)开发环境配置

分享到:
评论

相关推荐

    SSH框架搭建源码

    里面是SSH框架搭建登录的demo,清楚的描述了SSH框架搭建过程的各种配置,另附博客地址:http://blog.csdn.net/u010539352

    SSH2框架搭建实例源码

    SSH2框架搭建实例(spring3.2+strust2.3.4+hibernate4.2)全部采用最新版本.演示了用户登录和用户管理

    ssh框架搭建实例源码2

    本资源是在“ssh框架搭建实例源码1”基础上...本资源所需的jar包请到“ssh框架搭建实例源码”中下载: http://download.csdn.net/detail/linchengzhi/4097345 http://download.csdn.net/download/linchengzhi/4076267

    ssh框架搭建实例源码4

    本资源所需的jar包请到“ssh框架搭建实例源码2”和“ssh框架搭建实例源码”中下载: http://download.csdn.net/detail/linchengzhi/4100204 http://download.csdn.net/download/linchengzhi/4076267 相关链接: ...

    ssh框架搭建实例源码6

    本资源所需的jar包请到“ssh框架搭建实例源码2”和“ssh框架搭建实例源码”中下载: http://download.csdn.net/detail/linchengzhi/4100204 http://download.csdn.net/download/linchengzhi/4076267 相关链接: ...

    ssh框架搭建实例源码5

    本资源所需的jar包请到“ssh框架搭建实例源码2”和“ssh框架搭建实例源码”中下载: http://download.csdn.net/detail/linchengzhi/4100204 http://download.csdn.net/download/linchengzhi/4076267 相关链接: ...

    ssh框架搭建实例源码

    本资源是一个最简单的一个ssh框架实例,包含完整的代码(dao层有annotation和xml两种实现方式修改applicationContext.xml和hibernate.cfg.xml相应位置就可以切换),数据库ssh.sql文件,和所有的jar包,运行于eclips...

    ssh框架搭建实例源码7

    本资源所需的jar包请到“ssh框架搭建实例源码2”和“ssh框架搭建实例源码”中下载: http://download.csdn.net/detail/linchengzhi/4100204 http://download.csdn.net/download/linchengzhi/4076267 相关链接: ...

    ssh框架搭建实例源码5替换

    本资源所需的jar包请到“ssh框架搭建实例源码2”和“ssh框架搭建实例源码”中下载: http://download.csdn.net/detail/linchengzhi/4100204 http://download.csdn.net/download/linchengzhi/4076267 相关链接: ...

    ssh框架搭建实例源码3

    本资源所需的jar包请到“ssh框架搭建实例源码2”和“ssh框架搭建实例源码”中下载: http://download.csdn.net/detail/linchengzhi/4100204 http://download.csdn.net/download/linchengzhi/4076267 相关链接: ...

    ssh框架搭建实例源码1

    本资源是在“ssh框架搭建实例源码”基础上增加了分页技术,增加一种dao层读取数据库的方法,并对文件...本资源所需的jar包请到“ssh框架搭建实例源码”中下载:http://download.csdn.net/download/linchengzhi/4076267

    ssh框架搭建并简单实例实现

    基于spring、springmvc、hibernate框架的简单实例实现,重点在于如何实行这三个框架基本的架构,帮助初学者在动手中理解框架搭建知识

    SSH三大框架登录小实例,以及spring的登录增删改查实例测试

    SSH三大框架登录小实例,以及spring的登录增删改查实例,这个导入即可运行出来

    SSH2框架搭建实例源码.7z

    SSH2框架搭建实例源码.7z

    Struts2+Spring3+Hibernate3 用户管理系统实例源码

    本例主要是实现了struts2+spring3+hibernate3的 基本框架搭建的注册登录,以及用户增删改查,适于初学者学习。 ... 分页的实现 前端校验 ...4,OK 现在就可以完美运行ssh框架的实例了,开始行动吧!

    基于SSH框架机票订购系统源码(含数据脚本).rar

    基于JavaWeb的航空机票管理系统是为了解决目前航空机票网上预订的空缺,方便广大用户可以使用手机在家可以订机票,系统使用JAVA语言完成基础代码编写,数据库使用MySQL关系型数据库,使用MVC框架完成系统搭建,JSP、...

    Android搭建客户端,实现手机和服务器的交互

    本文介绍了如何使用Android搭建客户端,实现手机和服务器的交互。让我们了解如何采用SSH框架,把服务器端的信息用JSON的形式发送到手机端,附加一个源码实例,服务器端+客户端。

    阿里云java短信验证码源码-manager:经理

    阿里云java短信验证码源码 manager 江西现代学院软件技术协会管理系统,采用SSM框架进行开发,功能正在开发中。。。。 项目的起因 做这个项目的主要原因就是巩固下现有阶段所学的知识,知识点学太多了容易忘记。客观...

Global site tag (gtag.js) - Google Analytics