SSH 为struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。
Struts作为系统的整体基础架构,负责MVC的分离;Hibernate框架对持久层提供支持Spring做管理;管理struts和hibernate
Struts:
Struts有两个主要版本Struts1和Struts2.其中Struts2实现了Struts与webservice的结合。
Struts2工作流程:
1、接受用户发出的HttpServletRequest请求
2、经过filter传递请求,调用FilterDispatcher,将请求转交ActionProxy处理。
3、ActionProxy通过配置管理器寻找配置文件,从而调用Action类
4、ActionProxy创建ActionInvocation实例,而后根据配置文件加载拦截器。
5、ActionInvocation根据配置文件找到返回结果JSP。HttpServletRequest通过文件中配置的过滤器返回。
Hibernate:
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,完成数持久化。
Hibernate持久化操作的步骤,Hibernate初始化创建Configuration;创建SessionFactory实例;创建session实例,建立数据库连接;创建Transation实例,开始一个事务;利用session的方法进行持久化操作;提交结果结束事务;关闭session,断开数据库。
Spring:
Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。
控制反转与依赖注入是同一概念。Spring容器负责创建被调用者实例并将实例,所以称为依赖注入。被调用者的实例创建工作不再有调用者创建而是由spring创建,所以称为控制反转。
面向切面是面向对象编程的完善,采用横切技术将封装好的对象破开,将其中对多个对象产生影响的公共行为封装成为一个可重用的模块。从而实现将与业务无关,却被业务模块调用的逻辑提取并封装起来。
SSH架构的使用实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离,提高了系统的可复用性。