基于XML与JMF实现考试自动组卷
2009-02-05
作者:王 雪 颖
1.引言
HTML是因特网标准,具有强大的显示能力,但其弱点是只具有静态特征。这里的静态性是指其显示数据是固定的,即在制作页面时就必须安排好显示数据。要完成考试功能,需要定制试卷,并为每份试卷定制判卷程序,但对英语教学系统来说,题库中的题量太大,要把每道题做成静态页面开销太大,不太现实。
基于静态页面的缺点,若能根据用户的需求自动从题库中随机抽题,自动生成试卷,再根据题库中试题的答案执行判卷,将极大增加系统的可维护性与可扩充性。
2.理论基础
2.1 JDBC
JDBC(Java DataBase Connectivity)是Java连接数据库的工业标准,为基于SQL的数据库访问提供应用编程接口。JDBC包括两组分别面向应用程序和数据库驱动程序开发人员的API,以及前者向后者转化的内在封装逻辑。面向数据库驱动程序开发人员的JDBC Driver API,是由数据库厂商开发的。提供给开发人员用来编写前端应用程序的JDBC API,对任何数据库都是一样的,用户使用标准的SQL语句执行数据库的增删改查操作。由于JDBC具有平台无关性和数据库访问一致性的特点,开发人员编写的程序只需稍作修改或不作修改就可以在不同的平台上访问不同的数据库系统。
2.2 JavaBean
JavaBean 是一种基于Java的可重用组件,为Java类提供了定义方法、事件、属性的方法,以便在设计时允许外部的操作和定制。JavaBean组件是Java类,这些类遵循一个统一的接口格式,以便该类的方法命名、底层行为以及具体实现能够符合标准的JavaBean组件构造方式。JavaBean一般用于执行复杂的计算任务或负责与数据库的交互。
2.3 XML
XML代表Extensible Markup Language(eXtensible Markup Language的缩写,意为可扩展的标记语言)。XML是一种显示数据的标记语言,也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。由于XML可以理解为一种格式化的文本,因此,对XML而言,是没有操作系统的概念的,只要支持文本处理的机器,就可以从XML中获取所需的数据,而且,与一般文本文件不同的是,XML本身具有一定的数据结构,借助读取XML格式文档的技术(例如传统的SAX(Simple API for XML),和DOM(Document Object Model)解析器),包括Java对XML的支持,可以方便快捷的处理XML中的数据。
2.4 JFM
JFM Java Media Framework)中译为Java媒体框架,是向Java独立应用程序和小应用程序中集成媒体数据类型的应用程序接口。它是特为利用Java平台的特征而设计的。JFM支持压缩的媒体流及存储媒体的同步、控制、处理和播放,能在接收媒体流的同时就产生音视频,而不需要在本地存储。
3.系统概述
考试系统采取B/S三层结构,即分为用户界面表示层、逻辑处理层和数据存储层。我们根据通用的三层结构处理模式,采用如下解决方案:以Apache作为Web服务器,以Tomcat作为JSP引擎,后台数据库采用SQL Server,本系统用HTML设计用户界面,JavaBean封装了数据库访问逻辑和自动组卷算法,JSP负责将由JavaBean传回的数据动态显示和对试卷的评判。
图1显示了系统的体系结构:
图1 考试系统的体系结构
4.系统详细设计
要实现自动组卷需要解决三个问题:动态页面的生成、听力录音文件的播放和自动判卷。
4.1动态页面的生成
4.1.1 定义考试页面逻辑结构
依照各类考试题型的业务规则,可以用XML定制页面的结构,图2为一般考试页面示意图,依据此页面,可以定义如下格式XML文件。
// 四个选项
......
相应的,在数据库设计时也按照三范式的要求,根据页面的特点设计关系模型和关系表。
4.1.2 页面的生成
自动组卷主要包括数据的获得与HTML页面的生成。
(1)获得页面数据
借助于Java随机数产生器、Hash函数、集合中数据不重复等特点,生成一个数据提取的算法,在通过使用JDBC实现数据库的访问。
(2)生成HTML页面
首先建立一个模板类,包含如下数据结构
public class Cet4Template
{
private String title;
private ArrayList lnPtOne;
private ArrayList lnPtTwo;
private ArrayList reading;
private ArrayList vocabulary;
Cet4Cloze cloze;
String writing;
public Cet4Template()
{
.................
}
..........
}
再用依据组卷算法从数据库中提取的数据填充模板,然后依据模板的内容利用JDOM技术生成XML文档:
//create a new document
public Document createDocument()
{
Document doc = null;
try
{
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
doc = builder.newDocument();
//root
Element rootElement = doc.createElement("test");
doc.appendChild(rootElement);
.............
}
}
最后根据XML文件用XSL技术动态生成HTML页面,交由JSP处理显示问题。
4.2听力录音文件的播放
英语考试系统的一大特点就是含有听力部分,又由于页面是自动生成的,因此听力媒体文件只能动态确定,可以把整个媒体文件存放在数据库中,但媒体文件一般比较大,考虑到查询效率问题,本系统只把媒体文件的物理位置信息存于数据库。
由于JFM对applet的支持,本系统以applet的形式把媒体文件嵌入网页,对于媒体文件的控制,通过调用JFM类和接口来实现。
4.3自动判卷
自动判卷功能的实现相对比较容易,在从数据库中抽题时就一并获得各题的正确答案,再用request.getParameter()方法获得考生的答案,二者对照判卷即可,通过JSP实现。
5.结束语
随着Internet的发展和网络信息化和智能化进程的加快,对各类web应用的需求也日益增大,本系统基于B/S三层结构,使Java技术与XML语义完美结合,利用了JavaBean使表示层与逻辑层分离的特点和JFM强大的多媒体处理能力,实现了英语考试自动组卷功能,促进了远程教学的开展和校园网络信息化平台的搭建。
为了进一步完善系统,可以针对各类不同的考试题型,模拟四级、六级、考研等不同的考试,另外,为了提高查询的速度,可以对组卷的算法进行优化,还可以采用数据库厂商提供的JDBC驱动等。
6.参考资料
1.Java多媒体程序设计 王峰等 清华大学出版社1999.5
2.Java2核心技术 卷Ⅱ:高级特性(美)Cay S.Horstmann,Gary Cornell 机械工业出版社2000
3.用XML实现程序中基于浏览器的Web服务 邱扬 2003.10
4.基于Java的数据库web访问技术 方昭辉 陈冬霞 2003.10
5.http://www.zleeweb.com/Article_Show.asp?ArticleID=14
6.http://www.cooltang.com/box/200304/200304041224392180972382300988.htm