摘要:基于JavaEE的SSH2(Struts 2 + Spring + Hibernate)框架,根據山東省電力學校計算機類課程的上機實習及考試管理方法、業務流程和信息化管理發展的需求,設計了一種基于SSH2的計算機課程教學管理系統,該系統的實施為提高學校教學過程的信息化管理水平奠定了良好的基礎。
關鍵詞:JavaEE/MVC模式;Struts 2;Spring;Hibernate;SSH2;實訓管理
中圖分類號:G420 文獻標志碼:A 文章編號:1009-3044(2009)36-10517-02
隨著信息化建設步伐的加快,高校的校園網已初具規模,網上學習考試系統已經成為各高校競相建設的項目。與傳統方法相比,無紙化學習考試能充分發揮校園網的功能,并可以節省大量辦公、考試用紙,同時管理方式靈活、高效。但目前運行的各類網上實習及網上考試系統都不是十分完善,存在數據不統一,系統不便于維護等諸多問題,為此,我們從實用的角度出發,結合自己學校學生計算機類課程實習和考試的特點,設計了一種比較完善的網上實習及網上考試系統。
1 SSH2(Struts2、Spring、Hibernate)
Java是個不斷創新的領域,在Java企業級應用(Java EE)領域里Java EE輕量級開發架構的出現給整個Java EE開發的體系帶來了更多革新的思想。與傳統的重量級Java EE架構相比,輕量級Java EE框架具備了快速、高效、易于使用的特點,特別使用與中小型企業。目前,一般公司主要用輕量級技術框架進行企業開發,各種Java企業級應用的框架也層出不窮。
Java企業級應用(Java EE)又分為“輕量級”和“重量級”,如基于SSH2的“輕量級”框架技術和基于EJB的 “重量級”框架。
在Java EE項目的開發過程中,開發人員采用傳統的方法,即采用EJB這種重量級的組件模型。但在很多情況下,EJB并不是最佳的解決方案。本設計應用了一種基于SSH2(即采用開源框架Struts 2、Spring和Hibernate的組合來開發企業級Java EE應用)的輕量級的Java EE解決方案。
Struts 2是一個Java EE的開源框架,主要用在Web層(用于與用戶交互、并控制用戶請求),它是Model-View-Controller(MVC)這種體系結構的一個具體實現,它應用較為廣泛。
Spring是一個開源的、輕量級的Java EE應用程序框架和容器。它提供Java EE應用程序中一些公共的、基礎性的服務,包括查找和定位服務,事務管理,統一的資源配置管理,線程管理等等。業務對象在Spring容器中運行,Spring負責管理業務對象的生命周期和他們之間的相互調用。Spring框架的核心是控制翻轉IoC(Inversion of Control)/依賴注入DI(Dependence Injection)機制。
Hibernate是一個優秀的Java EE平臺下的“對象-關系”映射的開源工具。在Java EE應用程序中,采用面向對象編程,用對象描述實體;而數據源層往往是關系型數據庫系統,用二維表存儲數據。為解決面向對象的應用程序和面向關系的數據庫系統之間的“阻抗不匹配”,需要一種映射工具把Java EE應用程序中的對象映射到關系型數據庫中的二維表。Hibernate是一個優秀的、功能強大的、開源的O-R Mapping工具,并支持所有主流的關系型數據庫系統。
一個可供選擇的模型(該模型分為4層)如圖1。
2 系統設計與實現
2.1 系統概述
《計算機課程教學管理系統》實現了計算機課程考試、實習等方面的自動化管理。該系統包括實習管理、考試系統、題庫管理三個模塊。管理員統一管理各種用戶,設置各種用戶的權限,并負責題庫的維護,考試試題及實習試題的生成,并可通過“查看學生”更快捷的了解使用班級及各班級詳細學生名單;學生則可以隨時參加考試和實習,在做完試題后直接交卷,試題答案通過網絡傳至服務器,并自動進行成績的評定和匯總。《計算機課程實訓管理系統》使計算機課程考試與實習工作進一步規范化、自動化,使計算機教學與管理上了一個新的臺階。
2.2 系統結構圖
圖2為系統結構圖。
2.3 系統功能模塊描述
本系統主要供學生、管理員兩大類用戶訪問,分為實習管理系統、考試系統、題庫管理系統三個功能模塊。
2.3.1 題庫管理
主要為實習和考試提供題目的來源,管理員可按照不同科目、章節、難度、知識點、題型等對題目進行分類管理,包括增加、刪除、更新等。
2.3.2 實習管理
由管理者指定實習內容,學生可在登錄后完成相應內容,提交階段性成果,并對學生完成進度進行記錄,管理者可查詢學生的成果及完成進度,并根據實習內容的不同,由系統自動或由管理員手動評定和記錄學生成績。
2.3.3 考試系統
在線考試模塊,完成在線考試功能。系統按照管理者指定內容自動完成試卷生成、分發、考試計時、成績評定、記錄等功能。管理者同時登陸對考試過程進行監控,并查詢學生成績。
2.4 系統安全設計
2.4.1 登錄安全
由于本系統的特殊性,所以在系統設計時需要用戶注冊并獲取相應的權限才可以使用對應的功能,安全登錄是本系統的第一道屏障,通過使用J2EE的WEB層安全機制,可以保護WEB層的一些資源,如:URL、URL模型以及HTTP的提示方式。當未被授權的用戶訪問這些受保護的資源時,J2EE容器會自動將用戶導向規定的登錄界面,要求用戶輸入用戶名和密碼。
2.4.2 傳輸安全
傳輸安全指用于H1TrP協議以便在安全傳輸連接上運行的機制,使用傳輸安全,可以通過SSL,用戶名/密碼身份驗證和客戶端數字證書來確保WEB資源的安全。J2EE提供了一種可自定義的方式來獲取用戶的驗證信息。在設計時,定義要使用SSL保護WEB資源范圍,確保對本系統的數據庫的訪問均為安全調用,然后加密客戶端和此WEB資源之間的數據流。
2.5 技術關鍵
本系統采用了基于SSH2的Java EE輕量級解決方案:Struts 2.1+Spring 2.5+Hibernate 3.2,以Spring的IoC容器負責管理業務邏輯組件、持久層組件及控制層組件,充分利用DI(依賴注入)的優勢,進一步增強系統的解耦,提高應用的可擴展性,降低系統重構的成本。
以下是關于該系統中間層的各層描述:
View層:JSP頁面部分,屬于Struts 2框架MVC模式的視圖(Viewer)部分,完成客戶請求傳遞或處理后數據的顯示。
Action層:系統業務控制器層,屬于Struts 2框架MVC模式的控制器(Controller)部分,主要完成系統的操作命令的轉發處理,在這里調用Service層組件進行業務邏輯處理。
Service層,主要完成對數據的業務邏輯方面的處理操作,本系統主要設計兩個模塊,每個模塊對應一個Service組件類。在這一層向上提供業務邏輯處理,向下調用DAO來取得所需要的業務數據,該層運用了Spring框架對Action層與DAO層進行整合。
DAO層(數據訪問對象層),使用Hibernate框架,并封裝了Hibernate的基本操作,主要完成對數據的訪問操作,與數據庫系統交互。
POJO層,也就是實體層,提供系統供持久化的對象、對象-關系映射文件,通常一個POJO對應數據庫中的一張表。
3 結束語
該論文主要論述了基于SSH2的Java EE的輕量級解決方案的計算機課程教學管理系統,基于EJB的Java EE架構對于企業級應用過于沉重和復雜,開發和維護成本高昂,越來越多的Java EE開發者逐漸拋棄了這種傳統EJB重量級架構,轉而尋找輕量級架構來構建Java EE應用。
《基于SSH2的計算機課程教學管理系統》已成功應用于山東省電力學校,該系統運行以來.穩定可靠、用戶界面良好、操作方便.充分發揮了現有資源優勢,提高了日常工作效率。
參考文獻:
[1] The Java EE 5 Tutorial:For Sun Java System Application Serve 9.1[EB/OL].Sun Microsystems,Inc.
[2] 李剛.輕量級Java EE企業應用實戰——Struts 2+Spring+Hibernate整合開發[M].北京:電子工業出版社,2008.
[3] 孫衛琴.精通Hibernate:Java對象持久化技術詳解[M].北京:電子工業出版社,2005.
[4] 孫鑫.Struts 2深入詳解[M].北京:電子工業出版社,2008.
[5] http://www.hibernate.org.
[6] http://www.springsource.org/.
[7] http://struts.apache.org/index.html.
[8] http://spring.jactiongroup.net.