基于Java技术的在线考试系统的设计与实现
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
绩表 。记下这两个时间是为了答题日志分析做准备 。
在考生答题的过程中 ,如果考生在考试过程中不 小心关闭窗口 ,或者机器由于各种原因造成突然死 机 ,都会造成考生刚才的答题丢失 。因此系统采用每 隔 30 秒就自动储存一次考生答案的方法 ( 代码如 下) ,同时也将考试剩余时间储存 。考生可以重新进 入考试系统 ,继续刚才的考试 ,以前保存的答案仍旧 存在 。在考试结束前一分钟和最后 10 秒种 ,系统会 提示考生保存答案 ,并提交试卷 ,当倒记时为 0 ,系统 会自动交卷 。试卷页面 :
( P) ) ,然后存放到考试服务器 。
(下转第 86 页)
86
计 算 机 与 现 代 化
2005 年第 4 期
据库服务器之间的连接是开发网络课程的关键技术 。 下面主要介绍 ASP 技术 。
ASP (Active Server Pages) 技术是微软将高性能的 ISAPI 与简洁的 JavaScript 和 VBScript 相结合的产物 , 其特点是运行速度快 、数据库操作功能强大 。
YANG Xiao2ping , DANG Xiao2chao
(College of Mathematics and Information Science , Northwest Normal University , Lanzhou 730070 ,China)
Abstract :The paper describes main functions of on2line examination system ,presents J sp + Servlet + JavaBean three2tier B/ S architecture to develop the system ,and discusses some key problems and corresponding measures. Key words :on2line examination system ;Java ;MVC
ADO 是一个专门针对 Internet 而使用的应用程序 编程接口 ,可以通过在 ASP 页面中使用 ADO 对象来 实现对数据库的访问 。在 ASP 中使用 ADO 对象来操 作数据库 ,首先要创建一个指向该数据库的 ODBC 连 接 。然后 ASP 可以用两种方式打开 Web 数据库 : 全 路径 DSN 和 DSN (Data Source Name) 。如用 DSN 方法 打开数据库 (Access) 的方法如下 :
2. 1 数据库设计 本考试系统包括 7 种题型 ,分别是填空 、选择 、判
断 、名词解释 、简答 、论述和阅读理解 。根据 7 种题型 的不同特点以及为了便于管理 ,分别建了 7 个题型 表 ,同时又建了试卷基本信息表 、试卷试题表 、答案表
(包括每道小题的分字段) 和成绩表 (记录总分) 。例
2005 年第 4 期 文章编号 :100622475 (2005) 0420081202
计算机与现代化 J ISUANJ I YU XIANDAIHUA
总第 116 期
基于 Java 技术的在线考试系统的设计与实现
杨小萍 ,党小超
(西北师范大学数学与信息科学学院 ,甘肃 兰州 730070)
parent. leftime. submit () ;
< / script >
考生一旦开始考试 ,因为服务器的时间是先请求 再获取 ,请求就必须刷新网页 ,又不能每一秒都从服 务器取时间 。考试过程中考生很容易通过修改客户
端时间来作弊 ,延长考试时间 ,因而通过控制客户端 时间不能被修改来克服这一弊端 ,不过目前仍存在一 定的问题 。
km = ″common. mdb″ ’数据库名 bm = ″sj ″ ’表名 …
Set conn = Server. CreateObject (″ADODB. Connection″) ’建立 conn 对象
dbpath = Server. MapPath (km) conn. Open″driver = {Microsoft Access Driver ( 3 . mdb) } ; dbq = ″& dbpath ’打开数据源 …
ASP 访问数据库的过程是 : 当浏览器向 Web 服 务器申请访问一个 ASP 文件时 ,Web 服务器调用 ASP 文件 ,然后解释执行每一条脚本语句 ,用 ADO 组件通 过 ODBC ( Open Database Connectivity , 开 放 数 据 库 互 联) 访问数据库 ,再把执行的结果生成 HTML 文件传 给客户端 。
82
计 算 机 与 现 代 化
2005 年第 4 期
现) “, View”是应用的表示页面 (由 JSP 页面产生) , “Controller”是提供应用的处理过程控制 (一般是一个 Servlet) ,通过这种设计模型把应用逻辑 、处理过程和 显示逻辑分成不同的组件实现 。
2 关键问题及其解决
注意为防止循环抽题 ,随机出卷要遵循“10 选 8 原则”,即至多抽取题库题量的 80 %道试题为宜 。
抽取试题的 sql 语句如下 :
sql = ″select id from ″+ question[i ] + ″where course- name = ’″ + course- name + ’″and knowpoint between ’″+ begin- knowpoint
…
< Iframe name = ″timesave″src = ″refresh. jsp″id = ″timesave″ width = ″0″height = ″0″scrolling = ″no″frameborder = ″0″ > < /
iframe > …
refresh. jsp : < meta http2equiv = ″refresh″content = ″30″> < script language = ″javascript″>
收稿日期 :2004207230 基金项目 :中国·联合国甘肃省 UNDP403 项目 作者简介 :杨小萍 (19802) ,女 ,甘肃秦安人 ,西北师范大学数学与信息科学学院硕士研究生 ,研究方向 :计算机网络 ;党小超 (19632) ,男 ,陕西人 ,副教授 ,硕士生导师 ,研究方向 :计算机网络 。
Set rs = Server. CreateObject (″ADODB. Recordset″) sql = ″select 3 from ″+ bm
+ ″’and ’″+ end- knowpoint + ″’and id in ( select ceil ( dbms- ran2 dom. value (0 ,max (″+ question[ i ] + ″. id) ) ) from dual ,″+ question [i ] + ″)″;
摘要 :简述了在线考试系统的主要功能 ,提出 J sp + Servlet + JavaBean 三层系统架构实现在线考试系统 ,并讨论了开发过程 中遇到的几个关键问题及采取的相应措施 。 关键词 :在线考试系统 ;Java ;MVC 中图分类号 : TP311. 52 文献标识码 :A
Design and Implementation of Java2based On2line Examination System
辑与客户端显示页面分离 ,以更好地控制业务逻辑 ,
简化系统的实现和调试 , 我们借助于 JavaServlet 和 JSP 的良好关系以及 JavaBeans 的协助 ,将系统的整个 逻辑结构放在 JavaServlet 中 ,而将动态页面的输出放 在 JSP 中来完成 。JavaServlet 充当 Controller (控制者) 角色 ,负责响应客户请求 ,具有多线程的特性 ,可以同 时响 应 多 个 请 求 。Servlet 创 建 JSP 所 需 要 的 Jav2 aBeans 和对象 ,根据用户行为 ,决定将哪个 JSP 页面 发送 给 用 户 。因 此 本 系 统 实 现 了 MVC 模 式 , 即 “Model”代表的是应用的业务逻辑 (通过 JavaBeans 实
0 引 言
本系统是中国·联合国计划发展暑 403 项目网络 教学平台系统中的一个子系统 。该平台及在线考试 子系统已经完成了初步开发 ,目前处于测试发布阶 段 。笔者主要负责在线考试子系统 。
在线考试系统主要包括五个大功能模块 ,分别是 题库管理模块 、试卷库管理模块 、成绩库管理 、用户管 理模块及考试模块 ,其中前四个模块主要实现系统的 管理功能 ,只有教师身份和系统管理员身份的用户才 有权限访问 ,而后一个模块主要是针对学生用户开发 的 。具体系统功能图如图 1 所示 。
2. 4 安全性 按照国际标准化组织 ISO 定义的网络安全体系
结构 ,网络系统一般应包含 7 类安全服务 ,这些安全 服务对应到在线考试系统 ,它们的含义如表 2 所示 。 我们主要采取了数据包过滤 、身份认证 、试题加密及
答案加密等措施 。采wenku.baidu.com对称的加密算法 ( 如 RC22 、
RC24 、IDEA 、DES 等) 将试题加密 ,形成密文 (称为 Epk
TPEATE SEQUENCE y- exam- s/ / y- exam- s 是对应 y- exam 建 立的序列表
INTPEMENT BY 1 / / 每次加几个 START WITH 1 / / 从 1 开始计数 NOMAXVALUE / / 不设置最大值 NOCYCLE / / 一直累加 ,不循环
CACHE 10 ;
数据库的连接都是用 JavaBean 实现的 ,其连接语 句为 : < jsp :useBean id = ″sqlbean″scope = ″session″class = ″com.
include. dbconn″/ >
2. 2 人工 、随机组卷策略
教师用户在添加试卷时 ,首先要填写试卷基本信 息表 ,包括试卷名称 、考试时限 、试卷开放及关闭时 间 、出卷方式 、起止章节等等 (教师在填该表之前试卷
1 系统架构
1. 1 系统运行环境 本系统采用 B/ S 模式 (瘦客户端) 。数据库为 O2
racle 8. 0 , JBOSS 为系统开发的中间件服务器 ,服务器 端操作系统为 Linux ,由于 Java 的跨平台无关性 ,所以 客户端可以是任何操作系统 ,且不用额外增加任何软 件。
1. 2 采用 JSP + Servlet + Java Bean 系统架构 本系统的逻辑关系较为复杂 ,为使系统的业务逻
如试卷试题表如表 1 所示 。
表 1 试卷试题表字段设置
Id 自动 编号
Exam- id 对应 Y- EXAM 表 里 产 生的试卷自动编号
Question- type 对应题型 (相 应题库)
Question- id 对应题型库中的相应试题 自动编号
其中自动编号是 Oracle 数据库自动产生的 , se2 quence 就是所谓的序号 ,每次增加记录时它会自动增 加 ,一般用在需要按序列号排序的地方 。代码如下 :
科目已定) 。其中有两种出卷方式 ,即人工出卷和随 机出卷 。如果是人工出卷 ,则自动打开题库 ,教师可 手工增删试题 ,系统会自动计算各个题型题目数 ,再 在题型设置页面设置各道题的分值 ; 如果是随机出 卷 ,则直接在题型设置页面设置各题型数目 ,系统会 自动从题库中搜索试题 ,并将试题信息 ( question-id) 写入试卷试题表中 。
其中 question[ i ]是题型表之一 。 当然 ,第一次抽取之后要检查是否有重复 ,直至 没有重复才将此题写入表中 。
2. 3 考试时间的控制 试卷用 倒 计 时 方 式 扣 减 时 间 。当 考 生 进 入“考
场”,那一刻服务器的时间便作为考试开始时间写入 考生成绩表 , 当考生按下“我要交卷”按钮后 ,系统自 动将此时服务器时间作为考试结束时间写入考生成