黃統(tǒng)奎 張艷紅
基于Java EE高校畢業(yè)設(shè)計管理系統(tǒng)的設(shè)計與實現(xiàn)
黃統(tǒng)奎,張艷紅
(廣東技術(shù)師范學院 天河學院,廣東 廣州 510540)
摘要:該文研究基于Struts2 + Spring + Hibernate的高校畢業(yè)設(shè)計管理系統(tǒng)的設(shè)計與實現(xiàn)。該系統(tǒng)按照畢業(yè)設(shè)計工作流程實現(xiàn)管理端,教師端,學生端相應的功能。重點實現(xiàn)了業(yè)務(wù)流程管理、用戶權(quán)限管理、選題管理、文檔管理、文檔在線編輯、成績評定、在線交流、數(shù)據(jù)備份等功能。該系統(tǒng)具有界面簡潔、易用性強,交互性好、功能完善、同時又考慮到數(shù)據(jù)安全和系統(tǒng)功能的擴充。
關(guān)鍵詞: Struts2;Spring;Hibernate;畢業(yè)設(shè)計;文檔管理
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)19-4384-03
1 課題背景
隨著大學的擴招,畢業(yè)生數(shù)量的逐年遞增,高校畢業(yè)設(shè)計教學活動中需要處理的數(shù)據(jù)和信息也越來越大,在畢業(yè)設(shè)計管理工作中遇到工作效率低,交互性差,工作量大等問題,這已經(jīng)成為高校每年畢業(yè)設(shè)計管理過程中急需處理的問題。同時課題資源過于零散,容易重復, 進一步加大了課題資源整合的難度。綜上所述,該文研究基于 Java EE的高校畢業(yè)設(shè)計管理系統(tǒng),使用該系統(tǒng)實現(xiàn)快捷高效的畢業(yè)設(shè)計管理工作。
2 系統(tǒng)分析
通過需求分析,系統(tǒng)確定有三種角色:學生、教師、管理員。
2.1功能模塊劃分
在具體設(shè)計實現(xiàn)畢業(yè)設(shè)計管理系統(tǒng)時,主要考慮了系統(tǒng)的以下主要功能和模塊。
1) 公用模塊
(1) 登錄模塊:驗證帳號密碼是否正確。
(2) 修改個人信息模塊:修改賬號密碼。
(3) 師生互動模塊:師生交流平臺。
(4) 瀏覽信息模塊:查看信息。
2) 畢業(yè)生模塊
(1) 選報課題模塊:選擇指導老師與課題。
(2) 上傳論文模塊:上傳各階段的論文。
(3) 下載文件模塊:下載指導老師的資料。
3) 指導教師模塊
(1) 申報課題模塊:申報自己的課題。
(2) 分配課題模塊:選擇畢業(yè)生與其對應的課題。
(3) 上傳論文模塊:上傳各個階段的論文。
(4) 審批論文模塊:審批上傳的論文。
(5) 下載文件模塊:下載畢業(yè)生上傳資料。
4) 管理員模塊
(1) 公告發(fā)布模塊:發(fā)布信息。
(2) 課題管理模塊:管理課題。
(3) 賬號管理模塊:管理畢業(yè)生與指導教師賬號。
(4) 日常維護模塊:數(shù)據(jù)庫備份還原。
2.2業(yè)務(wù)流程圖
2.2.1 管理員業(yè)務(wù)流程圖
管理員定期對系統(tǒng)的信息進行更新和維護,可以對公告、課題、帳號信息進行查看、增加、修改、刪除等操作,以及配置系統(tǒng)的參數(shù)。業(yè)務(wù)流程圖如圖1所示。
圖1 管理員業(yè)務(wù)流程圖
圖2 教師業(yè)務(wù)流程圖
2.2.2 教師業(yè)務(wù)流程圖
教師登錄系統(tǒng)后,可以對課題進行管理,審核選題信息。教師可以查看學生的選題情況和學生個人信息,并確定是否錄用學生提交的課題。在選題完畢之后,教師可以在系統(tǒng)中批閱該課題的上交文件,并給出評價及評分。業(yè)務(wù)流程圖如上圖2所示。
2.2.3 學生業(yè)務(wù)流程圖
學生登錄系統(tǒng)后,可以查看公告,修改個人資料。學生在選題中,可以自由選擇教師及其提供的課題,也可以自己選取導師并自定義課題。選題后,學生允許提交各個時期的文檔文件,并將上傳信息顯示在教師端界面。學生的業(yè)務(wù)流程圖如圖3所示。
圖3 學生業(yè)務(wù)流程圖
3 詳細設(shè)計與實現(xiàn)
為了系統(tǒng)開發(fā)以及后期的維護更方便和明確,實現(xiàn)對項目的分割,將項目分為DAO、Service、Action層。根據(jù)面向?qū)ο笏枷耄嶓w類,實現(xiàn)實體關(guān)系,將后臺的數(shù)據(jù)表映射出來到這實體類中,提供給DAO、Service、Action層使用。
在web.xml添加Struts、Spring、Hibernate的filter和listener。在WEB-INF文件夾里面編寫Spring的application.xml,整合Spring和Hibernate,實現(xiàn)Spring的IoC和AOP功能。將spring與struts的整合在一起,使用了自動掃描技術(shù)和注解的方式為每個類自動配置映射文件,使得程序的可讀性變強。
利用Hibernate編寫DAO層,為每個模塊建立DAO接口,在接口中實現(xiàn)了增刪改查等方法,實現(xiàn)JAVA與數(shù)據(jù)庫的數(shù)據(jù)交互,供Service層調(diào)用。
為每個模塊建立獨立的Service接口,每個接口將實現(xiàn)不同模塊的邏輯。Service層是實現(xiàn)系統(tǒng)業(yè)務(wù)邏輯的接口。利用之前編寫的DAO層的接口,編寫Service層,實現(xiàn)業(yè)務(wù)邏輯。合理規(guī)劃Service的分類,在進行系統(tǒng)維護時會非常便利。
Action層用于處理頁面信息,根據(jù)不同的處理結(jié)果返回不同的頁面到客戶端。設(shè)計Action層,調(diào)用Service層方法進行邏輯處理,然后根據(jù)處理結(jié)果為客戶端返回頁面,最后對界面進行美化。實現(xiàn)過程如下:
在創(chuàng)建具體的Action時,應當先創(chuàng)建抽象類BaseAction,繼承Struts2中的ActionSupport抽象類,聲明一個map變量session,這樣以后每當實現(xiàn)一個Action,只要繼承BaseAction,便可使用到session進行權(quán)限控制。同時也要創(chuàng)建PageAction,繼承Struts2中的ActionSupport抽象類,并在該類中聲明一個分頁技術(shù)所需要的參數(shù),包括了記錄總條目、當前頁碼和總的頁數(shù)等參數(shù)。
客戶端每向服務(wù)器提交一次請求,都會先被相應的攔截器(interceptor)攔截并進行校驗,攔截器會檢驗session中的key為actor保存的對象是哪一個對象(Admin、Teacher、Student),若滿足攔截器的通過條件,將允許繼續(xù)進行操作,否則將強制跳轉(zhuǎn)到登陸頁。不同的Action將根據(jù)設(shè)計時規(guī)劃好的權(quán)限設(shè)置不同的攔截器。
在線word文件的預覽功能,使用的是PreviewAction里面的默認方法獲取當前的文件內(nèi)容,通過里面的execute方法將內(nèi)容在pageOffice的插件上顯示出來,并且如果我們修改里面的內(nèi)容后直接通過插件的poCtrl1.setSaveFilePage()方法將數(shù)據(jù)保存起來。那么下次我們點開文件就可以看到保存后的最新內(nèi)容。
數(shù)據(jù)管理功能,所要調(diào)用到的是DataManageAction里面的execute方法跳轉(zhuǎn)到數(shù)據(jù)管理界面。其中每當我們點擊備份時,我們將數(shù)據(jù)庫名、登陸賬號、密碼、安裝路徑等參數(shù)傳遞給DataManageAction里面的backup方法,將數(shù)據(jù)進行備份出來并彈出備份是否成功的提醒消息,然后將數(shù)據(jù)庫還原時,我們需要先選擇備份的文件,最后將頁面的參數(shù)傳遞給DataManageAction里面的restore方法,將數(shù)據(jù)還原并彈出是否還原成功消息。
日志管理功能,所調(diào)用到的是LogManageAction里面的execute方法跳轉(zhuǎn)到日志管理界面。其中當我們點擊“導出日志”時,我們將調(diào)用LogManageAction里面的export方法,將服務(wù)器上項目的HTK.log日志文件以流的形式將其下載到客戶端,并彈出保存的窗口讓用戶選擇存放的路徑。當我們點擊“清空日志”時,那么程序?qū){(diào)用LogManageAction里面的clean方法,將服務(wù)器上的HTK.log日志文件里面的內(nèi)容清空并彈出清空成功消息。
4 總結(jié)
設(shè)計難點:保證上傳信息的導入正確的添加到后臺數(shù)據(jù)庫中,對導入的xls文件是通過暫存在服務(wù)器讀取還是直接從客戶端讀取。評分功能中,如何確定角色并且實現(xiàn)正確評分。在進行系統(tǒng)詳細設(shè)計時,必須從一個宏觀的角度,考慮某一功能模塊設(shè)計會不會對其他的功能模塊造成不良影響。本系統(tǒng)設(shè)計中充分考慮到數(shù)據(jù)安全性和功能的可擴展性,按照軟件測試流程完成了軟件測試,確保系統(tǒng)最終滿足用戶需求。
參考文獻:
[1] 劉耀欽,袁承芬.MVC設(shè)計模式在Web開中的應用與研究[J].信息安全與技術(shù),2013(9).
[2] 孫元鵬,陳文宇,吳永強,等.J2EE架構(gòu)的模板化設(shè)計與實現(xiàn)[J].軟件工程與應用,2012(7).endprint
Action層用于處理頁面信息,根據(jù)不同的處理結(jié)果返回不同的頁面到客戶端。設(shè)計Action層,調(diào)用Service層方法進行邏輯處理,然后根據(jù)處理結(jié)果為客戶端返回頁面,最后對界面進行美化。實現(xiàn)過程如下:
在創(chuàng)建具體的Action時,應當先創(chuàng)建抽象類BaseAction,繼承Struts2中的ActionSupport抽象類,聲明一個map變量session,這樣以后每當實現(xiàn)一個Action,只要繼承BaseAction,便可使用到session進行權(quán)限控制。同時也要創(chuàng)建PageAction,繼承Struts2中的ActionSupport抽象類,并在該類中聲明一個分頁技術(shù)所需要的參數(shù),包括了記錄總條目、當前頁碼和總的頁數(shù)等參數(shù)。
客戶端每向服務(wù)器提交一次請求,都會先被相應的攔截器(interceptor)攔截并進行校驗,攔截器會檢驗session中的key為actor保存的對象是哪一個對象(Admin、Teacher、Student),若滿足攔截器的通過條件,將允許繼續(xù)進行操作,否則將強制跳轉(zhuǎn)到登陸頁。不同的Action將根據(jù)設(shè)計時規(guī)劃好的權(quán)限設(shè)置不同的攔截器。
在線word文件的預覽功能,使用的是PreviewAction里面的默認方法獲取當前的文件內(nèi)容,通過里面的execute方法將內(nèi)容在pageOffice的插件上顯示出來,并且如果我們修改里面的內(nèi)容后直接通過插件的poCtrl1.setSaveFilePage()方法將數(shù)據(jù)保存起來。那么下次我們點開文件就可以看到保存后的最新內(nèi)容。
數(shù)據(jù)管理功能,所要調(diào)用到的是DataManageAction里面的execute方法跳轉(zhuǎn)到數(shù)據(jù)管理界面。其中每當我們點擊備份時,我們將數(shù)據(jù)庫名、登陸賬號、密碼、安裝路徑等參數(shù)傳遞給DataManageAction里面的backup方法,將數(shù)據(jù)進行備份出來并彈出備份是否成功的提醒消息,然后將數(shù)據(jù)庫還原時,我們需要先選擇備份的文件,最后將頁面的參數(shù)傳遞給DataManageAction里面的restore方法,將數(shù)據(jù)還原并彈出是否還原成功消息。
日志管理功能,所調(diào)用到的是LogManageAction里面的execute方法跳轉(zhuǎn)到日志管理界面。其中當我們點擊“導出日志”時,我們將調(diào)用LogManageAction里面的export方法,將服務(wù)器上項目的HTK.log日志文件以流的形式將其下載到客戶端,并彈出保存的窗口讓用戶選擇存放的路徑。當我們點擊“清空日志”時,那么程序?qū){(diào)用LogManageAction里面的clean方法,將服務(wù)器上的HTK.log日志文件里面的內(nèi)容清空并彈出清空成功消息。
4 總結(jié)
設(shè)計難點:保證上傳信息的導入正確的添加到后臺數(shù)據(jù)庫中,對導入的xls文件是通過暫存在服務(wù)器讀取還是直接從客戶端讀取。評分功能中,如何確定角色并且實現(xiàn)正確評分。在進行系統(tǒng)詳細設(shè)計時,必須從一個宏觀的角度,考慮某一功能模塊設(shè)計會不會對其他的功能模塊造成不良影響。本系統(tǒng)設(shè)計中充分考慮到數(shù)據(jù)安全性和功能的可擴展性,按照軟件測試流程完成了軟件測試,確保系統(tǒng)最終滿足用戶需求。
參考文獻:
[1] 劉耀欽,袁承芬.MVC設(shè)計模式在Web開中的應用與研究[J].信息安全與技術(shù),2013(9).
[2] 孫元鵬,陳文宇,吳永強,等.J2EE架構(gòu)的模板化設(shè)計與實現(xiàn)[J].軟件工程與應用,2012(7).endprint
Action層用于處理頁面信息,根據(jù)不同的處理結(jié)果返回不同的頁面到客戶端。設(shè)計Action層,調(diào)用Service層方法進行邏輯處理,然后根據(jù)處理結(jié)果為客戶端返回頁面,最后對界面進行美化。實現(xiàn)過程如下:
在創(chuàng)建具體的Action時,應當先創(chuàng)建抽象類BaseAction,繼承Struts2中的ActionSupport抽象類,聲明一個map變量session,這樣以后每當實現(xiàn)一個Action,只要繼承BaseAction,便可使用到session進行權(quán)限控制。同時也要創(chuàng)建PageAction,繼承Struts2中的ActionSupport抽象類,并在該類中聲明一個分頁技術(shù)所需要的參數(shù),包括了記錄總條目、當前頁碼和總的頁數(shù)等參數(shù)。
客戶端每向服務(wù)器提交一次請求,都會先被相應的攔截器(interceptor)攔截并進行校驗,攔截器會檢驗session中的key為actor保存的對象是哪一個對象(Admin、Teacher、Student),若滿足攔截器的通過條件,將允許繼續(xù)進行操作,否則將強制跳轉(zhuǎn)到登陸頁。不同的Action將根據(jù)設(shè)計時規(guī)劃好的權(quán)限設(shè)置不同的攔截器。
在線word文件的預覽功能,使用的是PreviewAction里面的默認方法獲取當前的文件內(nèi)容,通過里面的execute方法將內(nèi)容在pageOffice的插件上顯示出來,并且如果我們修改里面的內(nèi)容后直接通過插件的poCtrl1.setSaveFilePage()方法將數(shù)據(jù)保存起來。那么下次我們點開文件就可以看到保存后的最新內(nèi)容。
數(shù)據(jù)管理功能,所要調(diào)用到的是DataManageAction里面的execute方法跳轉(zhuǎn)到數(shù)據(jù)管理界面。其中每當我們點擊備份時,我們將數(shù)據(jù)庫名、登陸賬號、密碼、安裝路徑等參數(shù)傳遞給DataManageAction里面的backup方法,將數(shù)據(jù)進行備份出來并彈出備份是否成功的提醒消息,然后將數(shù)據(jù)庫還原時,我們需要先選擇備份的文件,最后將頁面的參數(shù)傳遞給DataManageAction里面的restore方法,將數(shù)據(jù)還原并彈出是否還原成功消息。
日志管理功能,所調(diào)用到的是LogManageAction里面的execute方法跳轉(zhuǎn)到日志管理界面。其中當我們點擊“導出日志”時,我們將調(diào)用LogManageAction里面的export方法,將服務(wù)器上項目的HTK.log日志文件以流的形式將其下載到客戶端,并彈出保存的窗口讓用戶選擇存放的路徑。當我們點擊“清空日志”時,那么程序?qū){(diào)用LogManageAction里面的clean方法,將服務(wù)器上的HTK.log日志文件里面的內(nèi)容清空并彈出清空成功消息。
4 總結(jié)
設(shè)計難點:保證上傳信息的導入正確的添加到后臺數(shù)據(jù)庫中,對導入的xls文件是通過暫存在服務(wù)器讀取還是直接從客戶端讀取。評分功能中,如何確定角色并且實現(xiàn)正確評分。在進行系統(tǒng)詳細設(shè)計時,必須從一個宏觀的角度,考慮某一功能模塊設(shè)計會不會對其他的功能模塊造成不良影響。本系統(tǒng)設(shè)計中充分考慮到數(shù)據(jù)安全性和功能的可擴展性,按照軟件測試流程完成了軟件測試,確保系統(tǒng)最終滿足用戶需求。
參考文獻:
[1] 劉耀欽,袁承芬.MVC設(shè)計模式在Web開中的應用與研究[J].信息安全與技術(shù),2013(9).
[2] 孫元鵬,陳文宇,吳永強,等.J2EE架構(gòu)的模板化設(shè)計與實現(xiàn)[J].軟件工程與應用,2012(7).endprint