一种Java EE多层架构下的大学物理实验系统
2016-09-14乔逢春张文杰
乔逢春,张 立,张文杰
(北京林业大学 理学院,北京 100083)
一种Java EE多层架构下的大学物理实验系统
乔逢春,张 立,张文杰
(北京林业大学 理学院,北京100083)
物理实验可以有效地培养学生的动手能力、实践能力和创新精神,因此物理实验在大学物理教学中具有重要的地位。基于MVC设计思想,通过Maven管理项目,以Struts2、Hibernate、Spring和Ajax为基本框架来构建整个系统。目的在于克服传统测评方式的弊端,提升物理实验教学管理的自动化程度。实践表明,系统具有良好的稳定性和可扩展性,较好地满足了物理实验教学改革的需求,具有一定的应用价值。
物理实验;SSH2;Ajax;jQuery;UML建模
大学物理实验课是理工科各专业的公共基础课程,是本科生接受系统实验方法和实验技能训练的开端,有助于全方位培养学生的物理思想方法、动手能力、实践能力、创新精神等基本科学素质[1],因此物理实验教学在高等教育中占据着重要地位。
近年来,传统的教学方式逐渐被网络化的教学方式所替代,各种网络学习平台的推出,极大地减轻了老师和学生的负担。通过分析本系统的需求和可行性,以及比较当前互联网科技中几种应用比较广泛的网站开发技术,系统采用MVC设计模式,使用Maven构建项目并管理依赖的jar包,整合Struts2、Hibernate、Spring和Ajax框架来构成Java EE多层架构体系。
1 系统架构
1.1Maven项目管理工具
系统利用Maven构建项目,并对项目进行清理、编译、测试、打包和部署等操作。此外,Maven还是一个依赖管理工具和项目信息管理工具,其利用本地仓库以及配置文件pom.xml管理第三方jar包,实现仓库在多个项目之间的共享[2-3],完美解决了传统方式下的冗余jar包和多版本jar包所带来的问题。
1.2SSH2框架
SSH2框架是由有三种框架集成的,它们分别是基于MVC模式的Struts2框架和基于IoC模式的Spring框架以及对象/关系映射框架Hibernate。在SSH2框架中,Spring充当了一个JavaBean容器,它使用IoC和AOP技术接管了Hibernate的DAO、事务和Struts2的action对象以及service业务层,从而能够充分地管理事务和代理request请求。经过IoC容器的处理后,针对面向接口的编程使系统项目的MVC分层更明确[4]。
SSH2框架的基本业务流程是:在view层中,通过JSP页面接收请Request;Struts2根据其配置文件将ActionServlet接收到的request指定给相应的Action处理;Action调用相应的service,Spring IoC容器向Action提供业务模型(Model)组件和该组件的数据访问对象(DAO)完成业务逻辑,并提供缓冲池和事务处理等容器组件以保证数据的完整性、提升系统性能;持久层则依赖于Hibernate的对象化映射与数据库进行交互,处理DAO请求的数据,并由JSP页面传送response[5-6]。
1.3Ajax框架
基于XML的异步JavaScript,简称Ajax。Ajax的核心就是JavaScript对象XMLHttpRequest,它通过JavaScript向服务器发送请求,并处理服务器响应[7]。
系统的JSP页面中绝大多数请求通过jQuery类库中的ajax()方法发送给服务器。ajax()返回其创建的XMLHttpRequest对象,通过 HTTP请求加载远程数据。系统利用 struts2的ServletActionContext类通过非IoC方式获得response对象,将信息从action层或service层传递给ajax()的回调函数。
相比传统的表单提交方式,Ajax在提交、请求、接收时,都是异步进行的,不需要丢弃整个页面,而是提交时在后台新建一个请求,采用局部刷新技术,因此用户的原始数据得以保留,用户的当前活动不会被阻塞。
2 系统功能设计与实现
本物理实验系统主要是为了方便广大学生学习大学物理实验这门课程而设计的,因此它的功能与同学们的自主学习以及教师的实验安排息息相关。系统主要由管理员/教师端(以下简称管理员端)和学生端两部分组成,其中管理员端由用户管理、通知公告、预习题库、预习安排、成绩管理、实验管理、课程管理、修改成绩八个模块组成,用户管理模块下面又是由教师管理、学生管理、班级管理这3部分组成。学生端由通知公告、我的预习、我的实验、选修实验、成绩查询、修改密码6个模块组成。系统用例图如图1所示。
图1 系统用例图Fig.1 The use case diagram of system
2.1数据库设计
系统数据库总共有8个数据表,包括:用户信息表、班级信息表、课程信息表、物理实验信息表、通知公告表、预习试卷信息表、预习题库表和成绩信息表。为更好地说明各数据表之间的关系,系统通过PowerDesigner软件对MySQL数据库进行逆向工程得到如图2所示的E-R图。
图2 系统数据库E-R图Fig.2 The E-R diagram of the database
2.2通用子功能接口
有一些子功能在多个模块中均有应用,例如分页、模糊查询、文本编辑等。在设计分页功能的过程之中,系统将当前页(currentPage)、页数(pageCount)、每页显示记录的数目(pageSize)和页面查询结果总数(resultCount)作为属性封装成page实体类,结合myPagination插件实现分页,嵌入系统的各个功能模块。系统涉及到的文本编辑均由xheditor文本编辑器来完成,根据需要在后台编写相应的action并配置struts.xml来实现图片上传功能。
2.3登录
用户通过输入网址即可跳转到本系统的登录界面,该页面没有用户权限区分,任何用户都可以进行访问,只有用户登录成功之后才能继续访问本系统。在设计登录的过程中,系统使用了apache shiro安全技术。它为系统提供了一个直观而全面的认证、授权、加密及会话管理的解决方案[8],其中密码采用MD5算法进行加密。shiro配置流程如下:
1)在web.xml中配置shiro过滤器;
2)在 applicationContext.xml中添加 shiro配置:添加shiroFilter、securityManager、lifecycleBeanPostProcessor以及myRealm等Java Bean;
3)实现MyRealm:继承AuthorizingRealm,并重写认证授权方法。
登录界面如图3所示。
图3 系统登录界面Fig.3 The entry interface of system
2.4管理员端
1)用户管理模块:用户管理模块是整个系统的基础,该模块主要由教师管理、班级管理、学生管理3部分组成。所有教师、班级和学生的初始信息都是通过管理员在用户管理模块下面的来添加的,这3个部分之间相互关联,添加时存在先后顺序:首先应该添加教师,有了教师的基本信息后才可以添加班级信息,最后才可以添加学生。其中,在学生管理模块之中,由于学生数量很多,不应采用单个添加的方式,系统采用excel批量导入的方式来进行添加。
2)预习题库模块:该模块初始化的时候分页显示所有必做实验信息。点击实验名称即可查看该实验所有题目及答案;点击“新增预习题目”,教师可以设置题目类型,编辑题目内容和答案,点击“提交”按钮以新增该实验的一道预习题目;点击“编辑预习题目”可以对每道题目的内容和答案进行修改,也可以删除题目。
3)课程管理模块:在新增实验课程的时候,系统综合使用了jQuery的表单验证机制和easy UI的datetimebox、validatebox等插件。其中选修实验课程的名称后用红色字体 (选修)标注,点击名称可以查看选修该课程的学生名单。
4)成绩管理模块:该模块初始化的时候分页显示所有的班级信息,点击“生成excel”按钮,系统使用Apache POI方式在浏览器客户端生成excel文件供教师下载以查看该班级所有学生的成绩;点击学生姓名,可以弹出一个页面以供教师编辑该生的成绩,该页面实质上是利用JavaScript的onchange事件实现的一个简易加、除法计算器。其中总成绩不可编辑,教师可以修改预习成绩和实验成绩,总成绩随之变化。
2.5学生端
1)我的预习模块:学生在实验课程开始之前进入该模块,只有在规定的时间范围之内并且未提交过该实验预习试卷的前提下,才能进入预习试卷做题。当学生第一次点击进入预习试卷的时候,系统从题库中随机抽取该实验4道不同的预习题目组成该同学的预习试卷,并将题目的id记录到数据表的相应字段中去。在预习试卷页面当中,系统为单选题、多选题和判断题设置不同的html标签,当学生点击“保存并退出”按钮时,系统利用jQuery的多种选择器在前台记录学生的做题信息,并采用拼接字符串的方式将所有的答案整合成一个字符串,通过ajax()方法向后台发送请求,方便学生下次继续做题。当学生点击“提交试卷”的时候,系统将学生的答案和题目的参考答案相比较,自动算出预习成绩。图4为该模块的时序图。
图4 预习模块时序图Fig.4 The timing diagram of preview
2)实验模块:该模块是学生在实验室做实验提交实验数据的时候使用的。系统根据每个必做实验的特点和要求,为每个必做实验编写相应的JSP页面。学生只有上课时间才能进入相应的实验页面提交实验数据。对于每个实验,每个同学有两次提交实验数据的机会,系统根据学生提交的实验数据自动算出实验结果并与参考结果相比较,并给予相应的实验成绩。图5为该模块活动图。
图5 实验模块活动图Fig.5 The activity diagram of experiments
3 结束语
大学物理实验系统基于MVC设计思想,通过Maven管理项目,以Struts2、Hibernate、Spring和Ajax为基本框架,紧跟时代前沿,较好地满足了物理实验教学改革的需求,具有一定的应用价值。但是本系统仍然存在一些不足之处,例如没有将所有的实验页面做成一个统一的接口。最初的设想是教师在新增实验的时候可以自行设定物理量、物理量的有效位数以及实验结果的评判标准等等,因为难度较大,取而代之的是根据每个实验的特点编写一个独立的页面,增加了项目的工作量,降低了系统的灵活程度。
[1]邵建新,刘云虎,张子英,等.大学物理实验考核方式的改革与探索[J].物理通报,2010(2):46-48.
[2]董晓光,喻涛.使用Maven构建java项目[J].电子技术与软件工程,2014(10):105.
[3]徐立新,雷相波.应用Maven管理项目 [J].电脑知识与技术,2010,6(10):2404-2405.
[4]高洪岩.基于Struts2+Hibernate+Spring使用开发指南[M].北京:化学工业出版社,2010.
[5]郭广军,谢东,陈利品.基于SSH整合架构的教学支持系统设计与实现[J].计算机工程与设计,2009,30(13):3111-3116.
[6]郭广军,朱昭君,王剑波.基于SSH架构的课程作业与成绩管理系统[J].微电子学与计算机,2010,27(8):157-160.
[7]王向兵.Java EE多层架构Struts2+Spring3+Hibernate3 +Ajax的整合[D].大连:大连海事大学,2009.
[8]杨运平,吴智俊.Apache Shiro安全框架在技术转移服务系统中的应用[J].计算机与现代化,2014(3):158-160.
A system of collegiate physics experiment based on the multilayered architecture of Java EE
QIAO Feng-chun,ZHANG Li,ZHANG Wen-jie
(College of Science,Beijing Forestry University,Beijing 100083,China)
Physics experiment can effectively develop hands-on ability,practical ability and innovative spirit of students,therefore it plays an important role in the teaching of collegiate Physics.This paper introduces a system of collegiate Physics Experiment based on MVC design ideas,project of which was managed by Maven,and the basic framework of which consists of Struts2,Hibernate,Spring and Ajax.The goal is to overcome the disadvantages of traditional testing methods and improve the automation of teaching management of physics experiment.It is certified that the system is stable and expandable,meet the needs of the teaching reform of physics experiment in a good way,and has a certain value.
physics experiments;SSH2;ajax;jQuery;UML modeling
TN919
A
1674-6236(2016)02-0038-04
2015-03-17稿件编号:201503226
乔逢春(1994—),男,山西临汾人,助理工程师。研究方向:电子技术与应用。