張?zhí)煳?/p>
(長春工程學(xué)院學(xué)生工作處,長春130012)
高校公寓文化是現(xiàn)代高校學(xué)生工作的重要組成部分,它是校園活動的一部分,其主要以公寓為背景區(qū)域,以學(xué)生為主體,有利于對大學(xué)生的個性培養(yǎng)和習(xí)慣養(yǎng)成。高校公寓文化對于大學(xué)生的學(xué)習(xí)和生活有促進作用,可推進學(xué)校的教學(xué)發(fā)展。高校公寓文化建設(shè)可分為3個部分:物質(zhì)文化建設(shè)、制度文化建設(shè)和精神文化建設(shè)。高校公寓文化建設(shè)的好壞直接影響著學(xué)生的身心健康。好的公寓文化對學(xué)生的思想健康成長有著推波助瀾的作用,具有正能量,相反,不切合實際的公寓文化會將學(xué)生引向歧途。因此,如何建設(shè)符合學(xué)校建設(shè)及社會進步的公寓文化是我們的追求目標(biāo)。俗話說“知己知彼,百戰(zhàn)不殆”,只有掌握了學(xué)生們的個性特點,才能因材施教,形成符合學(xué)校發(fā)展的學(xué)生公寓文化。
電子投票系統(tǒng)主要用來統(tǒng)計學(xué)生對公寓文化的期望及要求,統(tǒng)計結(jié)果可以成為分析學(xué)生個性的真實數(shù)據(jù),有利于學(xué)生工作者及時掌握學(xué)生的思想動態(tài),同時也可以根據(jù)學(xué)生的需求建設(shè)符合學(xué)生特點的公寓文化,有利于學(xué)生身心健康的成長。
本平臺軟件基于MAC的開發(fā)模式開發(fā),具有多種操作系統(tǒng)及應(yīng)用服務(wù)器平臺的特點,采用JSP、Servlet、JavaBean和JDBC等一些JAVA Web相關(guān)技術(shù)實現(xiàn)。瀏覽器方式,Java開發(fā)包為jdk1.6.0_10。JMDAP網(wǎng)上投票系統(tǒng)的結(jié)構(gòu)體系建立在Web的客戶/服務(wù)器(B/S)體系結(jié)構(gòu)的基礎(chǔ)上,系統(tǒng)采用了模塊化的設(shè)計方法,由于J2EE的可移植性好,可在各個操作系統(tǒng)之間進行無障礙的轉(zhuǎn)換,具有多操作系統(tǒng)性。并且J2EE為面向?qū)ο蟮牟僮?,體系架構(gòu)先進,同時利于維護和更新。
網(wǎng)上投票平臺由3個子系統(tǒng)組成:網(wǎng)上投票管理系統(tǒng)、網(wǎng)上投票設(shè)計和網(wǎng)上投票用戶管理系統(tǒng),具體流程如圖1所示。
圖1 網(wǎng)上投票系統(tǒng)流程圖
該系統(tǒng)是基于J2EE平臺開發(fā)設(shè)計的,完全依照MVC模式設(shè)計,數(shù)據(jù)庫采用SQL2000開發(fā),用來收集高校公寓文化的建議,進行調(diào)查研究,為更好地建設(shè)高校公寓文化提供客觀的數(shù)據(jù)支持,其系統(tǒng)功能模塊如圖2所示。
圖2 系統(tǒng)功能模塊圖
網(wǎng)上投票管理系統(tǒng)的功能包括投票表單生成和投票結(jié)果顯示2個模塊。
1)投票表單生成:這是投票系統(tǒng)的界面部分,用以顯示投票的具體選項,利用人機交互功能,采用Web瀏覽方式,投票人可實時修改所選選項。
2)投票結(jié)果顯示:投票人,即用戶,填寫完投票表單即可提交,系統(tǒng)將自動統(tǒng)計票數(shù),并將投票結(jié)果顯示在瀏覽器中,以方便用戶查詢。管理員可隨時查看當(dāng)前的投票情況,投票結(jié)果以條狀圖顯示。
投票設(shè)計系統(tǒng)是整個系統(tǒng)的核心部分,任何數(shù)據(jù)的采集都以此為基準(zhǔn),因此,投票的設(shè)計環(huán)節(jié)尤為重要。投票設(shè)計主要是針對學(xué)生的特點設(shè)計選票內(nèi)容,選票內(nèi)容要切合實際,符合公寓文化建設(shè)的要求,選題答案可多種,也可單種。投票設(shè)計系統(tǒng)主要包括選項的增加、查看、修改及刪除功能。
用戶在注冊登錄后即可通過投票表單進行選票的選擇,選擇完畢提交,答案即上傳到數(shù)據(jù)庫中,計算機根據(jù)數(shù)據(jù)庫中的統(tǒng)計結(jié)果自動計算票數(shù)。通過統(tǒng)計選項所對應(yīng)的票數(shù),我們就可以分析出學(xué)生的需求,以便為更好地建設(shè)公寓文化提供確切有效的數(shù)據(jù)支撐。
投票設(shè)計是由管理員來完成的,管理員可以設(shè)計選票內(nèi)容,隨時對選票的內(nèi)容進行刪減和修改,用戶沒有改動選票內(nèi)容的權(quán)限。每一個選項都具有備注的功能,如所有選項中沒有用戶所要求的選項,用戶可在備注中說明,并將自己的選項內(nèi)容填寫在此處。
投票用戶管理部分包括查看用戶、添加用戶及刪除用戶3個部分。已經(jīng)注冊的用戶需要經(jīng)過系統(tǒng)認(rèn)證才能登錄成功,并參加投票。用戶賬戶分為管理員賬戶及普通賬戶,管理員賬戶可對普通賬戶的信息進行修改,普通賬戶僅能對自己的信息進行修改,對其他用戶信息無權(quán)進行任何的修改與刪除。另外,為了用戶的信息不被泄露,此系統(tǒng)還使用了信息加密技術(shù),在數(shù)據(jù)的傳輸過程中進行了水印加密,以確保用戶信息的安全性。
J2EE使用多層的分布式應(yīng)用模型,應(yīng)用邏輯按功能劃分為組件,各個應(yīng)用足跡根據(jù)他們所在的層分布在不同的機器上。該系統(tǒng)的核心是投票管理系統(tǒng)和投票設(shè)計系統(tǒng),由于這2個模塊都具有持久化的特點,因此,我們使用JDBC來連接數(shù)據(jù)庫,并使用JTA來完成數(shù)據(jù)庫存取事務(wù)。
本系統(tǒng)采用JSP+JavaBean的模式實現(xiàn)在線投票。系統(tǒng)采用界面與業(yè)務(wù)邏輯分離的三層架構(gòu)設(shè)計(圖3)。將每層中的代碼壓縮封裝成不同的組件,對外只提供代碼的接口,這樣不僅提高了代碼的可重用性,對于系統(tǒng)的維護和更新也具有很好的可操作性。各層功能如下:
圖3 J2EE層次
1)界面層:該層主要用來生成投票表單,并對用戶進行身份驗證,以及返回投票結(jié)果。
2)業(yè)務(wù)邏輯層:將應(yīng)用層與業(yè)務(wù)層分離,使系統(tǒng)的安全性得到了提高,維護起來更加方便,對于將來的功能擴展也有充分的空間,并且可以使軟件程序員將所有的精力都放在構(gòu)建應(yīng)用服務(wù)上。本系統(tǒng)用JavaBean來實現(xiàn)業(yè)務(wù)邏輯層的業(yè)務(wù)代碼。
3)數(shù)據(jù)存儲層:負(fù)責(zé)管理系統(tǒng)的各種數(shù)據(jù),包括管理員對用戶身份信息核實的數(shù)據(jù),投票選項內(nèi)容的設(shè)計以及投票結(jié)果的顯示。除此之外還有各種與之關(guān)聯(lián)的數(shù)據(jù)及其用戶反饋的信息數(shù)據(jù)。業(yè)務(wù)邏輯層可以調(diào)用數(shù)據(jù)存儲層的數(shù)據(jù)進行查詢和檢索,也可將業(yè)務(wù)層產(chǎn)生的數(shù)據(jù)傳送到數(shù)據(jù)層進行存儲。
在諸多開發(fā)平臺中,SUN公司1999年推出的J2EE成為目前市場上主流的開發(fā)平臺。系統(tǒng)基本架構(gòu)設(shè)計采用J2EE平臺+ MVC設(shè)計模式,構(gòu)建起一個安全、可靠及可擴展性強、易于維護的系統(tǒng)。
1)使用EJB技術(shù)實現(xiàn)投票管理與投票設(shè)計2個模塊的功能,并部署在EJB容器中,同時使用JDBC連接數(shù)據(jù)庫,并使用JTA來完成數(shù)據(jù)庫存取事務(wù)。
2)利用JSP/Servlet技術(shù)實現(xiàn) Web的瀏覽應(yīng)用:投票表單的生成和投票選項的選擇。使用JMS將選項的具體內(nèi)容發(fā)送到投票平臺,實現(xiàn)異步的基于消息的信息目錄傳輸。使用Web Services技術(shù)包裝操作邏輯,使得更多的其他外部投票平臺能夠?qū)⑼镀钡男畔⑦M行集成。將用戶信息和訪問控制服務(wù)進行集成,以方便管理員的后臺管理,由于投票管理需要由管理員進行處理,分別將用戶信息和訪問控制服務(wù)用JACC和JND進行一次性集成,以便方便員工的使用。
3)使用Application Client構(gòu)架一個管理員客戶端,并運用JMX來管理這個客戶端,將這個應(yīng)用融入到這個系統(tǒng)管理中去。
目前,比較成熟的 MVC實現(xiàn)框架有Struts、Spring、ZF、.NET等。Struts框架(如圖4)是Java Web MVC框架中不爭的王者。Struts框架的優(yōu)點:1)開源軟件,能夠減少運用MVC設(shè)計模型開發(fā)Web應(yīng)用的時間;2)Taglib豐富,運用靈活,能大大提高開發(fā)效率;3)頁面導(dǎo)航功能是今后的一個發(fā)展方向,使系統(tǒng)的脈絡(luò)更加清晰。Struts框架主要包括:模型、視窗和控制器。
1)模型部分。包括系統(tǒng)狀態(tài)和可以改變此狀態(tài)的操作。本系統(tǒng)采用JavaBean和EJB組件設(shè)計和實現(xiàn)投票系統(tǒng)的事務(wù)邏輯。要注意的是Struts本身并不實現(xiàn)事務(wù)邏輯,但它對已完成的事務(wù)邏輯進行調(diào)用。
2)控制器部分。ActionServlet的servlet充當(dāng)了控制器的角色,它根據(jù)描述模型、視圖、控制器對應(yīng)關(guān)系的struts-config.xml的配置文件,轉(zhuǎn)發(fā)視圖請求,組裝響應(yīng)數(shù)據(jù)模型。框架的核心配置文件就是這個默認(rèn)的struts-config.xml文件,在這個默認(rèn)的配置文件里我們可以根據(jù)需要再融入一些其他的配置文件。在通常的應(yīng)用開發(fā)中,我們可以為每個不同的模塊單獨配置一個struts-config.xml文件,這樣有利于我們的管理和維護,這也是我們要配置的主要文件。
3)視窗部分。視圖層包含2個部分:JSP頁面和ActionForm,本系統(tǒng)主要由JSP完成信息顯示和控制器處理結(jié)果顯示的功能。Struts具有豐富的自定義標(biāo)簽庫(Html,Bean,Logic,tiles等),可以簡化創(chuàng)建國際化用戶界面的過程,來幫助用戶解決顯示邏輯,并利用ActionForm組件將信息傳遞到控制層,這有利于分開表現(xiàn)邏輯和程序邏輯。
圖4 Struts框架流程
流程說明:
1)客戶端發(fā)出一個指向控制器的http請求;
2)這個請求經(jīng)控制器(Action Servlet)進行初始化工作,讀取配置文件(struts-config.xml),為不同的Struts模塊初始化相應(yīng)的Module Config對象。比如配置文件中的Action映射定義都保存在Action Config集合中。相應(yīng)地有ControI Config集合、Form Bean Config集合、Forward Config集合和Message Resources Config集合等。
3)Struts框架的處理流程清楚地體現(xiàn)了MVC系統(tǒng)的特點,所有的頁面請求都將發(fā)送到Struts的前端控制器Action Servlet中(因此如果要進行前置處理,可以繼承Action Servlet并重寫processt)方法),同時Action Servlet也將根據(jù)struts-config.xml配置文件中的設(shè)置(<action>標(biāo)簽)來決定轉(zhuǎn)向到那個后端控制器Action類。
4)當(dāng)頁面中的Form表單被提交時,Action Form將自動地封裝和處理該Form表單中的數(shù)據(jù)。同時在Action的子類中可以存取存儲在Action Form中的Form表單數(shù)據(jù)。
5)Action的子類將處理所獲得的存儲在Action Form中的Form表單數(shù)據(jù),處理和響應(yīng)客戶請求,它還調(diào)用后臺的Java Bean組件完成具體的業(yè)務(wù)邏輯。同時也按照在struts-config.xml文件內(nèi)的forward標(biāo)簽內(nèi)容(如<forward name="say Hello"path="/say Hello.jsp"/>),將結(jié)果交由某個JSP頁面顯示。
本系統(tǒng)是基于J2EE平臺,結(jié)合MVC設(shè)計模式設(shè)計的高校公寓文化投票系統(tǒng),實現(xiàn)了基本的投票管理、投票設(shè)計及投票用戶管理的功能,利用了SQL2000的便利性和實用性,具有操作方便、界面友好、功能強大的特點,為高校公寓文化建設(shè)收集真實有效的數(shù)據(jù)提供了先進的手段,有利于高校公寓文化的蓬勃發(fā)展。
[1]李剛.整合struts+Hibernate+Spring應(yīng)用開發(fā)詳解[M].北京:清華大學(xué)出版社,2008.
[2]顏晶晶.基于Internet的電子投票系統(tǒng)的設(shè)計與實現(xiàn)[D].天津:天津大學(xué),2006.
[3]鄔繼承.J2EE開源精編精要15講[M].北京:電子工業(yè)出版社,2008.
[4]白海雄,勞曉燕,陳益民,等.新形勢下高校公寓文化建設(shè)探索[J].寧波大學(xué)學(xué)報:教育科學(xué)版,2009(2):105-108.