文档介绍:
UI层Struts-MVCAjaxXmlHttpRoquestJSP软件刊第8卷第1期2009年1月软件导刊Software导GuideVol.8No.120092009基于Struts+Spring+Hibernate+Ajax技术的科研管理系统设计傅鹂,殷旻昊(重庆大学软件学院,重庆400044)摘要:科研管理系统业务流程复杂,形势变化繁复,使用J2EE框架技术开发是最佳选择之一。基于开源的Struts+Spring+Hibernate+Ajax技术设计了一套科研管理系统,对其框架设计、业务模块分析以及具体实现进行了详细的说明。关键字:Struts+Spring+Hibernate+Ajax;MVC;科研管理系统中图分类号:TP311.5文献标识码:A文章编号:1672-7800(2009)01-0134-030引言实现出基本的Java对象,然后写出基本的Dao接口,并给出Hibernate的Dao实现,这样就可以通过Hibernate框架实现的高校科技处是主管本校科学研究工作的职能部门,随着现代信息技术的蓬勃发展,基于B/S模式的科研管理系统已在DAO类来实现Java类与数据库之间的转换和访问,然后由Spring来完成业务逻辑处理。整合的架构设计图如图1所示。其工作中得到了广泛的应用。科研管理业务流程复杂,形式变化频繁,限于早期开发技术的不完善,当前使用的科研管理系业务层持久层统大多功能不全,用户界面不够友好,且形式固定,改动困难。基于J2EE框架的Web应用,在保留普通J2EE技术安全性、扩展性、平台无关性以及可维护性上的优势的同时,弥补了其因显示、业务和数据的高耦合而造成的诸多问题,已成为当前管SpringTransactionsClassesHibernnate/HibernateService理系统的主要解决方案之一。本文即采用当前业界流行的Struts+Spring+Hibernate+Ajax开源框架技术,设计开发了一个领域模型业务对象功能完善、友好性强的科研管理系统。图1总体架构设计1系统总体设计总体架构在此架构中,由Struts负责降低系统总架构的耦合性,由Spring负责复杂的业务逻辑处理,由Hibernate负责降低业务模型部分的开发难度,由Ajax负责在页面进行监听和异步处Struts、Spring、Hibernate的优势分别在于J2EE的表示层、业务层、持久层,采用3层框架的整合模式,可以取长补短,极大地改善系统的伸缩性、可维护性、可扩展性及可重用性。本文中集成框架的方法是利用Struts架构作为系统的整体基础架理。信息系统采用此集成架构开发,无论在整体架构还是在局部的复杂业务模型中都有了更低的耦合性,而且提高了灵活性与可维护性,在性能速度、交互性和体验性上也有很大的改善,这样便消除了单独使用这些框架开发系统的不足。构,由其负责MVC的分离,Ajax则作为Struts在表示层上的补1.2系统功能模块划分充。在Struts架构的模型部分,利用Hibernate架构来提供持久层支持,业务层用Spring支持。具体做法是用面向对象的分析方法根据需求来提出一个模型,将这些模型采用Java语言来依据科研处工作的实际需要和管理系统自身的特点,科研管理系统可分为三大部分:维护系统、日常业务处理系统和统计奖励系统。维护系统负责对管理系统的维护,包括日志管理作者简介:傅鹂(1962-),男,四川三台人,重庆大学教授,研究方向为信息与网络安全、网络应用与分布式应用、多媒体与智能系统研究;殷旻昊(1984-),男,山东淄博人,重庆大学硕士研究生,研究方向为软件工程、网络安全。第1期傅鹂,殷旻昊:基于Struts+Spring+Hibernate+Ajax技术的科研管理系统设计-135-和用户权限管理两个模块。日常业务处理系统负责对科技处日常工作的处理,包括项目管理、经费管理、论文管理、专著管理、专利管理、获奖管理6个模块。统计奖励系统负责对以上源数据的高级查询统计、对教师的奖励以及对985平台的管理等,包括统计查询、奖励管理、985管理3个模块。系统功能模块图如图2所示。科研管理系统本系统采用Ajax技术来改善系统的交互性和体验性。A-jax的核心是JavaScript对象XMLHttpRequest,它使用户能通过JavaScript向服务器提出请求,并处理响应,而不会阻塞用户,这对Struts框架在表示层上是有益的补充。下面举系统中的一个例子来说明Struts和Ajax在表示层的应用。在985管理的人员添加页面中,当用户在jsp页面中填写完人员姓名、所属平台及聘任职务后,javaScript中相应的XMLHttpRequest回调函数将异步派发XMLHttpRequest请求,后台将根据提供的姓名、平台及职位从数据库相应码表中得到维护系统日常业务处理系统统计奖励系统该人员个人基本信息、聘任标准、待遇等。随后服务器响应会传到浏览器,在解析请求参数后,Servlet执行必需的应用逻辑,将日志管理用户权限管理项目管理经费管理论文管理专利管理专著管理获奖管理查询统计985管理教师奖励响应信息封装到XML中,并将它写回HttpServeletResponse。回到客户端,注册在XMLHttpRequest上的回调函数现在会被回调用以处理由服务器返回的数据,并通过更新用户界面来响应图2科研管理系统功能模块服务器传输过来的数据。信息完成后提交时,所有需要保存的数据通过表单提交给相应的Servelet,由其根据配置文件调用2系统详细设计数据层本系统数据库设计采用符合第3范式标准和非规范化相相应Action进行后续处理。这样做的好处是使视图层、控制层、模型层完全分离,同时加入了Ajax的异步处理功能,使系统无论是在安全性、可扩展性还是交互性上较之普通设计都有明显提高。结合的方式处理数据表,根据具体的情况选用了适当的规范标2.3业务层准。这样整个数据库设计允许有适当的冗余,既提高了数据库的运行效率,又使其数据操作不失灵活性。在数据库安全应用方面,本系统采用基于触发器的访问控制。触发器可以在特定事件之前或之后触发以提供更具活力的安全性审核。如果用户的语句没有通过触发器内的安全性审核,则从触发器主体内发出的错误将会防止表被修改。数据库建成后,由Hibernate通过Properties文件建立数据库链接,通过映射文件将数据库表映射为java类,表中的每条数据作为一个类实例,而数据列值则映射为实例属性。接下来只需要创建提供数据访问服务的接口层并定义出对外的访问接口,就可以实现程序的扩展,从而将数据层完全独立出来。业务层负责处理应用程序核心的业务逻辑,同时为表示层组件提供必要的接口服务。本系统中使用Spring框架来管理业务层,框架整合的解决方案是将Struts动作管理委托给Spring,不过首先需要在Struts的相关模块配置文件中导入Spring,以教师奖励模块为例,在其配置文件中加入:<plug-inclassName="org.springframeworK.w
12>
内容来自淘豆网转载请标明出处.