基于struts2与ibatisjsp开发框架设计和实现

基于struts2与ibatisjsp开发框架设计和实现

ID:32636520

大小:60.59 KB

页数:8页

时间:2019-02-14

基于struts2与ibatisjsp开发框架设计和实现_第1页
基于struts2与ibatisjsp开发框架设计和实现_第2页
基于struts2与ibatisjsp开发框架设计和实现_第3页
基于struts2与ibatisjsp开发框架设计和实现_第4页
基于struts2与ibatisjsp开发框架设计和实现_第5页
资源描述:

《基于struts2与ibatisjsp开发框架设计和实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于Struts2与iBATISJSP开发框架设计和实现摘要:在JSP应用程序存在异常处理分散、拼接SQL语句繁琐易错、上下层次模块间耦合度高等问题,这些问题使系统难以扩展和维护。本文设计并实现了一个基于Struts2和iBATIS的JSP开发框架,解决上述问题。该框架已经实现并在实际开发中使用。通过对比证明,该框架提高了JSP应用系统的灵活性和扩展性,同时也缩短了开发周期,降低了开发成本。关键词:Struts2;iBATIS;JSP开发框架中图分类号:TP311.52JSP(JavaServerPages)是常见的B/S架构(Browser/Server架构)[1]实现技术之一。

2、在笔者为学校开发“奖助贷系统”和“认证考试报名系统”等JSP应用系统的过程中,遇到了以下问题:(1)为系统所有模块增加、修改或者移除一个功能时,需要改动大量代码,异常处理分散,当异常处理方式改变时,代码修改量也很大;(2)系统中需要大量动态拼接SQL语句,在Java中拼接sql语句非常繁琐,而且容易出错;(3)业务逻辑处理和数据存取之间的接口耦合度高,多个开发人员之间沟通成本也很高。笔者通过对已开发的两个项目进行研究,设计了一个简单的JSP开发框架,来解决上述三个问题。1关键技术简介1.1MVC和Struts2框架MVC框架模式全称是Model-View-Controller[2]

3、o其中,Model表示业务逻辑和数据存取,View表示数据显示,Controller连接Model和View两部分。MVC把数据显示(V)和数据(M)隔离,同时也把两者之间的联系(C)独立出来,三个部分各司其职,互不干扰。Struts2框架[3]对应于Controller部分。它通过编写XML配置文件,控制页面跳转。Struts2的配置代码示例如下:method="query">/list_s.jsp/list_t.jspStruts2的拦截器机制还能对所有请求做相同的处理[4]oStruts2的拦截器机制如图1所示。图1Struts2拦截器原理图1中虚线框起来的部分显示,拦截器可

4、以在Action调用前后增加一些功能模块。使用拦截器,不需要每个Action自己去调用这些功能模块,而是由Struts2的配置自动为Action增加这些模块。这可以解决引言中提出的第一个问题。1.2iBATIS框架iBATIS是一个持久层框架。笔者所在学校的Web应用程序,其数据都来自数据中心,数据库结构对外是不开放的,仅对外提供必需的SQL语句。这种情况下Hibernate等框架并不适用。iBATIS是半自动化的[5]。它实现的是业务对象和SQL语句的映射,非常适合处理这类情况。iBATIS采用的是在SQL语句中使用iBATIS标签来拼接SQL语句,示例代码如下:select*f

5、romtlwhere1=1columnl=#A#从上述代码可以看出,iBATIS比Java拼接SQL语句更简洁,也没有单引号匹配、遗漏逗号等问题。2JSP应用开发框架设计按照MVC的思想,数据显示和业务处理是相互独立的,分开后可以降低耦合度,把Model所代表的业务逻辑和数据存取分开,可以进一步降低耦合度。因此,在笔者设计的框架中,后台采用了比较流行的Action-Service-Dao三层结构。开发框架结构如图2所示。图2JSP应用开发框架结构图2.1异常处理系统运行过程中有可能会遇到网络中断,数据库崩溃等业务无关的问题,还有可能出现用户查找的数据不存在、重复提交数据等业务相关的

6、错误。框架提供了统一的方式处理这些异常和错误。框架的异常处理结构如图3所示。图3异常处理结构图图3中的SystemException和BusinessException是自定义的两个异常类,分别表示业务无关的异常和业务相关的错误。这两个异常类不需要有任何的实质性的处理,只需要能记录异常信息即可。2.2Dao层接口设计Dao层的接口BasicDao仅提供五个方法:publicinterfaceBasicDao{publicListselect(BasicVOvo);publicintselectCount(BasicVOvo);publicvoidinsert(BasicVOvo);

7、publicvoidupdate(BasicVOvo);publicvoiddelete(BasicVOvo);}这样设计,避免了Dao层方法过度重载和对外接口频繁改动。Dao层接口简单固定,所以Service层无需等待Dao层完全实现就可以进行编码和初步测试,开发过程中也不需要和Dao层的开发人员进行过多沟通。假如某个具体的Da。层的类因为性能或者其他原因,需要更多个性化方法,可以自行添加其他方法。3JSP应用开发框架的实现实现这个框架,需要为其加上统一的权限验证和

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。