SSH框架总结

Struts2

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互,Struts2框架实际上是Struts1和Webwork的综合,它将不同的逻辑功能通过方法的形式封装到一个类中,提高代码的通用性,然后通过配置文件的形式来访问指定类中指定的方法实现逻辑功能.

Struts2框架的核心

Struts2的流程图

在这里插入图片描述

  • Struts2框架的核心内容
    • 拦截器interceptor
    • action
    • ognl和ValueStack

Struts2处理Http请求的步骤

  1. 客户端发送一个Http请求
  2. 这个请求经过一系列的过滤器
  3. 调用FilterDispatcher,其询问ActionMapper来决定这个请求是否需要调用Action
    	<filter>
        	<filter-name>strtus2</filter-name>
        	<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
      	</filter>
     	<filter-mapping>
        	<filter-name>strtus2</filter-name>
        	<url-pattern>/*</url-pattern>
      	</filter-mapping>
    
  4. 如果需要调用Action,就将这个请求交给ActionProxy
  5. ActionProxy通过Configuration询问框架文件,找到需要的Action类,一般从struts.xml配置中读取配置信息
  6. ActionProxy创建一个ActionInvocation的实例
  7. ActionInvocation初始化时,根据配置,加载Aciton相关的所有拦截器Interceptor,通过ActionInvocation.invoke方法调用Action的实现,并执行所有的拦截器
  8. Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果

Hibernate

Hibernate是基于ORM(Object Relational Mapping,即对象关系映射)的持久层框架,是一个封装jdbc的轻量级框架,主要实现了对数据库的CRUD操作,可以完全脱离底层SQL.

Hibernate中的核心接口和类

Hibernate的核心接口和类一共有6个,分别为Session,SessionFactory,Transaction,Query,Criteria,Configuration.

  1. Session接口: 负责对象的持久化操作,是线程不安全的
  2. SessionFactory接口: 负责Hibernate的初始化操作,数据存储的代理对象,并且负责创建Session对象
  3. Transaction接口: 负责数据的事务操作
  4. Query接口: 负责数据库及持久化对象的查询操作,可以使用HQL语言或者本地数据库的SQL语句,经常被用来绑定查询参数,限制查询记录数量,并最终执行查询操作
  5. Criteria接口: 用来创建并执行面向对象的标准化查询,不能在Session之外使用
  6. Configuration类: 用来对Hibernate进行配置,并对其启动.在Hibernate启动过程中,Configuration类的实例首先定位映射文档的位置,读取配置,创建一个SessionFactory对象.

Hibernate的工作流程

  1. 创建Configuration对象,并加载cfg.xml配置文件
  2. 通过Configuration对象构建SessionFactory工厂
  3. 通过SessionFactory工厂打开一个Session会话
  4. 开启事务
  5. 用Session会话进行数据库和持久化对象的CRUD的操作
  6. 提交事务
  7. 关闭会话

Spring

SSH整合后的工作流程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值