Struts2
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互,Struts2框架实际上是Struts1和Webwork的综合,它将不同的逻辑功能通过方法的形式封装到一个类中,提高代码的通用性,然后通过配置文件的形式来访问指定类中指定的方法实现逻辑功能.
Struts2框架的核心
Struts2的流程图
- Struts2框架的核心内容
- 拦截器interceptor
- action
- ognl和ValueStack
Struts2处理Http请求的步骤
- 客户端发送一个Http请求
- 这个请求经过一系列的过滤器
- 调用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>
- 如果需要调用Action,就将这个请求交给ActionProxy
- ActionProxy通过Configuration询问框架文件,找到需要的Action类,一般从struts.xml配置中读取配置信息
- ActionProxy创建一个ActionInvocation的实例
- ActionInvocation初始化时,根据配置,加载Aciton相关的所有拦截器Interceptor,通过ActionInvocation.invoke方法调用Action的实现,并执行所有的拦截器
- Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果
Hibernate
Hibernate是基于ORM(Object Relational Mapping,即对象关系映射)的持久层框架,是一个封装jdbc的轻量级框架,主要实现了对数据库的CRUD操作,可以完全脱离底层SQL.
Hibernate中的核心接口和类
Hibernate的核心接口和类一共有6个,分别为Session,SessionFactory,Transaction,Query,Criteria,Configuration.
- Session接口: 负责对象的持久化操作,是线程不安全的
- SessionFactory接口: 负责Hibernate的初始化操作,数据存储的代理对象,并且负责创建Session对象
- Transaction接口: 负责数据的事务操作
- Query接口: 负责数据库及持久化对象的查询操作,可以使用HQL语言或者本地数据库的SQL语句,经常被用来绑定查询参数,限制查询记录数量,并最终执行查询操作
- Criteria接口: 用来创建并执行面向对象的标准化查询,不能在Session之外使用
- Configuration类: 用来对Hibernate进行配置,并对其启动.在Hibernate启动过程中,Configuration类的实例首先定位映射文档的位置,读取配置,创建一个SessionFactory对象.
Hibernate的工作流程
- 创建Configuration对象,并加载cfg.xml配置文件
- 通过Configuration对象构建SessionFactory工厂
- 通过SessionFactory工厂打开一个Session会话
- 开启事务
- 用Session会话进行数据库和持久化对象的CRUD的操作
- 提交事务
- 关闭会话