SSH框架宏观了解

来源:互联网 发布:网络悬疑剧两小无猜 编辑:程序博客网 时间:2024/05/02 04:58

介绍:   

   SSH为struts+spring+hibernate的一个集成框架,是目前流行的一种Web应用程序开源框架。这个集成框架结构清晰、可复用性好、维护方便。  

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


Struts

   MVC框架我们都不陌生吧,那么Struts是基于J2EE平台的MVC框架,所以Struts我们也算是很熟悉了。主要采用Servlet和JSP技术实现。


(1)视图(view)

    在Struts中,视图层包含两个部分,JSP页面和ActionForm。

    ActionForm封装了用户提交的表单信息,其实ActonForm本质上就是JavaBean,这些JavaBean中没有业务逻辑,只提供了所有属性的getter和setter方法,这些属性和用户表单中的输入项是一一对应的。在Struts中就是通过

ActionForm把用户表单信息提交给控制器。

    JSP页面是经典MVC中主要的视图组件,主要是信息显示和控制器处理结果显示的功能。

    除了以上,struts还提供了一个强大的struts标签库,来帮助用户解决显示逻辑,并且利用ActonForm组件将

信息传递到控制层。


(2)控制器(Controller)

     在控制层,struts提供了一个控制器组件ActionServlet,它继承自HttpServlet,并重载了HttpServlet的

doGet(),doPost()方法,可以接受HTTP的响应,并进行转发,同时还提供了使用XML进行转发Mapping(映射)的

功能。


(3)模型(Model)

     模型表示状态和业务逻辑的处理,在一般的web应用程序中,用JavaBean或者EJB来实现系统的业务逻辑。在

Struts中,struts提供Action对象,来管理业务逻辑的调用,帮助用户分离业务逻辑,也就是说struts本身不实现业

务逻辑,但可以调用已完成的业务逻辑。


Struts在项目中的作用:

  主要起控制作用,用于Web层即表示层


struts调用流程:

 

详细过程:

  1.客户端初始化一个指向servlet容器的请求。

  2.请求经过一系列的过滤器(ActionContextCleanUp、SiteMesh)

  3.FilterDispatcher被调用,并询问ActionMapper来决定这个请求是否需要调用某个Action

  4.ActionMapper决定要调用那一个Action,FilterDispatcher把请求交给ActionProxy。

  5. ActionProxy通过Configurate Manager询问Struts配置文件,找到要调用的Action类

  6. ActionProxy创建一个ActionInvocation实例

  7. ActionInvocation实例使用命令模式来调用,回调Action的exeute方法

  8. 一旦Action执行完毕,ActionInvocation负责根据Struts.xml的配置返回结果。


spring

    spring是一个开源框架,在项目中对hibernate和struts进行整合,解决层与层之间的耦合问题。Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及VO无缝整合。

    spring的特点:IOC容器、轻量、面向切面、容器

    在项目中的作用:

    Spring的IoC来实现组件之间的依赖关系注入,上层框架不会渗透到下层组件,提高组件移植性和重用性,使得程

序更灵活,上层框架不依赖实现而是依赖于抽象(委托接口)、使得实现类的变化不会影响上层组件,解决了层与层之

间的藕合带来的维护或升级困难SpringAOP 是面向方面编程,实现事务处理、日志服务等与业务无关的系统服务,实

现插件式编程。 


Hibernate

   Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以

随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何场合使用JDBC,既可以在Java的客户端程序

使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,

完成数据持久化的重任。

  项目中的作用:

    1、解决程序与数据库的依赖,即使用了Hibernate之后,以后更改数据库不需要更改代码,因为Hibernate会根据

数据库方言来生成对应的SQL语句;

    2、是对JDBC的轻量级封装,简化持久层的代码,提高开发速度。

 

 Hibernate的核心接口:

    Session、SessionFactory、Transaction、Query和Configuration

    Session接口:

    Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常

见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的

HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象称为

用户session。


  SessionFactory接口:

     SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工

厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory

就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。

   Configuration接口:

   Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,

Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。


   Transaction接口:

    Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。


   Query和Criteria接口:

    Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。


SSH架构图:

   


总结:

    对ssh的理解还比较偏理论化,理解地不是很深,还需要多多实践,加油!

    


0 0
原创粉丝点击