于明輝 石宇靜 宋垚 苗金龍 張金煒 王英林
摘要:為了解決大學(xué)校園文化傳播的速度較慢、發(fā)布的不統(tǒng)一、發(fā)布較為分散等不足之處,于是想到了開發(fā)一個(gè)基于Struts2框架的大學(xué)校園文化管理系統(tǒng),本系統(tǒng)采用MVC設(shè)計(jì)模式,通過對(duì)校園文化的收集、整理、編輯和發(fā)布,完善了上述的幾個(gè)不足之處,使得學(xué)生和老師能在第一時(shí)間掌握校園動(dòng)態(tài)。從實(shí)際開發(fā)及應(yīng)用的角度來說,基于Struts2框架的Web開發(fā),有效的提高了開發(fā)效率,在降低了各個(gè)部分之間耦合度的同時(shí),實(shí)現(xiàn)了多人同時(shí)開發(fā)系統(tǒng)的不同功能,與此同時(shí),也保證了系統(tǒng)的后期的維護(hù)和新功能的開發(fā)。
關(guān)鍵詞:Struts2 WebWork 校園文化 MVC
中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2016)08-0166-01
隨著校園文化的日益豐富多彩,網(wǎng)絡(luò)媒體的快速發(fā)展,傳統(tǒng)的校園文化傳播方式,如:板報(bào)、傳單、地毯式宣傳等已經(jīng)江河日下,日薄西山,無法滿足文化傳播的需求。因此,如何將日益豐富多彩的校園文化與“互聯(lián)網(wǎng)+”思維融合到一起,利用網(wǎng)絡(luò)優(yōu)異的傳播速度將大學(xué)的校園文化及時(shí)傳播出去成為了一個(gè)急需解決的問題。
與此同時(shí),這也是一個(gè)非常好的契機(jī),在網(wǎng)絡(luò)高速發(fā)展的今天,互聯(lián)網(wǎng)已經(jīng)在各個(gè)領(lǐng)域深入人心了,大學(xué)更應(yīng)該走在時(shí)代的前沿。校園文化的傳播就顯得極為重要了,不僅能讓理工的學(xué)生充分利用課余時(shí)間沐浴在豐富多彩的校園文化之中,放松心情,增長(zhǎng)見識(shí);同時(shí)也能讓更多的社會(huì)人士以及其他院校的同學(xué)更加深入的認(rèn)識(shí)理工,了解理工,增加理工在社會(huì)上的認(rèn)可度與知名度!
傳統(tǒng)的Web開發(fā)模式中,是JSP+Servlet模式的,這種開發(fā)模式將數(shù)據(jù)訪問、業(yè)務(wù)處理、前端界面顯示全部放在了一起,這種開發(fā)模式,在早期業(yè)務(wù)相對(duì)簡(jiǎn)單的時(shí)候用起來簡(jiǎn)單明快。然而業(yè)務(wù)不可能一成不變,這時(shí)候Service越來越多,JSP等代碼的可維護(hù)性越來越差。目前幾乎已經(jīng)被淘汰了。取而代之的是各種以MVC為設(shè)計(jì)模式的框架,如WebWork,Struts1,Struts2,Spring。這些框架都為Web應(yīng)用層定義了一個(gè)層次清晰、分工明確的編程模型。在這些框架之中,由于Struts2強(qiáng)大的標(biāo)簽庫、豐富的攔截器以及開放的源代碼等到了非常廣泛的應(yīng)用,成為了最為成功的Web框架之一。
模型--視圖--控制器(MVC,Model--View--Controller)在目前的軟件開發(fā)過程中應(yīng)用的非常廣泛,是一種非常經(jīng)典的軟件設(shè)計(jì)模式。用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示相互分離的方式來組織代碼,極大地降低了三者之間的耦合度,例如,當(dāng)你想要修改界面顯示的時(shí)候,你不需要重新編寫業(yè)務(wù)邏輯。有效的提高的代碼的可維護(hù)性,降低了軟件設(shè)計(jì)的難度同時(shí)也簡(jiǎn)化了分組開發(fā)。不同的開發(fā)人員可以同時(shí)開發(fā)視圖,控制邏輯和業(yè)務(wù)邏輯。
在這里簡(jiǎn)單說明一下Model--View--Controller三個(gè)部分分別負(fù)責(zé)完成哪些功能:
(1)模型(Model)是應(yīng)用程序中用于處理應(yīng)用程序數(shù)據(jù)邏輯的部分。通常模型對(duì)象負(fù)責(zé)在數(shù)據(jù)庫中存取數(shù)據(jù)。(2)視圖(View)是應(yīng)用程序中處理數(shù)據(jù)顯示的部分。通常視圖是依據(jù)模型數(shù)據(jù)創(chuàng)建的。(3)控制器(Controller)是應(yīng)用程序中處理用戶交互的部分。通??刂破髫?fù)責(zé)從視圖讀取數(shù)據(jù),控制用戶輸入,并向模型發(fā)送數(shù)據(jù)。
系統(tǒng)分為以下幾個(gè)模塊,如圖1所示。
本系統(tǒng)的開發(fā)環(huán)境為在該系統(tǒng)中,最重要的模塊之一就是二手市場(chǎng)模塊了。每當(dāng)大四的學(xué)生畢業(yè)離校時(shí),會(huì)有大量的舊貨出售,然而這些消息并不能及時(shí)的讓每一位同學(xué)或老師看到。這就是這個(gè)模塊的最原始的動(dòng)力所在。在這個(gè)模塊中,只有登錄之后的用戶才能發(fā)布二手物品出售的消息,沒有登錄的用戶只能瀏覽;用戶進(jìn)入發(fā)布信息的頁面之后,不僅能夠發(fā)布文字描述性的消息,還能發(fā)布圖片,能夠提供給瀏覽者更加直觀的信息。這些信息通過FORM表單提交,F(xiàn)ilterDispatcher攔截這個(gè)請(qǐng)求之后,會(huì)將該請(qǐng)求發(fā)送到框架里進(jìn)行進(jìn)一步的處理,框架在收到這個(gè)請(qǐng)求之后,會(huì)依據(jù)struts.xml文件中所配置的action標(biāo)簽的name屬性決定使用哪個(gè)action標(biāo)簽,之后再根據(jù)action標(biāo)簽的class屬性來確定使用哪個(gè)action類來處理該請(qǐng)求,并確定使用該action中的哪個(gè)方法。默認(rèn)是execute方法。在execute方法內(nèi)對(duì)FROM表單中的數(shù)據(jù)進(jìn)行解析,存儲(chǔ)到數(shù)據(jù)庫中??紤]到數(shù)據(jù)庫性能,并沒有將圖片以二進(jìn)制的形式存儲(chǔ)到數(shù)據(jù)庫中,而是將圖片存儲(chǔ)到了服務(wù)器上的一個(gè)固定的文件內(nèi),在數(shù)據(jù)庫中則存放該文件在服務(wù)器中的地址。因?yàn)樗杏脩羯蟼鞯膱D片都在一個(gè)文件夾里,所有可能出現(xiàn)上傳圖片重名的情況,因此在將圖片上傳到服務(wù)器的時(shí)候用UUID.randomUUID()和時(shí)間戳對(duì)文件進(jìn)行重命名,保證了文件夾里不可能出現(xiàn)重命的情況。成功處理完這些之后,execute會(huì)返回出一個(gè)字符串,每個(gè)字符串對(duì)應(yīng)一個(gè)相應(yīng)的視圖,當(dāng)業(yè)務(wù)控制器處理完用戶請(qǐng)求之后,根據(jù)處理的結(jié)果返回不同的字符串,用來對(duì)應(yīng)顯示不同的視圖在前端頁面,成功的返回到前臺(tái)頁面之后,先根據(jù)二手信息發(fā)布的時(shí)間就行排序,保證第一條是最新的消息,之后使用分頁技術(shù)對(duì)所有二手信息進(jìn)行分頁顯示,之后使用AJAX對(duì)該模塊定時(shí)刷新,保證用戶看到的都是最新的消息。就行Eclipse,以Mysql為后臺(tái)數(shù)據(jù)庫支撐環(huán)境,設(shè)計(jì)出了有實(shí)用價(jià)值的校園文化管理系統(tǒng),該系統(tǒng)與同類系統(tǒng)相比,不僅性能較高、運(yùn)行較為穩(wěn)定,而且可維護(hù)性和可擴(kuò)展型都比較出色。
參考文獻(xiàn)
[1]楊少敏,樊雙靈.Struts2 Web開發(fā)學(xué)習(xí)實(shí)錄[M].北京:清華大學(xué)出版社,2011.
[2]馬建紅,李占波.JSP應(yīng)用與開發(fā)技術(shù)(第二版)[M].北京:清華大學(xué)出版社,2014.
[3]賈蓓,鎮(zhèn)明敏.JAVAWeb整合開發(fā)實(shí)戰(zhàn)——基于Struts2+Hibernate+Spring[M].北京:清華大學(xué)出版社,2015.
[4]李剛.輕量級(jí)JavaEE企業(yè)應(yīng)用實(shí)戰(zhàn) Struts2+Spring 4 + Hibernate整合開發(fā)[M].北京:電子工業(yè)出版社,2015.