当前位置:文档之家› 基于JSP的在线考试系统的设计与实现

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

基于JSP的在线考试系统的设计与实现
作者:梁瑾
来源:《中国教育信息化·高教职教》2008年第08期
摘要:本文在调查分析在线考试系统现状的基础上,结合具体的需求分析,采用MVC模式及JSP技术设计开发了一个在线考试系统,基本上能满足中小型学校或单位在线考试要求,有较好的实际应用意义。

关键词:在线考试 MVC模式 JSP WEB
中图分类号:TP311文献标识码:B 文章编号:1673-8454(2008)15-0049-03
随着Web技术的发展,考试的技术手段和载体发生了革命性的变化,Web的开放性、分布性的特点和基于Web的巨大计算能力使得考试突破了时间和空间的限制。

基于Web的考试系统正成为人们的研究热点之一。

本文根据一般院校等中小型机构在线考试的要求,通过调查分析,采用适当的技术方案设计并开发了一个在线考试系统,该系统是在网上模拟考试的应用程序,它存储着考生、题库、管理员等信息,包含教师出题、考生在线考试、自动判卷以及相关的系统维护等功能,使得只要有浏览器的地方,就能使用它来学习、考试,并且功能也比较全面,可以满足一般中小型学校或企业的需要,有较好的社会实用价值。

一、系统的技术方案
由于JSP是基于JAVA Servlet及整个JAVA体系的Web开发技术,利用这一技术可以建立动态的、高性能的、安全的、跨平台的动态网站。

因此,我们采用JSP作为表示层,Java Bean作为中间层,SQL Server作为数据库的技术方案,对于中小型单位的题库管理、考试功能来说已经基本能够满足,并且容易实现,需要投入的人力、物力相对较小,技术含量不是太高。

相对于国外大型的考试系统,以EJB作为中间层,Oracle作为数据库而言,本系统显得性价比较高,很实用。

为了使系统将来的维护、升级等工作方便、简单,我们采用MVC开发模式,使得表示层、逻辑层、数据层的分工明显。

在修改页面的时候,因为里面包含的逻辑代码较少,所以不必关心系统的逻辑工作,只需要美工就能完成工作;在逻辑层部分,编程人员只需要专注于代码的开发,而不需要关心数据库的实现,因为数据的调用只需要通过接口实现即
可;同样数据库开发人员也只需要完成其数据开发工作即可。

这样使得分工明确,容易合作,便于团队开发。

因此,我们归纳出以下的技术路线:
(1)用Dreamweaver来实现静态代码部分的设计,用photoshop来做一些美工方面的工作。

(2)用JSP来实现动态代码部分的设计,如一些简单的逻辑操作,数据库查询和一些结果的输出都能用它来实现。

(3)用Java Script实现一些简单页面控制,如考试时间的控制,输入为空等方面的操作。

(4)用Java Bean作为数据库的调用接口,JSP代码可以通过该Java Bean来实现对数据库的调用。

(5)对数据库方面的设计,首先需要设计数据表,处理好表与表之间的关联、约束等问题,再用SQL Server建立数据表。

二、功能需求分析与设计
通过对一般院校等小型机构在线考试系统的调查研究,该系统必须满足以下功能:
(1)提供考生注册、登录、考试功能。

(2)试卷支持多题型,并且有监控中心,到考试时间能够自动交卷。

(3)支持题库管理、考生试卷管理、制订考试科目、设置考试内容、发布试卷,成绩查询等操作。

(4)支持系统管理,管理者能在系统里面升级管理员,添加系统管理者和注册考生等操作。

通过以上的需求分析,本系统大致分为考生考试模块、系统管理模块、考生管理模块、题库管理模块、监控中心模块五个模块。

考生考试模块包括考生登录、显示考生信息、选择考试科目、考试交卷;系统管理模块包括管理员登录、更改密码、添加院系、添加科目、添加管理员、删除管理员、升级管理员、审批试卷等;考生管理模块包括考生注册、试卷的修改、记录分数、考生个人信息查询、考生集体信息查询;题库管理模块包括基本属性设置、自定义试卷、题型设置、问题设置、随机生成试卷、生成问题、预览试卷;监控中心模块包括控制考试和监视中心。

系统的整体流程如图1所示。

三、数据库的设计
根据需要本系统共设计了九个表。

具体如下:管理员信息表、考生信息表、考生成绩表、考生试卷答案表、院系信息表、科目信息表、试卷属性表、问题属性表、问题库表。

各表的数据结构如下:
管理员信息(管理员ID,密码,管理员姓名,性别,院系,身份等级);
考生信息(准考证号,密码,考生姓名,性别,学号,年级,班级,院系号,考试状态,考试权限);
考生成绩(准考证号,科目号,试卷号,科目名称,成绩,补考成绩);
考生试卷答案(准考证号,科目号,试卷号,问题号,答案);
院系信息(院系号,院系名);
科目信息(科目号,科目名,院系号);
试卷属性(科目号,试卷号,试卷标题,院系,试卷属性,管理员ID,试卷状态);
问题属性(科目号,试卷号,问题号,问题,题型,难度,分数,状态,提取次数);
问题库(问题,科目号,选项号,选项内容,答案)。

各表之间的关系如图2所示。

四、系统实现
1.表现层实现
用Dreamweaver设计基本的页面框架,包括*.htm和*.jsp页面。

如里面的表单提交、按钮绘制、插入图像、列表的选择、单选、多选的实现等等都可以用Dreamweaver来设计。

JSP主要用来实现一些动态页面,其主要工作是导入一个Java Bean或一些JAVA的内部类实现一些逻辑操作或对数据库的查询,并根据查询的结果将数据输出到客户端。

主要用到JSP的一些request、out等一些内置对象和ResultSet类的一些函数等。

另外用photoshop绘制一些页面图案等。

2.中间层实现
中间层的Java Bean是一种基于java的软件组件。

JSP为JavaBean组件提供了完善的支持。

这种支持不仅能缩短开发时间,也为JSP应用带来了更多的可伸缩性。

本系统把数据库的连接参数写入一个名为jdbcsql.properties的配置文件中,这样在程序运行时如果环境变化,可以方便地修改数据库配置。

jdbcsql.properties的代码如下所示:
driver=sun.jdbc.odbc.JdbcOdbcDriver//驱动程序
url=jdbc:odbc:kaoshi//连接字符串
username=sa//用户名
password=sa//密码
通过编写JavaBean来读取配置文件(jdbcsql.properties)来连接数据库,文件名为DBConnectionBean.java,里面封装了对jdbc-odbc的加载,对数据库的连接,查询executeQuery(Stringsql),更新executeUpdate(Stringsql)等功能。

3.实现结果及关键代码
由于篇幅所限,这里我们只给出考生考试页面和系统管理页面的运行结果及一些实现的关键代码。

考生考试模块包括考生登录、考生信息、选择考试科目、考试交卷等页面,考试页面的结果如图3所示。

实现的关键代码如下:
String wnum=new String(request.getParameter(“wnum”).trim().getBytes(“8859_1”));
String word=new String(request.getParameter(“word”).trim().getBytes(“8859_1”));
String sql=”select * from student where snum=’”+wnum+”’ and spswd=’”+word+”’”;
系统管理模块的运行页面如图4所示。

五、结束语
本系统完成后,经过修改和测试,系统的各项功能基本达到预期的要求,系统相对比较稳定,功能相对比较齐全,基本能适用于中小型学校考试的需求。

系统管理模块的功能相对比较多,能适用于多种题型,比较灵活;数据库表的建立相对合理,但在表与表的关联方面有些复杂。

总而言之,该系统功能较完善,实用性较好,但由于时间关系,还存在一些不足之处,有待于在使用过程中不断完善。

参考文献:
[1]Steven John Metshker.设计模式——Java手册[M].北京:机械工业出版社,2005.3.
[2]林邦杰.JSP交互网站实务经典[M].北京:中国青年出版社,2001.3.
[3]黄理.JSP深入编程[M].北京希望电脑公司,2001.10.
[4]雨阳隆春等.深入JSP网络编程[M].北京:清华大学出版社,2001.6.
[5]Cay S.Horstmann, Gary Cornell.Java 2核心技术(卷I)[M].北京:机械工业出版社,2005.3.
[6]甑广启.JAVA数据库编程[M].北京:电子工业出版社,2004.10.
[7]张运涛,龚玲.Eclipse精要与高级开发技术[M].北京:电子工业出版社,2005.7.。

相关主题