史智 華中偉 胥薇 任勇 徐云龍
摘 要:該文通過(guò)對(duì)科研管理實(shí)際情況的調(diào)研和對(duì)當(dāng)前一些網(wǎng)上辦公系統(tǒng)的學(xué)習(xí),設(shè)計(jì)出了基于SSH (Spring+Struts+Hibernate)架構(gòu)的教師科研信息管理系統(tǒng),分析了系統(tǒng)的必要性和可行性,確定該系統(tǒng)開發(fā)的目標(biāo)和任務(wù)。實(shí)現(xiàn)了模塊信息錄入、信息查詢等主要功能。使得申報(bào)各類項(xiàng)目的支撐材料的獲得更容易,教師科研成果能夠?qū)崟r(shí)更新,解決證明材料丟失等問(wèn)題。
關(guān)鍵詞:信息管理系統(tǒng) SSH框架 科研管理
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2016)02(a)-0097-02
在日益信息化和網(wǎng)絡(luò)化的現(xiàn)代社會(huì)中,辦公流程的網(wǎng)絡(luò)化、電子化已成為一種趨勢(shì),在這樣的環(huán)境中,學(xué)院的教學(xué)科研管理工作仍然基本處于手工管理階段,操作流程復(fù)雜、勞動(dòng)強(qiáng)度大、耗時(shí)巨大,而學(xué)院信息管理的落后導(dǎo)致科研人員獲取信息的艱巨、付出大量的重復(fù)勞動(dòng)等。
如何利用學(xué)校的網(wǎng)絡(luò)資源,并改進(jìn)現(xiàn)存的各種缺點(diǎn),將繁瑣復(fù)雜的科研信息管理工作變得輕松簡(jiǎn)單,開發(fā)出一個(gè)教學(xué)科研管理信息系統(tǒng),是這次課題所要解決的問(wèn)題。該系統(tǒng)劃分為教師功能和管理員功能2個(gè)模塊,該文主要介紹教師功能模塊的開發(fā)與實(shí)現(xiàn)過(guò)程[1]。
1 技術(shù)簡(jiǎn)介
1.1 開源框架Struts、Spring 和Hibernate簡(jiǎn)介
Struts是一個(gè)基于MVC設(shè)計(jì)模式開源項(xiàng)目,作為前臺(tái)控制框架簡(jiǎn)化了程序的開發(fā),使界面開發(fā)人員和Java程序員達(dá)到了有效的分離,使項(xiàng)目的可擴(kuò)展性大大增強(qiáng),提升了開發(fā)效率,降低了開發(fā)成本。[2]
教師科研信息管理系統(tǒng)采用最流行的J2EE架構(gòu):SSH,其中,Spring技術(shù)為核心構(gòu)件,數(shù)據(jù)的持久化使用Hibernate完成,表現(xiàn)層的MVC框架使用Struts。這些框架都是目前最流行的輕量級(jí)J2EE框架,3個(gè)框架組合可以保證更好的開發(fā)效率,保證系統(tǒng)的穩(wěn)定性、可靠性更好。
用這3種開源框架的策略如下:表示層用Struts,業(yè)務(wù)層用Spring,而持久化層則用Hibernate,如圖1所示。
1.2 Spring的應(yīng)用
Spring作為核心框架使用。Spring為J2EE應(yīng)用的表現(xiàn)層、業(yè)務(wù)邏輯層及數(shù)據(jù)持久化層提供了極好的解決方案,因?yàn)镾pring提供的不僅僅是一種框架,而且提供了一種企業(yè)應(yīng)用的開發(fā)規(guī)范。Spring是實(shí)際開發(fā)的抽象,其提供的“模板設(shè)計(jì)”大大簡(jiǎn)化了應(yīng)用的開發(fā)。Spring的系列Template將通用步驟以優(yōu)雅的方式完成,留給開發(fā)者的僅僅是與特定應(yīng)用相關(guān)的部分,從而大大提高企業(yè)應(yīng)用的開發(fā)效率。
Spring提供的IoC容器管理所有的業(yè)務(wù)邏輯組件、DAO組件,Struts的控制器Action也由通過(guò)IoC容器提供管理。各組件以松耦合的方式組合在一起,組件與組件之間的依賴正是通過(guò)Spring的依賴注入管理的。DAO對(duì)象都采用面向接口編程的方式,從而降低系統(tǒng)異構(gòu)的代價(jià)。
1.3 Hibernate的應(yīng)用
持久化層封裝了數(shù)據(jù)訪問(wèn)細(xì)節(jié)(以持久化類 POJO+*.hbm.xml封裝數(shù)據(jù)訪問(wèn)細(xì)節(jié)),連接數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢、插入、刪除、更新。
1.4 Struts的應(yīng)用
系統(tǒng)使用Struts作為MVC框架。Struts 作為MVC模式的典型實(shí)現(xiàn),對(duì)Model、View和Controller都提供了對(duì)應(yīng)的實(shí)現(xiàn)組件,下面對(duì)Struts 架構(gòu)的工作原理簡(jiǎn)單介紹。
(1)Model:Model部分由ActionForm和JavaBean 組成。其中ActionForm用于封裝用戶請(qǐng)求參數(shù),所有的用戶請(qǐng)求參數(shù)由系統(tǒng)自動(dòng)封裝成ActionForm對(duì)象:該對(duì)象被ActionServlet轉(zhuǎn)發(fā)給Action;然后Action根據(jù)ActionForm里的請(qǐng)求參數(shù)處理用戶請(qǐng)求。而JavaBean則封裝了底層的業(yè)務(wù)邏輯,包括數(shù)據(jù)庫(kù)訪問(wèn)等。其中包括ActionFormBean,它是一個(gè)普通的JavaBean,Struts利用它來(lái)進(jìn)行視圖和控制器之間表單數(shù)據(jù)的傳遞。
(2)View:View是一組HTML 或JSP 頁(yè)面,不包括業(yè)務(wù)邏輯和模型信息。
(3)Controller:Controller可以理解為模型與視圖之間溝通的橋梁,它可以分派用戶的請(qǐng)求并選擇適當(dāng)?shù)囊晥D用于顯示?;镜目刂破鹘M件是ActionServlet類中的實(shí)例Servlet。
整個(gè)應(yīng)用由客戶端請(qǐng)求驅(qū)動(dòng),當(dāng)客戶端請(qǐng)求被ActionServlet攔截時(shí),ActionServlet根據(jù)請(qǐng)求決定是否需要調(diào)用Model處理用戶請(qǐng)求,當(dāng)用戶請(qǐng)求處理完成后,其處理結(jié)果通過(guò)JSP 頁(yè)面呈現(xiàn)給用戶。通過(guò)Action攔截所有請(qǐng)求有個(gè)好處,就是可以將所有JSP頁(yè)面放入Web-INF/路徑下,可以避免用戶直接訪問(wèn)JSP頁(yè)面,保證系統(tǒng)安全性。
2 系統(tǒng)總體設(shè)計(jì)與實(shí)現(xiàn)
系統(tǒng)功能模塊說(shuō)明:根據(jù)對(duì)該系統(tǒng)的需求分析,該系統(tǒng)分為教師功能和管理員功能兩個(gè)模塊,其中,教師功能模塊的示意圖如圖2所示。
3 系統(tǒng)功能設(shè)計(jì)
3.1 系統(tǒng)首頁(yè)與登錄模塊
系統(tǒng)首頁(yè)中間為公告欄與白板欄,左側(cè)是登錄模塊。在首頁(yè)右側(cè)上方為4個(gè)導(dǎo)航按鈕,分別為首頁(yè)、教師入口、管理員入口和版本說(shuō)明。在首頁(yè)左側(cè)有登錄模塊,教師首次登錄后系統(tǒng)會(huì)提醒修改初始密碼和資料信息。在登錄時(shí)首先進(jìn)行身份和密碼的驗(yàn)證。
3.2 個(gè)人信息管理模塊
個(gè)人信息管理是對(duì)教師基本信息進(jìn)行管理。教師的部分信息是管理員通過(guò)數(shù)據(jù)庫(kù)導(dǎo)入的,教師本身是無(wú)法修改的,教師能夠進(jìn)行管理的個(gè)人信息系統(tǒng)顯示為可修改文本框,修改后保存即可。
3.3 上傳模塊的實(shí)現(xiàn)
教師功能頁(yè)面左側(cè)導(dǎo)航欄的“資料上傳”包括“學(xué)術(shù)論文上傳”“著作信息上報(bào)”“學(xué)術(shù)活動(dòng)信息上報(bào)”“科研項(xiàng)目上報(bào)”等6個(gè)子項(xiàng)。此功能模塊主要對(duì)論文、專利信息等進(jìn)行上傳存檔。用戶在上報(bào)資料時(shí)必須填寫的一些信息。其中,除了編號(hào)是系統(tǒng)自動(dòng)分配的,上報(bào)人是系統(tǒng)自動(dòng)識(shí)別的外,其余均由教師進(jìn)行填寫。同時(shí)上傳論文PDF格式的電子文檔以及相關(guān)資料掃描文件。
3.4 查詢模塊
查詢模塊是具有一定權(quán)限后才能進(jìn)行操作的,其包括“教材查詢”“論文查詢”“著作查詢”“學(xué)術(shù)活動(dòng)查詢”“專利信息查詢”“科研項(xiàng)目查詢”和“學(xué)院資料查詢”7個(gè)查詢子項(xiàng)。
進(jìn)入查詢頁(yè)面后可以根據(jù)需要查詢的內(nèi)容設(shè)置查詢條件。填寫好查詢條件后,點(diǎn)擊“確定”按鈕提交,系統(tǒng)自動(dòng)搜索符合條件的論文,并將它們列在表格中以待查閱。
3.5 統(tǒng)計(jì)模塊
統(tǒng)計(jì)模塊包括“個(gè)人業(yè)績(jī)統(tǒng)計(jì)”和“師資情況統(tǒng)計(jì)”兩個(gè)子項(xiàng),根據(jù)查詢者本人的ID,到表中查找符合條件的信息,將那些表中通過(guò)審核并計(jì)算過(guò)業(yè)績(jī)點(diǎn)的數(shù)據(jù)查找出來(lái)并列在JSP頁(yè)面的相應(yīng)表格中。此時(shí)用戶能夠看到自己當(dāng)年的業(yè)績(jī)點(diǎn)統(tǒng)計(jì)情況,如果發(fā)現(xiàn)所列出的業(yè)績(jī)點(diǎn)與自己計(jì)算的有出入,可以通過(guò)發(fā)送郵件的方法聯(lián)系管理員。這樣一來(lái),用戶可以隨時(shí)查看自己的業(yè)績(jī)點(diǎn)情況,方便進(jìn)行工作量的調(diào)整,也可以及時(shí)發(fā)現(xiàn)問(wèn)題。
3.6 查看公告模塊
網(wǎng)站登錄的首頁(yè)包括學(xué)院新聞、公告、通知。在其中列的是當(dāng)前管理員發(fā)布的一些公告,點(diǎn)擊這些公告的標(biāo)題即可展開一個(gè)相應(yīng)的頁(yè)面,進(jìn)行公告的查看。點(diǎn)擊列表中公告的標(biāo)題,展開相應(yīng)的公告詳細(xì)內(nèi)容。
3.7 權(quán)限申請(qǐng)模塊
該系統(tǒng)是對(duì)教師開放使用的,所以在使用過(guò)程中注意保護(hù)他人隱私是人們所關(guān)注的。所以該系統(tǒng)設(shè)置了一項(xiàng)權(quán)限申請(qǐng)功能,“權(quán)限申請(qǐng)”包括“當(dāng)前權(quán)限查看”和“權(quán)限申請(qǐng)”。如果教師不清楚當(dāng)前是否有權(quán)限進(jìn)行系統(tǒng)內(nèi)部的查詢操作,可以點(diǎn)擊“當(dāng)前權(quán)限查看”,如果顯示的是沒(méi)有權(quán)限,則可以點(diǎn)擊權(quán)限申請(qǐng)進(jìn)行申請(qǐng)書的填寫,填寫完畢后發(fā)送,等待管理員審批。權(quán)限是有一定時(shí)效的,管理員會(huì)根據(jù)教師發(fā)送的申請(qǐng)具體情況進(jìn)行權(quán)衡,一定時(shí)間之后,關(guān)閉賦予的權(quán)限。
4 結(jié)語(yǔ)
通過(guò)一階段的工作,一個(gè)教學(xué)科研管理信息系統(tǒng)初步實(shí)現(xiàn),它可以基本滿足用戶的需要,如若正式使用,應(yīng)該能夠解決學(xué)院科研信息管理現(xiàn)有的問(wèn)題。減輕管理員的負(fù)擔(dān),化整為零,化繁雜為簡(jiǎn)單。但由于時(shí)間和精力的有限,系統(tǒng)做得有些粗糙,部分功能沒(méi)有考慮到實(shí)際使用時(shí)會(huì)出現(xiàn)的不足,有待進(jìn)一步深入開發(fā)時(shí)進(jìn)行研究與解決。
參考文獻(xiàn)
[1] 胡曉丹,魏長(zhǎng)軍.基于Struts+Spring+Hibernate架構(gòu)的能源管理系統(tǒng)的研究[J].計(jì)算機(jī)與現(xiàn)代化,2006,136(12):26-30.
[2] 朱亞興,張延政.基于SSH架構(gòu)的移動(dòng)醫(yī)療應(yīng)用服務(wù)模型及實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2012(6):172-175.
[3] 李洋,孫永維,許冰,等.基于Ajax,Struts,Hibernate和Spring的J2EE架構(gòu)[J].吉林大學(xué)學(xué)報(bào):信息科學(xué)版,2011(6):576-584.