汪欣
摘要:當今社會已經步入信息化時代,信息傳遞具有高效性,實時性和多樣性,信息時代的新穎和高新化已經是整個社會和全球經濟的基本特征。隨著計算機網絡的不斷發展,尤其是web技術的日趨成熟,傳統的考試在面臨一定的沖擊,現在無紙化的考試已經成為一種重要的考試方法,比如駕考科目一考試等等。Struts2是Apache開發的免費基于MVC模式的Web應用程序框架,它為大型的Web應用程序開發提供了良好的框架。本文將通過在線考試的生成簡要展現MVC和Stract2的運行原理和特征。
關鍵詞:MVC模式,web技術,生成試卷
一.?試卷生成模塊開發技術簡介
越來越多的企業系統設計使用以Java為基礎的方案,主要是因為其多層的結構體系。Sun公司推出的Java EE,主要包括JSP、servlet、EJB和XML等技術和規范,為企業應用的開發提供了從客戶層到Web服務層到業務邏輯層的全方位的技術支持。
Java EE是一種利用Java2平臺來優化企業方案解決的設計、布置和管理等方面的結構體系,提供了一個企業級的運行環境,用于開發和部署多層結構體系的應用。Java EE是一個多層結構[1],主要包括用戶層,web層,業務層和EJS層。
在傳統的網頁HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP標記(tag),就構成了JSP網頁(*.jsp)。其工作原理是:Web服務器在接受到訪問此類網頁的請求時,首先執行其中的程序片段,然后將執行結果以超文本標記語言的格式發送給客戶。插入的java程序片段可以實現對數據庫的訪問,也可以重新對其他網頁訪問,可以實現無補丁,無插件,無Java 小腳本,甚至無框架[2]。
應用支撐平臺采用先進的、流行的三層技術體系架構(MVC),分別為:Model,View,Controller
二.?生成考試試卷的模塊分析
考試的題目一般是根據教學大綱的要求,選擇課程章節分布,該題目的題型(如選擇,計算,填空等),該題的難度系數以及分值分配。為了確保隨機抽取試題,對題庫的設計以及隨機抽題的算法有一定的要求,題庫中對于每一科目的題目數量需要一定的規模,以及題目屬性,比如說難度系數以及章節內容需要一個合理的設置,并且抽取的算法也需要適當。
具體分析可歸納為三點說明。一是試卷生成的隨機性。試卷的隨機生成需要優良的題庫環境。題庫需要一定規模的題量,另一方面題庫中題目的分配需要按照教學大綱要求。二是試卷生成的難度系數。試題的難易程度設計對一套試卷設計的合理性有著一定的影響因素。因此需要準確確定試題的難易程度。本系統將各種題型的難度等級分為以下幾種:1.0(容易題),1.5(較容易),2.0(適中題),2.5(較難),3.0(難題)。
三.考試試卷生成模塊簡碼
1.數據層的功能設計
在本系統的持久化邏輯采用Hibernate作為中間件,并使用DAO設計模式實現。DAO模式是Java EE核心模式中的一種,主要是業務核心方法和具體數據源之間增加一層,這樣就減少了兩者的藕合。
本系統使用MySQL作為后數據庫,通過Hibernate訪問數據庫的配置文件hibernate.cfg.xml的主要內容,部分代碼片段。
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"…..
2.創建對象和關系映射
創建映射文件。tb_teacher表、tb_student表、tb_subject表、tb_type表、tb_score表都對應產生Hibernate映射文件。
3.創建持久化類
通過Hibernate.cfg.xml文件來形成持久化的POJO(持久化類)。本系統使用的持久化類有用來存儲學生信息的工作的考生實體(Student類),用來存儲題目信息的工作的題目實體(Subject類),用來存儲試卷類型信息的工作的試卷類型(Type類),存儲學生成績信息的工作的考生成績(Score類)。
4.?SubjectDAO接口定義了系統進行題目管理的方法,包括增加題目,刪除題目,更新題目,查找題目等,部分代碼片段
List list01 = query.list();
for(i=0;i<=number:i++){
if(list01[i].subjectDiff<=subjectDiff and list01[i].subjectDiff>=subjectDiff/2){
List list02[i] = list[i]}}} HibernateSessionFactory.closeSession();
return?list02;}
四.總結
本文主要探討如何利用開源框架Struts2和java語言設計開發網上考試系統中試卷生成模塊。該模塊主要是用基于MVC模式的Struts框架進行功能來完成的。在信息層,訪問效率的提高是通過增加信息的冗余度來完成跨數據表的操作減少。在業務層中,使用組件來管理用戶權限和訪問方法的局限性。
參考文獻:
[1] 陳冠軍.精通JSP典型模塊設計與實現[M].北京:人民郵電出版社.2008.
[2] 李興華. Java開發實戰經典[M] 北京:清華大學出版社.2009.