简介:这是理解jstl.struts.spring.ibatis/hibernate/jdbc的详细页面,介绍了和java,,理解jstl.struts.spring.ibatis/hibernate/jdbc有关的知识、技巧、经验,和一些java源码等。
接触java已经有一段时间了。其中学习了不少的框架,从基本的java语法到j2ee基本都有一定的理解和认识,现在我自己的理解总结以下,以后参考。
展现层:
首先我们谈论展现层的东西,现在比较流行的就是jsp,jstl,el,strutstag,springtag,自定义标签库等,我们在选择的时候可以选其中的任何的一种,但是比较以下这些标签的特点,我个人觉得还是选择jsp+jstl+el来做为项目的展现层比较合适,应为
1 jstl是j2ee规范里面有明确规定的.是一种规范。
2 用的比较普遍,遇到问题后可以比较容易的找出解决方案。
3 strutstag,springtag都是开源组织自己定义的一些标签库,不易与扩展。
控制器层:
现在用的比较多的有struts,springmvc,jsf。个人以为struts的优先级高于spring,spring的优先级高于jsf,
首选struts
其次springmvc
再次jsf(最大的特点是事件驱动,一个表单可以处理多个事件。与struts的最大区别)
业务层:
用springioc来处理业务逻辑类之间的依赖关系。把类之间的依赖交给spring容器来处理。代码的耦合性降低。
持久层:
现在流行的有jdbc,hibernate,ibatis,现在很多的项目采用struts+spring+hibernate的方式来处理,我认为在持久层的选择上面要看项目的数据库的把握能力,并且要理解这些持久层框架的优缺点,然后在选择,我认为:
jdbc: 特定的项目(对数据库要求比较特殊的情况下用,或则,小型)
优点:1和数据库直接打交道 2在有些情况下执行的效率会比较高。
缺点:比较难维护,容易被sql注入。
hibernate:
优点:实现了对象和数据的映射(or/m)通过维护java对象来维护数据库表。
缺点:对数据库要求比较高,并且对数据库的支持相对简单,不能应对复杂多变的数据库环境。
ibatis:
优点:对数据库支持比较好,假如你的项目组经常受到数据库小组的困扰,最好采用这个。
缺点:配置比较繁琐。