摘要:網絡考試是網絡教學不可缺少的組成部分。介紹了基于MVC設計模式的Struts框架的工作原理以及基于Hibernate的對象持久化技術,給出了網絡考試系統的基本結構,并結合實例討論了Struts和Hibernate在網絡考試系統中的應用。
關鍵詞:Struts;MVC 模式;對象持久化;網絡考試系統
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2009)05-1104-02
The Design and Realizing of Network Examination Based on Struts and Hibernate
LI Gui-ling
(Computer Department, Siping Professional College, Siping 136002, China)
Abstract: Network examination is an important part of network teaching.The paper briefly introduces the operating principles based on MVC design and Struts framework,as well as object lasting technology on Hibernate.The paper proposes the basic structure of network examination system and discusses the application of Struts and Hibernate in the network examination system integrated with practical examples.
Key words: Struts; MVC mode; object lasting technology; network examination system
1 引言
隨著計算機網絡技術的普及和對教育的重視,一些新興的教育手段層出不窮,許多大中專院校也相繼建設了校園網,為網絡教學提供了必要的環境,網絡考試是網絡教學不可缺少的組成部分,是網絡教學的重要環節。通過網絡考試可以遠程對學生的學習進行考核,借此了解學生的學習效果,減輕了教師的工作量,提高了工作效率。
本文提出了一種基于J2EE的網絡考試系統,系統實現廣泛使用了Struts和Hibernate技術,并給出了具體應用實例。
2 Struts框架技術
2.1 MVC設計模式
MVC設計模式是軟件設計中的典型結構之一。
MVC是Model/View/Control的縮寫,是一種業務邏輯與表示邏輯分離的模式,在這種設計結構下,應用程序分為三個組成部分:Model模型、View視圖、Controller控制器,每個部分負責不同的功能。
2.2 Struts框架
Struts是由Apache軟件基金會(Apache Software Foundation)資助的一個開放源代碼框架,是一個用于構建基于MVC結構的Web應用程序的開放標準。創建Struts開放源代碼框架的目的是便于開發人員基于Java Servlet和JSP技術構建Web應用程序,以Struts為基礎,開發人員可以集中精力關注于構建業務應用程序,而不必關心體系結構等問題。
如圖1給出了Struts的體系結構圖。
3 Hibernate技術
3.1 ORM
ORM是一種模式,它的英文是Object-Relation Mapping,即對象-關系映射,它指的是“在單個組建中負責所有實體域對象的持久化,封裝數據訪問細節”。
對象和關系數據是業務實體的兩種表現形式,業務實體在內存中表現為對象,在數據庫中表現為關系數據。在實際應用中,除了需要把內存中的對象持久化到數據庫外,還需要把數據庫中的數據再重新加載到內存中,以滿足用戶查詢業務數據的需求。而頻繁地訪問數據庫,顯然會降低應用的性能,幸運的是,目前在持久化層有很多現成的持久化中間件可供選用,Hibernate是一個基于Java的開放源代碼的持久化中間件,它對JDBC做了輕量級封裝,不僅提供ORM映射服務,還提供數據查詢和數據緩存功能,Java開發人員可以方便地通過Hibernate API來操縱數據庫。
3.2 Hibernate技術
Hibernate是一個開源的ORM框架,它是通過對JDBC API進行封裝從而實現對java對象持久化的。
Hibernate技術本質上是一個提供數據庫服務的中間件,Hibernate在構建Java應用中的作用是:應用程序通過Hibernate對數據庫進行訪問,對持久層操作,而Hibernate自身通過properties配置文件和XML映射文件將類型映射到數據庫的記錄,從而應用程序可以通過持久化對象直接訪問數據庫。
4 網絡考試系統的設計與實現
4.1 系統分析
網絡考試系統包括以下幾個功能:用戶管理、試題管理、試卷管理、考試管理與監控、閱卷評分、參加考試、成績統計分析、成績查詢等,該系統有三類用戶:系統管理員、教師和學生。系統管理員的主要工作是用戶管理和考試監控,教師的主要工作是對試題進行錄入、生成試卷、管理考試、對主觀題進行手工閱卷等,學生的主要工作是參加考試和查詢考試成績。
4.2 Struts和Hibernate在系統實現中的應用
在系統實現中大量使用了Struts和Hibernate技術,下面以用戶登錄為例說明Struts和Hibernate在系統中的應用。
本系統的用戶可分為三類:系統管理員、任課教師和學生,這三類用戶分別有不同的權限,允許訪問不同的頁面。用戶進入系統時首先要進行身份驗證,驗證通過后訪問相應的頁面。
用戶登錄模塊的實現采用傳統J2EE Web設計方法,分5層,自底向上分別是:數據庫層(SQL Server 2000)-->ORM層(Hibernate層)-->業務邏輯層(JavaBean、Struts ActionForm)-->控制層(Struts Action)-->視圖表示層(JSP)。
4.2.1 Hibernate的使用
在Java應用中使用Hibernate包含以下步驟:
1) 創建Hibernate的配置文件。
Hibernate從其配置文件中讀取和數據庫連接有關的信息,這個配置文件應用位于應用的classpath中。Hibernate的配置文件有兩種形式:一種是XML格式的文件,名字一般為hibernate.cfg.xml,還有一種是Java屬性文件,采用“鍵=值”的形式。
2) 創建持久化類。
持久化類要符合JavaBean的規范,包含一些屬性,以及與之對應的getXXX()和setXXX()方法。這些屬性和數據庫中相對應的數據表中的列是一一對應的。
3) 創建對象-關系映射文件。
Hibernate采用XML格式的文件來指定對象和關系數據之間的映射,在運行時,Hibernate將根據這個映射文件來生成各種SQL語句。
4) 通過Hibernate API編寫訪問數據庫的代碼。
4.2.2 Struts的使用
Struts中的核心文件是struts-config.xml文件。可以通過配置文件來配置各種組件,例如數據源DataSource,表單類FormBean,全局異常GlobalException,全局轉向GlobalForwars,行為映射ActionMappings,控制器Controller,消息資源MessageResources,以及插件Plugins等。
如圖2給出了網絡考試系統登錄模塊所對應的Struts-config.xml視圖。
在控制層通過如下代碼驗證管理員登錄信息。
Admin admin=new Admin();
admin.setPassword(loginForm.getPassword());
admin.setAdminid(loginForm.getUserid());
adminDao=new AdminDAO();
Admin aaa=adminDao.findById(admin.getAdminid());
if (aaa!=1 aaa.getPassword().equals(admin.getPassword()))
{admin.setUsername(aaa.getUsername());
HttpSession session = request.getSession(true);
session.setAttribute(\"admin\", admin);
return mapping.findForward(\"adminlogin\");
}
5 結束語
網絡考試系統采用B/S體系結構,系統實現運用基于MVC的Struts框架及基于Hibernate的對象持久化技術,它借助于Internet, 出卷、閱卷、成績統計分析均由計算機自動完成,減輕了教師的工作量, 降低了考試成本, 因此,網絡考試是今后考試的發展趨勢。