j2ee开发之常用开源项目介绍
主要就我所了解的j2ee开发的框架或开源项目做个介绍,可以根据需求选用适当的开源组件进行开发.主要还是以spring为核心,也总结了一些以前web开发常用的开源工具和开源类库
1持久层:
1)hibernate
这个不用介绍了,用的很频繁,用的比较多的是映射,包括继承映射和父子表映射
对于dao在这里介绍个在它基础上开发的包bba96,目前最新版本是bba96 2.0它对hibernate进行了封装, 查询功能包括执行hsql或者sql查询/更新的方法,如果你要多层次逻辑的条件查询可以自己组装queryobject.可以参考它做hibernatedao.也可以直接利用它
2) ibatis
另一个orm工具,apache的,没有hibernate那么集成,自由度比较大
2:springmvc
原理说明和快速入门:
配置文件为:
spring的配置文件默认为web-inf/xxxx-servelet.xm其中xxx为web.xml中org.springframework.web.servlet.dispatcherservlet的servlet-name。
action分发:
spring将按照配置文件定义的url,mapping到具体controller类,再根据url里的action= xxx或其他参数,利用反射调用controller里对应的action方法。
输入数据绑定:
spring提供binder 通过名字的一一对应反射绑定pojo,也可以直接从request.getparameter()取数据。
输入数据验证
sping 提供了validator接口当然还可以使用开源的commons-validaor支持最好
interceptor(拦截器)
spring的拦截器提供接口需要自己编写,在这点不如webwork做的好.全面
(这里提一下webwork和struts的区别最主要的区别在于webwork在建立一个action时是新new一个对象而struts是singlemoule所有的都继承它的一个action,所以根据项目需要合适的选择.)
3:view层
1) 标签库:jsp2.0/jstl
由于webwork或spring的标签确实很有限,一般view层用jstl标签,而且据说jstl设计很好速度是所有标签中最快的使用起来也很简单
2) 富客户端:dojo widgets, yui(yahooui),fckeditor, coolest日历控件
dojo主要提供tree, tab等富客户端控件,可以用其进行辅助客户端开发
yahooui和dojo一样它有自己的一套javascript调试控制台,主要支持ajax开发也有很多tree,table,menu等富客户端控件
fckeditor 最流行的文本编辑器
coolest日历控件 目前很多日历控件可用,集成在项目中也比较简单,这个只是其中的一个,界面不错的说..
3) javascript:prototype.js
prototype.js作为javascript的成功的开源框架,封装了很多好用的功能,通过它很容易编写ajax应用,现在ajax技术逐渐成熟,框架资源比较丰富,比如yui,dwr等等,也是因为javascript没有合适的调试工具,所以没有必要从零开始编写ajax应用,个人认为多用一些成熟的ajax框架实现无刷新更新页面是不错的选择.
4)表格控件:display tag ,extreme table
这两个的功能差不多,都是view层表格的生成,界面也比较相向,可以导出excel,pdf,对spring支持很容易.
相比较而言比较推荐extremetable,它的设计很好功能上比displaytag多一些,支持ajax,封装了一些拦截器,而且最方面的是在主页wiki中有详细的中文使用文档.
5):oscache
oscache是opensymphony组织提供的一个j2ee架构中web应用层的缓存技术实现组件,cache是一种用于提高系统响应速度、改善系统运行性能的技术。尤其是在web应用中,通过缓存页面的输出结果,可以很显著的改善系统的稳定性和运行性能。
它主要用在处理短时间或一定时间内一些数据或页面不会发生变化,或将一些不变的统计报表,缓冲在内存,可以充分的减轻服务器的压力,防治负载平衡,快速重启服务器(通过硬盘缓存).
6)sitemesh
sitemesh应用decorator模式主要用于提高页面的可维护性和复用性,其原理是用filter截取request和response,把页面组件head,content,banner结合为一个完整的视图。通常我们都是用include标签在每个jsp页面中来不断的包含各种header, stylesheet, scripts and footer,现在,在sitemesh的帮助下,我们删掉他们轻松达到复合视图模式.
sitemesh也是 opensymphony的一个项目现在最近的版本是2.2,目前opensymphony自从04年就没有更新的版本了..感觉它还是比较有创新的一种页面组装方式, opensymphony开源组织的代码一般写的比较漂亮,可以改其源代码对自己的项目进行适配.
测试发现sitemesh还存在一些问题,比如中文问题,它的默认编码是iso-8859-1在使用时候需要做一些改动.
7)css,xhtml
这个不用说了,遵循w3c标准的web页面开发.
8)分页标签: pager-taglib组件
pager-taglib 是一套分页标签库,可以灵活地实现多种不同风格的分页导航页面,并且可以很好的与服务器分页逻辑分离.使用起来也比较简单.
9)form: jodd form taglib
jodd form taglib使用比较简单,只要把
闽公网安备 35060202000074号