系统学习SSH(一)--SSH

来源:互联网 发布:美工做一个首页多少钱 编辑:程序博客网 时间:2024/05/17 08:33

          SSH框架发展有了不短的时间,但仍然是当前各公司的主流应用框架之一,下面来具体分析一下它的基本结构,有何好处。

    SSH是Struts+Spring+Hibernate的集成框架。它在职责方面分为四层:表示层、业务逻辑层、数据持久层和域模块层。

    实现思路:Struts作为系统的整体基础架构,负责MVC分离,在Struts框架的模型部分,控制业务跳转;Hibernate对数据持久层提供支持;Spring管理Struts和Hibernate。

    框架流程:

    Web用户先通过JSP实现界面交互,表示层负责接收请求(Request)和发送响应(Response)到Tomcat服务器,然后Struts根据Servlet(以配置文件struts-config.xml形式实现)将接收到的Request委派给相应的Action处理,Action调用Model进行业务实现;业务层管理服务组件的Spring IOC容器负责向Action提供业务模型(Model)和该组件的数据处理(DAO)来完成业务逻辑,并提供事务处理、缓冲池等容器组件来提升性能和保证数据的完整性。持久层则依赖于Hibernate的对象化映射和数据库交互,处理数据请求并返回结果。

    如图:

    

     简单描述:表示层(Presentation Layer)包括了html页面及CSS和JS,我们主要应用的还是JSP和Servlet;控制层(Controller Layer)主要是Struts,包括Struts-config.xml,Action及ActionForm、Struts标签等;业务逻辑是Spring来配置的,包括IOC容器管理、事务管理、配置Struts和Hibernate的文件applicationContext.xml和基本的持久化支持;持久层主要封装了持久化的DAO接口和实现。最后通过连接池和数据库交互,提升系统性能。

     

     SSH包含内容的详细介绍:

     Struts1负责MVC分离,它对Model、View、Controller都提供了对应的组件。

     机制:ActionServlet(核心控制器)首先拦截来自用户的请求,然后分发到对应的Action;Action根据请求调用Model的业务逻辑方法处理请求,返回给JSP页面。Model封装了ActionForm和JavaBean,ActionForm中封装了用户的请求参数,可以通过ActionServlet提供给Action调用;JavaBean则封装了底层的业务逻辑,包括访问DB等。View主要是JSP,我们可以通过Struts1自身提供的标签库和Model进行数据交互。Controller由系统逻辑控制器和业务逻辑控制器组成,分别对应ActionServlet和Action。

     Spring是开源的,主要是为解决企业应用开发复杂性产生的,它使用基本的JavaBean代替EJB,并提供了更多的企业应用功能。

     Spring是轻量级的,同时也是非侵入性的,即Spring中的应用不依赖于特定类。它提供了AOP和IOC机制,并且作为容器管理应用对象的配置和声明周期。

     Spring可以将简单的组件配置、组合成为复杂的应用,灵活配置和管理,使系统更干净、易测试、易于应对变化。

     Hibernates是一个开放的ORM框架,且是相对轻量级的、非侵入性的。它通过5个核心接口对持久化对象进行数据存取和事务控制。这些接口是:SessionFactory、Session、Configuration、Transaction、Query和Criteria。Session接口负责执行被持久化对象的CRUD操作,SessionFactory负责创建Session,Configuration负责配置并启动Hibernate并创建SessionFactory,操作多数据库时,可以为每一个数据库指定一个SessionFactory,Transaction负责事务,Query和Criteria负责数据库查询等。


    总体来讲,SSH框架有很多优点供我们学习借鉴和使用:

    1、实现了MVC模式,层次清晰,开发者可以专注于实现;

    2、Struts提供了标签库、Hibernate封装了DAO,都大大简化了操作,提高了开发效率;

    3、他们通过配置文件来掌握系统与各个部分的关系,使系统灵活可配、易于变化和管理;

    4、Spring和Hibernate都是轻量级的、非侵入性的,便于移植;

    5、Spring实现了AOP、IOC机制,提供了方便的事务、日志服务和依赖管理。


    


            

1 0
原创粉丝点击