【VC++开源代码栏目提醒】:本文主要为网学会员提供“基于STRUTS 和HIBENATE 的实验室教学管理系统的实现 - 期刊论文”,希望对需要基于STRUTS 和HIBENATE 的实验室教学管理系统的实现 - 期刊论文网友有所帮助,学习一下!
2011年3月第1期第75页浙江纺织服装职业技术学院学报随着Web信息系统的广泛应用传统的Web信息系统暴露了许多缺陷如系统的耦合性高修改、维护困难等其主要原因在于页面逻辑、业务逻辑和数据逻辑糅合在一起所导致的而采用MVC的软件分层思想则较好的解决上述
问题。
本文就当前Web技术的发展采用Java环境下实现MVC设计模式的Struts框架和实现数据持久化的Hibernate框架结合起来开发实验室教学管理系统提高系统的实用性、灵活性克服传统Web系统的缺点。
1MVC设计模式和
开源框架1.1MVC设计模式MVCModel-View-Controller设计模式是一种用户界面软件开发设计模式该模式最早是由smalltalk语言研究团提出的在MVC设计模式中它把应用程序分成了模型、视图及控制器3个核心部分其关系如图1所示。
1.1.1模型Model模型就是业务流程/状态的处理以及业务规则的制定。
业务模型的设计可以说是MVC的核心模型中封装了用户数据和处理数据的业务逻辑体现了应用程序的当前状态可以将用户数据状态的变化提供给多个显示该数据的视图共用。
1.1.2视图View视图代表用户交互界面即用户窗口既接受用户输入也把模型数据状态显示给用户但是视图不负责何业务逻辑处理仅仅是将用户输入数据传递给控制器或将模型数据显示给用户。
对于Web应用来说可以概括为HTML界面但有可doi10.3969/j.issn.1674-2346.2011.01.018基于Struts和Hibenate的实验室教学管理系统的实现宁可摘要首先对基本的MVC设计模式进行阐述并借鉴MVC架构模式对JavaWeb开发方式进行论述剖析了当前被广泛应用的
开源设计框架Struts2和Hibernate3的工作原理最后通过DAO和工厂设计模式实现了良好的具有可扩展性的实验室教学管理系统。
关键词实验室教学MVC设计模式Struts2Hibernat3中图分类号G40-058文献标识码C文章编号1674-2346201101-0075-07————————————收稿日期20101224作者简介宁可男浙江纺织服装职业技术学院讲师浙江宁波315211浙江纺织服装职业技术学院学报图1MVC设计模式PDF 文件使用 pdfFactory Pro 试用版本创建 www.fineprint.cn2011年3月第1期第76页能为X
HTML、XML和Applet。
1.1.3控制器Controller控制器连接了模型和视图从用户接收请求并根据用户请求判断将请求交给哪个模型来完成并调用相应视图来显示模型处理后的用户请求结果。
MVC设计模式将应用程序进行了分层将模型、视图与控制器分离减弱了业务逻辑接口和数据接口之间的耦合以及让视图层更富于变化从而减少了用户界面和业务逻辑之间的耦合使程序设计架构更加清晰、灵活也提高了
软件的可扩展性、可维护性。
1.2Struts2框架最初Struts框架是Apache
开源软件联盟的一个
开源项目Struts框架继承了MVC设计模式的特性最初Struts1.x自身也有不少的缺点需要编写的
代码过多、表现层技术单一、与ServletAPI耦合严重、不便于测试、
代码严重依赖StrutsAPI、单元测试困难等这些缺点促生了Struts2框架的诞生Struts2是基于WebWork框架发展而来它对Struts式框架进行了改进引进了不少新的思想、概念和功能但和原Struts
代码并不兼容。
Struts2是目前最新的基于MVCModel2的Web应用开发框架图2是MVC分层模式下的Struts2架构图。
在struts2中Model对应业务逻辑组件它通
常用于实现业务逻辑方法以及与底层数据库的交互等View对应视图组件通常是指JSP页面但也适用于其他视图显示技术如Velocity或者Excel
文档Control对应系统核心控制器和业务逻辑控制器系统核心控制器为Struts2框架提供的Filter-Dispatcher它根据请求自动调用相应的Action。
而业务逻辑控制器是指开发人员自行定义的一系列Action在Action中负责调用相应的业务逻辑组件来完成处理。
Struts2的工作流程可描述为1浏览器发送请求。
2Control中的核心控制器FilterDispatcher根据请求调用相应的业务逻辑控制器Action。
3拦截器链Interceptors自动对请求应用通用功能如数据校验和文件上传等功能。
4回调Action中的execute方法并在方法体内调用业务逻辑组件来处理请求Model。
5execute方法将调用业务逻辑组件Model得到的数据返还并更新视图层View。
1.3Hibenate框架Hibernate是一种Java语言下的对象关系映射解决
方案。
它是一种自由、
开源的软件。
它用来把对象模型表示的对象映射到基于SQL的关系模型结构中去为面向对象的领域模型到传统的关系型数据库的映射提供了一个使用方便的框架。
通过使用Hibernate框架开发者可以使用面向对象的方式来进行数据库访问从而取代以前使用JDBC进行数据库访问的方式。
通过使用Hiber-nate框架Web应用可以通过面向对象的方式来进行数据库的各种访问操作如插入、更新、删除、查询数据等。
图3为Hibemate详细架构图。
Hibernate处理了JDBC和JTA相关的细节宁可基于Struts和Hibenate的实验室教学
管理系统的实现图2MVC分层模式下的Struts2架构图图3Hibemate详细架构图PDF 文件使用 pdfFactory Pro 试用版本创建 www.fineprint.cn2011年3月第1期第77页浙江纺织服装职业技术学院学报应用程序不用知道这些处理的内容Hibernate将会自动进行处理。
1.3.1会话工厂SessionFactory会话工厂是对属于单一数据库的编译过的映射文件的线程安全的、不可变的缓存快照。
它是会话的工厂类可能持有一个可选的二级数据缓存可以在进程级别或集群级别保存可以在事务中重用的数据。
1.3.2会话Session会话是单线程、声明短暂的对象代表应用程序和持久化层之间的一次对话。
封装了一个JDBC连接也是事务的工程。
保存有必需一级持久化对象缓存用于遍历对象图或通过表示查找对象。
1.3.3持久化对象PersistentObjects持久化对象是声明周期短暂的单线程对象包含了持久化状态和商业功能。
它们可以是普通的
JavaBeansPOJOs唯一特别的是它们从属于且仅从属于一个Session。
一旦Session被关闭它们将从Session中取消联系可以在任何程序中自由使用。
1.3.4临时对象TransientObjects没有从属于一个Session的持久化类的实例。
它们可能是刚被程序实例化还没有来得及持久化的对象或是被一个已经关闭的Session所实例化的对象。
1.3.5事务Transaction可选单线程生命周期短暂的对象应用
程序用它来表示一批不可分割的操作是底层的JDBC、JTA或CORBA事务的抽象。
一个Session在某些情况下可能跨越多个Transaction事务。
1.3.6连接提供者ConnectionProvider可选JDBC连接的工厂和池从底层的Datasource或DriverManager抽象而来。
对应用程序不可见但可以被开发者扩展或实现。
1.3.7事务工厂TransationFactory可选事务实例的工厂对应用程序不可见但可以被开发者扩展或实现。
2实验室教学管理系统的设计由于目前对实验室的管理主要是基于人工方式进行有关数据日常变动较大包括实验室仪器设备的数量、状态及调课等数据信息其信息的不一致性常常导致实验课程冲突、实验室的监管困难、难以及时进行实验室相关数据统计工作、不利于仪器设备的充分利用和实验室开放工作。
因此随着高校管理变革的逐步推进实验室建设进一步规范化、复杂化高校实验室设备及教学管理
工作也变得更加繁重和复杂。
为了便于管理工作的展开提高工作效率有必要加强实验室教学信息化建设实现以校园网为平台建立基于web方式下的实验室教学信息化管理系统实现实验室日常课表安排、实验室基本设备概况、实验室的状态、实验室预约、实验室开放情况和实验室教学信息查询与汇总统计。
2.1系统的体系结构设计本系统采用Struts2和Hibernate3相结合的框架结构进行设计遵循MVC设计模式具体采用5层架构方式其中最上一层为表现层该层主要负责和用户进行交互通过第二层控制层调用业务逻辑层
代码实现判断等操作第三层为业务逻辑层该层专注于实现业务逻辑功能通过调用持久层
代码来操作数据库第四层为持久化层该层专注于持久化操作而不用涉及业务逻辑。
第五层为数据库层即为使用的数据库图4为系统体系结构图。
图4系统体系结构设计图PDF 文件使用 pdfFactory Pro 试用版本创建 www.fineprint.cn2011年3月第1期第78页2.2系统各层次设计描述2.2.1
系统的表示层设计Struts2在视图方面提供了强大的支持主要包括3个方面提供了丰富的标签库资源、对解释语言支持和对模板的支持在Struts2中可以以很少量的
代码实现复杂的网页而且
代码的重用率大幅度提高。
本系统的表示层基于Struts2框架采用了JSTL和OGNL标签库技术实现客户端的信息显示和数据提交不仅使应用程序实现了MVC设计模式结构清晰而且JSP页面也更加简化使页面设计和表示层业务逻辑分离提高了应用程序的可维护性和可扩展性。
2.2.2系统的控制层设计在MVC模式中通过控制器将模型与视图分离控制器可根据用户请求视图调用相应业务模型处理并将处理结果传递给相应用户结果显示视图。
本系统采用Struts2框架中的核心控制器FilterDispatcher来实现控制处理该控制器作为一个filter运行在
web应用中负责拦截所有的用户请求过滤用户请求如果请求以扩展名为“action”结尾该请求将被转入struts2框架处理通过struts.xml文件决定该请求由哪个action业务逻辑组件处理并根据处理结果调入相应的显示视图。
2.2.3系统的业务逻辑层设计本系统的业务逻辑层是通过Java的Action组件实现的该层的业务逻辑组件是通过调用DAO组件再由DAO组件操作数据库数据完成相应的业务逻辑功能。
2.2.4系统的持久化层设计持久化层该层专注于持久化操作而不用涉及业务逻辑。
本系统采用DAO设计模式和Hibernate持久化操作两部分Hibernate部分首先需要新建Hibernate配置文件hibernate.cfg.xml以及持久化类如实体类User.Java和对应的映射文件User.hbm.xml其次为了简化
代码设计建立采用DAODataAccessObject设计模式建立DAO接口、DAO实现类及DAO工厂类。
2.2.5系统的数据库层
设计本系统采用MicroSoftSQLServer2005数据库系统
sqljdbc.jar驱动包可通过hibernateReverseEn-gineering工具自动生成hibernate.cfg.xml配置文件、生成实体类和映射文件。
2.3系统功能模块的实现本系统具有多个模块但是各个模块的设计原理相同其中以“实训课表”查询操作为例典型地利用了Struts框架和Hibernate框架的设计体现了2种架构结合的特点并以此为例对主要层次的设计进行阐述如图5是以struts.xml为控制器实现“实训课表”查询操作的程序流程。
下面具体阐述“实训课表”查询模块的主要层次的设计过程。
2.3.1表示层设计“实训课表”
查询模块主要用于查询实验室的课表安排并可通过查询得到的课表
列表查询该
课程的详细上课地点及时间该模块基于Struts2框架采用了
JSP视图页面运用了JSTL和OGNL标签库技术。
其中网页菜单top.jsp调用“实训课表”的设计
代码如下宁可基于Struts和Hibenate的实验室教学管理系统的实现图5“实训课表”查询操作的程序流程PDF 文件使用 pdfFactory Pro 试用版本创建 www.fineprint.cn2011年3月第1期第79页浙江纺织服装职业技术学院学报课表内容classname_query.jsp典型的显示设计
代码如下2.3.2控制层设计系统的控制主要通过Struts.
xml文件完成Struts.xml文件中有关“实训课表”的
代码设计部分此处采用映射通配符进行描述其中上述的method”1”中的值1等于用户输入的号部分
代码如当接受到“ClassName_QueryClassname.action”请求时即调用ClassNameAction.java中的QueryCl-assname方法当执行完相关业务逻辑并返回“queryclass”时调用转向结果显示文件“classname_query.jsp”2.3.3业务逻辑层设计该层主要专注于实现业务逻辑功能并通过实例化DAO来实现相关数据的操作例如完成实训课表查询的ClassNameAction.java文件中相应的设计
代码如下在该层的设计中业务代理、DAO和抽象工厂设计模式的使用使业务逻辑处理起来更加灵活如果具体业务发生变化在表示层和数据持久化层改变很小这种设计增强了系统的可维护性和灵活性。
2.3.4持久化层设计PDF 文件使用 pdfFactory Pro 试用版本创建 www.fineprint.cn2011年3月第1期第80页宁可基于Struts和Hibenate的实验室教学管理系统的实现持久层基于Hibernate架构采用了DAO设计模式。
在持久层设计中包括了以下3个重要设计步骤首先对Hibernate配置文件hibernate.cfg.xml进行配置进行实体类设计、建立实体类与数据表的映射文件。
Hibernate配置文件hibernate.cfg.xml主要完成从应用程序到数据库的映射典型设计如下“实训课表”实体类TbTimetablebase.java设计
代码如下“实训课表”实体类的映射文件TbTimetablebase.hbm.xml
代码如下其次采用了DAO设计模式和抽象工厂设计模式完成了DAO工厂和Hibernate数据库操作的具体实现典型设计如下PDF 文件使用 pdfFactory Pro 试用版本创建 www.fineprint.cn2011年3月第1期第81页浙江纺织服装职业技术学院学报采用DAO的设计模式和抽象工厂模式减弱了层之间的耦合Hibernate配置实现了数据库高移植性只需要改变Hibernate配置文件不用修改程序设计就可以完成不同数据库之间的更换。
3总结本文介绍了MVC设计模式以及Struts2和Hibernate3框架的基本工作原理将StrutsHibernate框架结合实现MVC模型设计构建了实验室教学管理系统达到二者优势互补的目的使系统设计具备低耦合性以及较高的可维护性和可扩展性。
参考文献1郭峰.我的J2EE成功之路:实战AjaxJSPStruts2SpringHibernateM.北京电子工业出版社2009191.2闫术卓杨强.Struts2技术详解基于WebWork核心的MVC开发与实践M.北京电子工业出版社200880.3李刚.Struts2权威指南--基于WebWork核心的MVC开发M.北京电子工业出版社200773.TheRealizationoftheLaboratoryTeachingManagementSystemBasedonStrutsandHibernateNINGKeThispaperexpoundsthebasicMVCdesignpatterndiscussesthedevelopingmodeofJavaWebbyreferringtoMVCframeworkmodeandanalyzestheopensourcedesignframeworkthatiswidelyusedatpre-senti.e.theworkin
gprincipleofStruts2andHibernate3.Finallyagoodextensiblelaboratoryteachingmanagementsyste
misrealizedbyusingDAOandplantdesignmodel.laboratoryteachingMVCdesignpatternsStruts2Hibernate3责任编辑竺小恩PDF 文件使用 pdfFactory Pro 试用版本创建 www.fineprint.cn