框架分析+环境搭建+实例源码 SSH框架总结( 二 )


接下来需要调用FilterDispatcher核心控制器,然后它调用ActionMApper确定请求那个Action,ActionMapper返回一个收集Action详细信息的ActionMaping对象 。
接下来FilterDispatcher将控制权委派给ActionProxy,ActionProxy调用配置管理器(ConfigurationManager) 从配置文件中读取配置信息(struts.xml),然后创建ActionInvocation对象,ActionInvocation在调用Action之前会依次的调用所用配置拦截器(Interceptor N) 一旦执行结果返回结果字符串ActionInvocation负责查找结果字符串对应的(Result)然后执行这个Result Result会调用一些模版(JSP)
来呈现页面,之后拦截器(Interceptor N)会在被执行(顺序和Action执行之前相反)最后响应(HttpServletResponse)被返回在web.xml中配置的那些过滤器和(核心控制器)(FilterDispatcher) 。
6、为什么使用Struts?
首先,Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分 。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展,减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化
另外, struts具有页面导航功能,使系统的脉络更加清晰 。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处 。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显 。
7、 Struts1和Struts2的区别
详见《Struts1 和 Struts2》
三、Hibernate1、什么是Hibernate?
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库 。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任
2、Hibernate核心构成

框架分析+环境搭建+实例源码 SSH框架总结

文章插图
 
具体就不展开了
3、Hibernate基本执行流程
框架分析+环境搭建+实例源码 SSH框架总结

文章插图
 
为什么使用Hibernate?
1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码 。
2、Hibernate是一个优秀的ORM实现 。他很大程度的简化DAO层的编码工作,将软件开发人员从大量相同的数据持久层相关编程工作中解放出来,使开发更对象化了 。
3、移植性好,支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了,不用改变hibernate代码 。
4、支持透明持久化,因为hibernate操作的是纯粹的(pojo)java类,没有实现任何接口,没有侵入性 。所以说它是一个轻量级框架 。
最后附上SSH1和SSH2框架搭建的实例,
SSH1框架搭建实例(spring2+struts1+hibernate3)采用旧版本,详见代码中注释
SSH2框架搭建实例(spring3.2+strust2.3.4+hibernate4.2)全部采用最新版本,详见代码中注释
一些说明:
<!--配数据源 -->
<bean id="dataSource" class="org.Apache.commons.dbcp.BasicDataSource"destroy-method="close"><property name="driverClassName" value=https://www.isolves.com/it/cxkf/yy/JAVA/2019-08-22/"oracle.jdbc.driver.OracleDriver" />以上是oracle的配置 。
如果使用其他数据库,请在lib目录下,加入驱动包 。并修改数据源 。
强烈建议:
这是在CSDN CODE托管的,采用ssh搭建的一个考勤管理系统,maven项目,比原来那个更规范了,建议用这个,而且我会持续更新,逐渐加入各种主流框架,相信我 。
。不过不是eclipse项目,需要手工导入eclipse,最近特喜欢用intellij 。建议直接用git clone 。

【框架分析+环境搭建+实例源码 SSH框架总结】


推荐阅读