1> 客户端浏览器发出HTTP请求.
2> 根据web.xml配置,该请求被FilterDispatcher接收
3> 根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton
4> Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。
5> Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面
6> 返回HTTP响应到客户端浏览器
3. 工作原理
1> 客户端初始化一个指向Servlet容器的请求
2> 这个请求经过一系列的过滤器(Filter)
3> 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action
4> 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy
5 > ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类
6> ActionProxy创建一个ActionInvocation的实例。
7> ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
8> 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。
4. 为什么使用struts2?
1> 开源的mvc框架
2> 纯pojo的Action
3> 更好的标签特性
4> 易测试
5> 易扩展
------------------------------------------Hibernate部分-----------------------------------------
1> 通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件
2> 由hibernate.cfg.xml中的<mapping resource="com/xx/User.hbm.xml"/>读取并解析映射信息
3> 通过config.buildSessionFactory();//创建SessionFactory
4> sessionFactory.openSession();//打开Sesssion
5> session.beginTransaction();//创建事务Transation
6> persistent operate持久化操作
7> session.getTransaction().commit();//提交事务
8> 关闭Session
9> 关闭SesstionFactory
3. 为什么使用Hibernate?
Hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码
Hibernate是一个基于jdbc的主流持久化框架,是用优秀的orm实现,它很大程度的简化了dao层编码工作