APP下载

基于JSP的在线考试系统的设计与实现

2015-01-28戚娜

电子设计工程 2015年19期
关键词:个人信息试卷考试

戚娜

(陕西工业职业技术学院 陕西 咸阳 712000)

随着计算机技术与网络技术的不断发展,利用计算机在线考试取代传统的手工考试已成为一种趋势。传统的考试方式至少需要六个步骤,即人工命题、审题、印刷、学生考试、人工阅卷、成绩评定。显然,随着考试类型的不断增加及考试要求的不断提高,首先试题的难度水平难以保持稳定,其次题型单调、知识覆盖面窄,易导致猜题押宝,死记硬背;第三,缺乏有效的办法保证评分质量,评分误差大;第四,多采用主观题,而主观题难以使用电子计算机阅卷,只有靠教师评阅,使大型考试的评卷工作费时费力[1]。因此,为了适应新形势的发展和需要,在线考试系统油然而生。

1 系统主要技术介绍

1.1 JSP技术

JSP全名为Java Server Pages,Java服务器端页面技术,它使用Java编程语言编写类似XML的标签,用来封装产生动态网页的处理逻辑[2]。其根本是一个简化的Servlet设计,它实现了HTML语法中的JAVA扩张。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易[3]。

1.2 JavaScript技术

JavaScript是适应动态网页制作的需要而诞生的一种新的编程语言,是一种由Netscape的Live Script发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl遗留的速度问题,为客户提供更流畅的浏览效果[4]。如今越来越广泛地应用于Internet网页制作上。JavaScript在HTML基础上,开发出交互式的Web网页。在Web网页中,用户可以添加更多的元素和内容,并且对重复有规律的HTML文段进行了简化,缩短了下载的时间,并对用户的操作及时响应,对提交的表单及时的检查,无需浪费时间交由CGI验证。

1.3 Tomcat服务器

Tomcat是一个轻量级的Web应用服务器,实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,对系统资源占用少,扩展性好,支持邮件服务和负载平衡等常用的功能,而且还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能[5]。在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。

1.4 S2SH框架

S2SH(Struts2+Hibernate+Spring)是 Java EE开发平台中的框架,典型的三层构架体现MVC(模型Model,视图View和控制)思想,其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,利用Hibernate框架对持久层提供支持,业务层用Spring支持[6]。具体的做法:首先,以面向对象的思想为指导,把用户的需求转化为具体的模型,其次将这些具体的模型用Java的基本对象进行实现,再次编写基本的DAO接口,最后给出Hibernate的DAO实现。采用 Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring完成业务逻辑。

2 系统设计与分析

2.1 系统设计思想

本系统在面向对象设计思想的指导下,提出了采用分层的模块化来设计整个系统。针对学院的各级用户,把该系统分成几个相对独立的模块,而各个模块之间采用数据流的方式相互连接,这样降低了各个模块之间的耦合性,方便系统运行,提高系统安全性。但这些相对独立的模块采用集中式管理的办法,使该应用程序有较强的可操作性和易扩展性。

2.2 系统总体结构设计

本系统是基于B/S架构,采用分层结构设计思想。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成了三层3-tier结构。在软件体系架构的设计中,最常见最重要的就是分层式结构。一般的分层式结构有三层,分别为数据访问层(持久层)、业务逻辑层(领域层)和表示层。每层都由一组相关的组件或类构成,共同完成既定的功能。层与层之间存在相互的依赖关系,每层对自己的上层都公开自己的API。因此,上层组件会依赖下层组件的API,而下层组件则不依赖于上层组件。当其中的某一层发生了变化,只要它的API不变,就不会影响其它层。这样做既减轻了系统维护和升级的成本又大大减轻了客户端的负荷,降低了用户的总成本(TCO)。

2.3 系统主要功能分析

在线考试系统是一个为教师、学生以及教务管理员提供帮助的软件系统,本系统的用户主要有3种,即教师用户、学生用户和管理员用户。只有被授权的用户才可以使用本系统的资源。其中管理员用户的权限最大,主要对学生、老师、院系、专业、试卷等的信息管理,添加修改学生、教师信息,添加试题、试卷和审核教师制作的试卷以及上传的试题,并在线审核教师提出的课程申请,提供管理员的信息维护;教师用户通过登录该系统能够修改完善个人信息,添加维护试题,在线制作试卷,查询成绩,成绩分析,以及在线阅卷,课程申请等;学生用户通过登录该系统能够修改个人信息,进行在线进行考试,成绩查询等。如图1所示。

图1 系统功能模块图Fig.1 The functionmodule chartof the system

3 系统设计与实现

3.1 系统整体部署

本系统整体部署包括服务器和客户端,如图2所示。

图2 系统部署图Fig.2 The deployment diagram of the system

3.2 系统主要功能实现

3.2.1 系统代码结构

在线考试系统代码主要分为3个部分,如图3所示。src包主要放的是java类、封装Action和数据库操作、业务逻辑、过滤器、拦截器及实体类等重要代码,以及部分的框架配置文件;JRE System library 下面六个包全是 JAR 包,java、struts、hibernate、spring及数据库连接驱动等重要的封装类都在这些jar包中;Web Root包中则主要是JSP页面,还有就是图片、Flash动画、音视频等资源文件和JavaScript代码以及CSS样式表,还有部分的框架配置文件。结构完全遵循了MVC结构的思想,每个模块处理不同的需求。

3.2.2 登录模块

用户登录模块比较简单,为防止用户操作错误,使用了Ajax技术,使得界面无刷新,动态更改及显示界面内容,给用户比较好的操作体验。在登录操作过程中,一般发生的错误有用户输入了错误的用户名或密码、或验证码输入错误,系统对上述情况的判断分别在前台及后台检验。前台主要检验数据的结构、长度等正确性,在当Ajax将数据提交到后台后,获取后台数据库的权限信息,并在前台显示在权限选择中,拥有了极大的灵活性。为保证系统的安全,系统使用了验证码。

图3 系统文件结构图Fig.3 The file structure of the system

3.2.3 教师模块

教师根据自己的用户名及密码成功登陆后,可以查看当前的代课信息是否正确,如不正确,需要进行课程申请;对于新申请的课程,教师需要进行试题库的建立,以备考试组卷所用;可以查看个人信息是否正确并进行修改;可以管理授课学生信息,为他们指定考试的试题库;如果试卷中含有主观性试题,待学生提交试卷后,系统会提醒教师在线批阅试卷。

教师课程申请界面的主要代码如下:public String ApplyCourse(){if(ca!=null)

{ Teacher te=new Teacher();te.setTeacherId (session.getAttribute ("SESSION_TEACHERID").toString());

ca.setTeacher(te);

Majorm=new Major();

m.setNo(ca.getMajor().getNo());

College co=new College();

co.setNo(ca.getCollege().getNo());

ca.setMajor(m);

ca.setCollege(co);

ca.setState(0);

ca.setNo(ca.getCollege().getNo().substring(0,2)+"-"+(new Date()).getMonth()+

""+(new Date()).getDate()+""+(new Date()).getDay()+""+

ca.getMajor().getNo().substring(0,1));courseApplyService.addCourseApply(ca);return"applySuccess";}

return null;}

3.2.4 学生模块

这一功能模块主要是由学生来完成所有的操作。学生根据自己的用户名和密码成功登陆后,查看个人信息是否正确,如不正确可单击个人信息进行个人信息的修改;查看当前的考试科目,考试科目是JSP调用业务逻辑动态显示,与学生所在院校包含的专业科目保持一致,选择要进行考试的科目,点击开始考试进入考试界面,通过action处理随机组卷得到一张教师设置的符合要求的试卷,进行考试,当试题较多时,后台action会将数据分页显示,由用户在前台点击下一页进入试题的下一页显示;通过试卷浏览检查试卷中的错误并进行修改,交卷;通过单击查询成绩获得考试分数;通过单击成绩分析可以对本次考试进行综合分析,帮助学生了解本门课程中存在的问题;安全退出系统。

学生成绩的表格显示用到了struts2的iterator标签,动态使用成绩数据并表格显示在前台,其主要代码如下:

3.3 系统数据模型设计

本系统有很多的用户和数据,当管理员用户登录后要对教师、学生信息进行查看或修改,其中要涉及到教师信息数据、院系信息数据、专业信息数据、课程信息数据、学生信息数据和用户权限信息;当教师用户登录后,要对课程和考试信息进行查看和修改,其中涉及到课程信息、试题信息、试卷信息和试卷设置信息;当学生用户登录后,可以查看个人信息、查询成绩和查看考试科目,这里要涉及到学生成绩信息数据和学生个人信息数据。本系统的数据模型如图4所示。

4 结论

在线考试系统是实现无纸化考试的重要途径,是电化教学的不可或缺的辅助手段之一。本系统在实际运行中取得了一定的效果,不仅减轻了传统考试所花费的人力和物力,而且突破了考试时间与空间的限制,成绩更加客观、公正和准确,大大提高了考务工作的效率,降低了考务管理的成本。

图4 数据模型部分结构图Fig.4 The part of datamodel figure

[1]陕西师范大学远程教育学院.传统考试存在的弊端[EB/OL](2014-12-08)www.sne.snnu.edu.cn.

[2]张海藩.软件工程导论[M].4版.北京:清华大学出版社,2003.[3]孙晓龙,《JSP动态网站技术入门与提高》[M].1版.北京:人民邮电出版社,2001.

[4]Jquery.Javascript[EB/OL].(2014-12-08).http://deanlucky.blog.163.com/blog/static/429215582008311102825633/.

[5]高张.提高Tomcat服务器运行性能的研究[J].计算机与数字工程,2008(10):203-205.GAO Zhang.Research on improving the performance of running Tomcat server[J].Computer&Digital Engineering,2008(10):203-205.

[6]陈亚辉.Struts2+Spring+Hibernate框架技术与项目实战[M].北京:清华大学出版社,2012.

猜你喜欢

个人信息试卷考试
如何保护劳动者的个人信息?
个人信息保护进入“法时代”
警惕个人信息泄露
Module5 A Trip Along the Three Gorges
Module5 Great People and Great Inventions of Ancient China
Module 4 Sandstorms in Asia
Module 1 Europe
Japanese Artificial Intelligence Robotto Take Entrance Examinations
你考试焦虑吗?
准备考试