首先是对struts的理解。struts是把servlet、jsp以及众多标签库整合在一起的开源web框架,他实现了mvc设计模式。Struts实际上就是对MVC的各部件提供了现成的实现组件。Struts的中央控制器是ActionServlet,当请求到达时,它根据配置文件struts-config.xml的配置参数分配请求给不同的action处理。在请求分配给Action之前,会将请求参数封装在ActionForm对象中,会根据配置参数决定是否先调用validate方法进行验证,成功才会传递给Action,失败则跳转到input属性指定的页面。Action的execute方法执行成功之后会返回一个ActionForward对象,根据配置文件的forward跳转到相应的页面。

Struts实现了MVC设计模式,层次结构清晰,使开发者只关注业务逻辑的实现,便于维护。集成标签库,提供异常处理机制和数据库连接池管理。

然后是对hibernate的理解。hibernate是一个轻量级的开源持久层框架,hibernate在原有三层结构基础上,从业务逻辑层分离出来持久层,专门负责数据的持久化操作,是业务逻辑层可以真正的专注于业务逻辑的开发,不再需要编写复杂易错的SQL语句,使得我们可以随心所欲的使用对象编程思维来操纵数据库。

在配置文件hibernate.cfg.xml中配置好数据库连接,方言等信息,读取配置文件创建configuration对象再产生SessionFactory再创建Session,启动事务,完成CRUD操作,关闭session。

Hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 移植性较好,更换数据库只需要更改配置文件中的参数,支持各种关系性数据库,映射灵活性好。完全面对对象的思想操作数据库。提供缓存机制,延迟加载,有一级缓存(Session级别)和二级缓存(SessionFactory级别),利用缓存降低数据库的访问率。简洁的HQL编程。

最后是对spring的理解。Spring是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的非侵入性容器框架。Spring的核心是IOC和AOP,IOC实现了简单工厂模式,可以很好的解耦合,通过IOC和DI的思想将类与类之间的依赖关系放置在配置文件中。各个类都是相对独立存在的,调用关系有配置文件实现,这样就实现了程序之间的松耦合。(DI的三种注入方式?),AOP是面对切面编程,它将不应该聚合在一起的功能(像事务的管理)从业务操作代码中分离并提取出来,使用DI注入到业务代码中,降低代码的耦合度,提高了代码重用率(AOP实现的两种方式?)。

Spring提供一种管理对象的方法,把中间层对象有效的组织起来。低侵入性设计,DI机制降低了业务对象替换的复杂性,应用服务器之间是可移植的。方便集成各种优秀框架,写出易于测试的代码方便程序的测试,支持声明式事务,解耦合,简化开发,扩展性好。

最新文章

  1. Android 和 H5 通信
  2. Mac 软件篇
  3. 免费打造自己的个人网站,免费域名、免费空间、FTP、数据库什么的,一个不能少,没钱,也可以这么任性
  4. MVP 2015社区大讲堂之:在ASP.NET应用中执行后台任务
  5. 通过eclipse配置Spring MVC项目
  6. HTML的超链接
  7. Sq server 关于存储过程,触发器的一些理论简述
  8. BestCoder Round #35
  9. JavaScript中的作用域与函数和变量声明的提升
  10. jdk安装 java运行编译(不含语法)
  11. 网络安装CentOS 5.3
  12. nvl isnull coalesce
  13. css左右布局的几种实现方式和优缺点
  14. 五十个小技巧提高PHP执行效率(一)
  15. Axure使用心得分享
  16. (转)SQLite内置函数
  17. HDU 3月ACM模拟赛T10 COUNT
  18. mysql多实例配置下,用脚本启动mysql时,出现Please read "Security" section of the manual to find out how to run mysqld as root!
  19. Python 简单soket例子
  20. courator - maven

热门文章

  1. ql的python学习之路-day2
  2. hadoop与spark的处理技巧(一)Top N处理技巧
  3. [Abp vNext 入坑分享] - 7.Automapper与validation的使用
  4. 基于elementUI使用v-model实现经纬度输入的vue组件
  5. GYM101635E Ingredients
  6. 四、$jQuery
  7. Golang源码学习:调度逻辑(二)main goroutine的创建
  8. 50个SQL语句(MySQL版) 问题九
  9. Win2003远程桌面突然无法连接,有没有解决方法?
  10. PHP AES加解密(兼容php5,php7)