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