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