陳宇
摘 要 隨著JAVA的普及和流行,J2EE平臺也在WEB開發(fā)中發(fā)揮著越來越大的作用,伴隨其的各種新技術(shù)如雨后春筍般大量的涌出。為了更好的研究J2EE體系架構(gòu),本文采用了業(yè)界流行的 Struts、Hibernate和 Spring三種框架,實現(xiàn)了一個功能強大的高性能論壇社區(qū),從而在實踐中更深入的理解J2EE。
關(guān)鍵詞 JAVA J2EE 論壇 系統(tǒng)設(shè)計 程序設(shè)計
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A
1需求分析概述
SSH是Struts、Spring和Hibernate三種框架組合在一起的簡稱。本文主要目的就是用SSH實現(xiàn)一個高性能,功能強大的論壇社區(qū)。從而真正的將這三個框架運用在實際開發(fā)的過程中。
論壇的整體設(shè)計與實現(xiàn)是建立在J2EE多層框架基礎(chǔ)上的,在做好需求的基礎(chǔ)上,要求充分利用J2EE平臺下的組件,利用J2EE平臺的先進(jìn)性,讓實現(xiàn)充分滿足系統(tǒng)的總體設(shè)計,并讓最后的系統(tǒng)展現(xiàn)出良好的性能。
在當(dāng)今的信息時代,論壇已經(jīng)成為信息系統(tǒng)一個重要組成部分。一個社區(qū)論壇需要完成以下基本功能,發(fā)帖,回帖,會員注冊,修改已有的話題等。同時還要提供管理員管理的后臺界面,管理員具有増加刪除主題、管理已經(jīng)注冊的用戶、選定版主、刪除黑名単上用戶、直接對帖子進(jìn)行修改等功能。但是用傳統(tǒng)的模式(如JSP+JavaBean)做出來的論壇也存在許多問題:
(1)系統(tǒng)難以維護(hù):雖然有些論壇采用了MODEL2,但是老式論壇很少在持久層采用ORM的思想,這將導(dǎo)致持久層開發(fā)時間過長,增大系統(tǒng)開發(fā)成本,并且可移植性差等一系列問題。甚至有些系統(tǒng)仍然采用MODEL1來開發(fā),那就更難以維護(hù)了。
(2)系統(tǒng)難以擴展:傳統(tǒng)論壇業(yè)務(wù)邏輯與持久層的數(shù)據(jù)處理部分經(jīng)?;煸谝黄穑懿磺逦?,這從某種程度上講增大了系統(tǒng)擴展難度。當(dāng)你想増加項新功能的時候,往往會被以前那些混合在一起的邏輯搞的不知如何下手。
(3)系統(tǒng)難以升級:老式論壇采用的有些技術(shù)已經(jīng)落伍,而我們現(xiàn)在用的新型框架都是當(dāng)今的主流,后面還有開源社區(qū)的大力支持,這也為以后系統(tǒng)升級帶來了很大的便利。
(4)系統(tǒng)運行效率不高:由于層次的混亂和設(shè)計的不先進(jìn)性,傳統(tǒng)論壇存在一些先天性的缺陷,這導(dǎo)致它的運行效率不高,速度慢。
所以我們很有必要建立一種設(shè)計結(jié)構(gòu)更合理,系統(tǒng)邏輯更清晰,性能更高的新型論壇。
2系統(tǒng)總體設(shè)計概述
從功能實現(xiàn)方面講,該社區(qū)論壇主要有四個模塊,權(quán)限管理模塊、緩存設(shè)計模塊、用戶功能模塊和管理員功能模塊。
2.1權(quán)限管理模塊概述
權(quán)限管理是該論壇中一個很重要的組成部分,采用Spring的Acegi實現(xiàn)。 Acegi實際上就是基于Spring的IoC機制產(chǎn)生的一種開源框架,后被Spring并入,成為Spring框架的一部分。
2.1.1角色授權(quán)管理
傳統(tǒng)的基于角色的授權(quán)管理系統(tǒng)以角色為核心,實現(xiàn)對資源的統(tǒng)一管理,管理起來方便清晰。但是單一的角色授權(quán)也存在一些缺點,因為對權(quán)限的一些變動就可能需要增加新的角色,容易造成角色泛濫。
本文的主要角色有游客、普通用戶、版主、管理員四種。每種角色對應(yīng)的都有自己的權(quán)限,在分配角色的時候,實際上也就相當(dāng)于將權(quán)限一起分配。如果需要額外的權(quán)限授予,就用管理員帳號登陸以后再直接進(jìn)行授權(quán)分配。這樣一來,一方面,系統(tǒng)中定義的角色顯得簡單、清晰,另一方面,直接為用戶授權(quán)時也顯得直觀和簡單,可以滿足實際系統(tǒng)中用戶的個性化權(quán)限需求。
2.1.2權(quán)限授權(quán)管理
單純的使用角色—權(quán)限分配在上一節(jié)里面已經(jīng)被認(rèn)為是不適宜的,為了更好的進(jìn)行權(quán)限管理,我們引入了權(quán)限授權(quán)管理。
權(quán)限授權(quán)管理就是說除了通過用戶角色分配可以使用戶獲得權(quán)限外,管理員還可以直接對用戶進(jìn)行授權(quán)。這個時候,除了用戶對應(yīng)的本身角色所擁有的權(quán)限,它還會擁有管理員直接對它進(jìn)行授權(quán)所得到的權(quán)限。
2.2 緩存設(shè)計模塊概述
系統(tǒng)內(nèi)存的使用量總是有一定限制的。在高負(fù)載、高壓力的應(yīng)用中最忌諱對內(nèi)存的過多濫用。有效的使用緩存既可以降低內(nèi)存的使用總量又可以提升整體應(yīng)用的速度。
在大多數(shù)的應(yīng)用服務(wù)程序中,用戶請求處理的標(biāo)準(zhǔn)流程是將HTTP請求發(fā)送到Web服務(wù)器。之后服務(wù)器解析請求內(nèi)容的動態(tài)頁面,并且把訪問數(shù)據(jù)庫的請求發(fā)送到數(shù)據(jù)庫服務(wù)器上在等待數(shù)據(jù)庫返回結(jié)果后,整合整個頁面并將結(jié)果返回。
當(dāng)一個頁面首次被訪問的時候,此時緩存里面還沒有該頁面,那么緩存將會把此頁面保存下來。第二次訪問該頁面的時候,因為緩存服務(wù)器里面已經(jīng)有了該頁面的緩存,就直接從緩存里面取出該頁面,從而大大提高了訪問速度。
2.3用戶功能模塊概述
用戶功能模塊主要是針對用戶在論壇里面所具有的功能而設(shè)計的,一般情況下,用戶應(yīng)該具有下面幾個功能:
(1)注冊用戶:用戶注冊是論壇必須具備的業(yè)務(wù),只有注冊的用戶才能享受作為會員的權(quán)利,比如發(fā)主題帖子,上傳或者下載共享資源等。在用戶注冊的時候?qū)Ρ靥钚畔⒑鸵烟钚畔⒏袷揭鰴z測,如果不符合要求需要給出報錯提示。
(2)登錄系統(tǒng):登陸時候要驗證用戶名和密碼,如果都吻合才能進(jìn)入登陸狀態(tài),如果驗證不成功將提示用戶重新輸入。
(3)管理用戶自己的信息:包括用戶的詳細(xì)資料,更改登陸密碼等等。需要登陸以后才能更改。
(4)瀏覽論壇:被瀏覽內(nèi)容設(shè)置一定的級別限制,沒有登陸的用戶可以以游客的身份瀏覽論壇,但是有些內(nèi)容會看不到。
(5)發(fā)表主題帖子:用戶登陸以后,可以在自己喜歡的版面發(fā)表自己的主題。游客不能發(fā)。
(6)回復(fù)話題:登陸用戶看見自己想回的主題可以回復(fù),沒有登陸的用戶不允許進(jìn)行回復(fù)。
(7)版主功能:如果用戶被管理員選為版主,那么就擁有版主功能,版主可以在自己的版面對主題進(jìn)行管理,覺得好的主題可以置頂,設(shè)置為精華帖。同時可以在本版面置公告和通知等功能。
2.4管理員功能模塊概述
管理員模塊針對的是管理功能,管理員做為整個系統(tǒng)的管理者,對系統(tǒng)的維護(hù)具有舉足輕重的作用。詳細(xì)的功能如下:
(1)設(shè)置論壇基本信息:如論壇名稱,論壇網(wǎng)址,站點地址,站長郵箱等等。
(2)打開或者關(guān)閉論壇:如果論壇需要維護(hù)或者因某些原因需要停辦,則管理員有權(quán)利將該論壇關(guān)閉。
(3)封鎖某些IP或者過濾某些不雅文字:有些人在社區(qū)發(fā)表一些比較不文雅或者政治敏感的話題,為避免引起不必要的麻煩,管理員可以封鎖這些IP,禁止它們進(jìn)入論壇。
(4)制定發(fā)帖子的規(guī)范:比如文章的長度,標(biāo)題最大字?jǐn)?shù)等等。
(5)用戶授權(quán):用戶里面設(shè)置等級和積分。到達(dá)一定積分以后,管理員有權(quán)授予用戶版主的稱號,版主可以協(xié)助管理員管理社區(qū)。
3系統(tǒng)功能分析
論壇本質(zhì)上是為了用戶服務(wù)的,從用戶的一次完整的使用過程去分析論壇更能直觀的反映出論壇的功能。
用戶登陸成功后的頁面左邊部分是導(dǎo)航條,右邊部分是個人信息管理的一些鏈接和社區(qū)里面部分熱帖及公告、廣告等信息的顯示。
該頁面有很多鏈接,用戶點擊以后就可以實現(xiàn)對應(yīng)的功能。
(1)個人信息管理功能:該塊主要實現(xiàn)對用戶自身信息功能的管理。用戶登陸以后可以修改自己的信息,比如呢稱、通訊方式、聯(lián)系地址等等。同時用戶還可以編輯自己的好友。
(2)社區(qū)管理功能:左邊導(dǎo)航條里面有顯示,非版主點擊無效,版主點擊以后進(jìn)入社區(qū)管理板塊,在這里提供添加社區(qū)廠告、通知,添加黑名單等功能。
(3)瀏覽社區(qū)功能:點擊導(dǎo)航條內(nèi)的二級主題,就可以進(jìn)入相應(yīng)的社區(qū),在社區(qū)里面,需要提供用戶回復(fù)帖子和瀏覽帖子的功能,對于版主,還需要提供版主管理帖子的功能,比如版主能夠?qū)⒛骋惶又庙?、鎖定、設(shè)為精華帖、刪除等等。
(4)社區(qū)管理功能:這是版主才有的功能,在這個版塊里面,各個版主可以對自己所管的社區(qū)進(jìn)行管理。提供添加公告、系統(tǒng)黑名單、添加廣告和社區(qū)活動等功能。
(5)統(tǒng)計功能:用戶可以通過此功能,知道當(dāng)前在線人數(shù)等信息。
用戶和管理員的功能的綜合,即是該系統(tǒng)功能的主體,在實際的應(yīng)用中,為了滿足使用者的要求,在技術(shù)和支出允許的情況下,還需要對系統(tǒng)做不斷的修改和增強,使它能夠更快更好的滿足用戶的要求。
4小結(jié)
本文用SSH多層框架實現(xiàn)了一個功能比較完善的論壇。并對原有的各框架進(jìn)行了一些擴展和修改以便于更好的提高系統(tǒng)的性能。SSH多層框架的功能還是很強大的,例如Hibernate的延遲加載和緩存功能,Spring的聲明式事務(wù)管理功能和面向切面功能,Acegi的權(quán)限管理等等,充分的利用這些功能,系統(tǒng)會越加完善。同時還使用 OSCache框架實現(xiàn)了系統(tǒng)的緩存功能,進(jìn)一步提高了系統(tǒng)性能。
參考文獻(xiàn)
[1] 寇毅,吳力文.基于MVC設(shè)計模式的Struts框架的應(yīng)用方法[J].計算機應(yīng)用,2003,23(11):91-93.
[2] 陳天河.STRUTS,HIBERNATE,SPRING集成開發(fā)寶典[M].電子工業(yè)出版社,2006.
[3] 涂智,李昊,袁理.基于J2EE的客運信息管理系統(tǒng)數(shù)據(jù)持久層的JDBC解決方案[J].系統(tǒng)工程,2006(10).