SSH三者的作用(JavaWeb)

来源:互联网 发布:棋牌室软件 编辑:程序博客网 时间:2024/06/05 17:10

SSH:

1) struts 负责 web 层 . 
ActionFormBean 接收网页中表单提交的数据,然后通过 Action 进行处理,再 Forward 到对应的网页。 
  在 struts-config.xml 中定义 <action-mapping>, ActionServlet 会加载。 

   struts在SSH 框架中起控制的作用,其核心是 Controller, 即 ActionServlet, 而 ActionServlet 的核心就是 Struts-confi g.xml. 主要控制逻辑关系的处理。Struts控制层

2) spring 负责业务层管理,即 Service (或 Manager). 
1.service 为 action 提供统计的调用接口,封装持久层的 DAO. 
2.可以写一些自己的业务方法。 
3.统一的 javabean 管理方法 
4.声明式事务管理 
5. 集成 Hiberante 

  spring用解耦的,是一个轻量级的控制反转 (IoC) 和面向切面 (AOP) 的容器框架,面向接口的编程,由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控。即由容器动态的将某种依赖关系注入到组件之中 。spring属于控制层+业务层,可以代替Hibernate+Struts。


3) Hiberante ,负责持久化层,完成数据库的 crud 操作 
  hibernate 为持久层,提供 OR/Mapping 。它有一组 .hbm.xml 文件和 POJO, 是跟数据库中的表相对应的。然后定义 DAO ,这些是跟数据库打交道的类,它们会使用 PO 。

  hibernate是数据持久化层 , 是一种新的对象、关系的映射工具 , 提供了从 Java 类到数据表的映射,也提供了数据查询和恢复等机制 , 大大减少数据访问的复杂度。把对数据库的直接操作 , 转换为对持久对象的操作。Hibernate持久层,主要数据持久化。
 
> 总结:
在 struts+spring+hibernate 的系统中,对象的调用流程是: jsp-> Action - > Service ->DAO ->Hibernate 。 
  其实现流程:根据jsp页面中form 的action 到struts配置文件中找到相应的action 的path属性,再根据name属性找到相应的formBean;再者是根据action到spring配置文件中找对应的bean 的name 属性和 type属性,(spring也要通过插件plag-in的方式进行配置);ActionForm实现表单元素和实体属性的绑定,从action 的parameter属性里找DispatchAction中相对应的方法,执行底层代码。
  Struts是用来做应用层的,他它负责调用业务逻辑serivce层。所以SSH框架的流程大致是:Jsp页面----Struts------Service(业务逻辑处理类)---Hibernate(左到右)struts 负责控制Service(业务逻辑处理类),从而控制了Service的生命周期,这样层与层之间的依赖和强,属于耦合。这时,使用spring框架就起到了控制Action对象(Strus中的)和 Service类的作用,两者之间的关系就松散了,Spring的Ioc机制(控制反转和依赖注入)正是用在此处。
原创粉丝点击