行业知识
JAVA在线考试管理系统
摘要: 目前国内基于B/S、C/S结构的在线考试系统产品已经有许多,本文首先介绍了这些考试系统的形成和发展过程,大致结构。然后通过仔细分析,提出了目前的这些系统还存有系统更新和维护等种种弊端,仍不够成熟。基于对现有产品的思考,结合J2EE的成熟技术,我们想到了是否可以将该技术运用在在线考试系统中,提出了一个基于J2EE架构的在线考试系统。通过将该架构与已有结构的在线考试系统进行比较,分析了该架构的优势,重点介绍了该框架的整体构造以及相关的概念和技术。并通过设计了一个基于J2EE架构的在线考试系统对该架构做了一个比较深入的剖析。最后,对J2EE技术做了一个总结性的展望,认为该技术有着良好的发展空间和广阔的前景。
()关键词:J2EE,在线考试系统,b/s,JavaBean,jsp,数据池
2.1 在线考试系统一般需求分析
在线考试系统应具有以下要求:
()1)由于考试对应的是特定的对象,所以系统需要经过有效的身份验证才可以登陆。并且系统需要有可以管理会话的功能。以便在考试过程中全程跟踪考试状态。
2)系统的权限一般分为两种:管理员和学生。不同的身份使用不同的权限和功能。
3)管理员需要对试题和考生进行有效的管理,负责试题的录入及更新和修改,对试题的分类,每次考试前,需要对试场环境和考生状态进行考前初始化工作。要注意的是, 鉴于考试环境一般为机房,考试者之间的距离很近,为了在线考试做到规范,对于每个应试者来说,试卷的试题和题量都应是相同的,但试题并不相同。
- 系统要有良好的试卷上传和回收功能,确保信息传送的正确性。
- 系统要有一个友善的界面,确保考生考试的顺利进行。
- 因为试卷中的主观题需要老师批改,可能需要一段时间才能查询到成绩。但如果试卷是由客观题型组成的,考生就可以在考试结束后查询到自己的成绩了。
- 系统提供对考生成绩的统计和查询等管理功能。
- 系统应具有良好的安全性管理。
3.1 基于J2EE的E-nettest在线考试系统构架概要
3.1.1 E-nettest系统结构
我们的系统结构是针对了J2EE的四层架构进行设计的
如图所示,客户层负责提供用户界面接口,包括试题的显示和考生答案的输入。
Web层负责将得到的考生登陆和题目上传的信息送交给业务层,同时,将从业务层处得到考试的相关信息输出到html页面为考生提供相关服务。
业务层负责系统的具体逻辑实现,主要是得到数据池中的数据源,向数据库中提交和获得数据等。
信息系统层主要采用了Microsoft sql2000数据库对数据进行存贮管理。
3.3 E-nettest总体功能介绍
客户端
登陆服务:负责用户的登陆的输入,与服务器端的验证,如果是重登陆的,需重登陆密码。
题目下载:负责从数据库中读取试题数据,下载到客户端。
用户答题:负责在客户的浏览器中显示下载的题目,供用户做题。
题目上传:负责将客户所答题目的答案上传到服务器端。
管理端
生成试题:负责从试题源中生成当场考试的相应试题。
试题初始化:负责在每场考试前清空试题回收信息。
考生监控:负责在考试期间管理监控各考生的考试状态。
试卷回收:负责在考试结束后,将考生提交的答案上传到数据库服务器中。
试卷批阅:负责自动化批阅回收试卷(客观题)。
数据库连接服务:负责从各共性服务层模块接收相关数据库连接,查询,修改等服务,并返回相关数据。
数据访问层异常管理:负责数据库连接服务出现的异常。
3.4 E-nettest模块设计
各模块的详细介绍:
1)考生登陆模块:
在客户层,考生通过主登陆页面输入用户名与密码。
在web层,将从用户输入处得到的用户名和密码与从业务层返回的相应用户名和密码作比较,如果用户存在密码正确且还未登陆就登陆考试主页面,否则跳到出错页面要求重新登陆。
在业务层,获得与mssql数据库的连接,并取出所有的用户名和密码信息。将该信息传入web层。
在EIS层,对应的是mssql数据库中的students表格。
2)做题模块:
(1)选择题:
在客户层,浏览器中显示每个考生所对应的考试题目,要求考生输入考试答案。并有一个提交按钮供考生做完题目后上传题目。
在Web层,jsp负责从业务层中获得题目,并将题目组织在一起向客户端显示。
在业务层,获得与数据库的连接,并且取出选择题题目。
在EIS层,对应的是数据库中choose表格。
(2)word题:
在客户层,在浏览器中applet的textarea区域显示word题的要求,并利用applett数字签名技术,突破访问本地文件系统的限制,打开word做题。
在Web层,利用servlet的文件上传下载技术,将读出的word文件下载到本地磁盘。
在业务层,获得数据库连接,并取出word题目,word题是以二进制流的方式将word文件存贮在数据库。
在EIS层,对应的是数据库中word表格。
3)答案上传模块:
在客户层,在浏览器中单击提交按钮将做完的答案提交制相应页面
在Web层,将用户提交的答案提交给相应的javabean组件,并在客户端显示提示信息。
在业务层,将提交上来的答案存入相应的数据库中。
在EIS层,数据库中students表格,有两个相应字段用来存放该用户所对应的提交答案。
3.5 E-nettest数据库设计
由于目前市场上存在有许多的数据库产品,较流行的有oracle,Mssql,Access,等,oracle数据库多用于大企业中,稳定性最好,但价格也较高,且系统要求也较高,而Access数据库不支持网络功能,一般只对个人或小型的系统适用,而对于本系统来说,采用Msssql则是一个较为合适的选择,Mssql是微软网络数据库的主打产品,支持网络功能,日志记录等多种方便的服务,并且有着较为稳定的性能和可靠的管理。下面是数据库表的设计:
Students table:
id, char, 10,notnull;
password, char, 10,null;
number, char, 10,notnull;
sex, char, 1,null;(1=男,0=女)
chooseans, char, 60,null;
wordans, image,16,null;
status, char, 1,notnull;(1=在线,0=离线)
choose table:
QNUM, INT, 4,notnull;
QCON, TEXT, 16, notnull;
QANSA, TEXT, 50, notnull;
QANSB, TEXT, 50,notnull;
QANSC, TEXT, 50,notnull;
QANSD, TEXT, 50,notnull;
QANSE, TEXT, 50,notnull;
QANS, TEXT, 1,notnull;
Word table:
Topic_Number , nvarchar, 2,notnull;
Question_Title, text, 16,notnull;
Question_Content,image, 16,notnull;