基于java的在線論壇設(shè)計(jì)與實(shí)現(xiàn)_第1頁
已閱讀1頁,還剩121頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  在線論壇的設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  摘 要</b></p><p>  為了方便大家的溝通和獲取信息,特構(gòu)建一個(gè)在線論壇系統(tǒng)。該系統(tǒng)以Internet為平臺(tái),采用B/S架構(gòu),使用Java作為后臺(tái)開發(fā)語言,前臺(tái)頁面采用JSP做顯示,同時(shí)使用Tiles標(biāo)簽,EL表達(dá)式,JavaScript和Ajax等更加方便的實(shí)現(xiàn)動(dòng)態(tài)顯示數(shù)據(jù),底層數(shù)

2、據(jù)庫采用Mysql5.0。系統(tǒng)采用MVC模式設(shè)計(jì),Struts1.0的Action作為控制器,使用Hibernate3.0進(jìn)行數(shù)據(jù)持久化,從而提高開發(fā)效率和系統(tǒng)反應(yīng)速度。系統(tǒng)對(duì)于游客、普通用戶、版主、管理員等角色提供了用戶注冊(cè)、登錄、瀏覽帖子及其評(píng)論,發(fā)帖、回復(fù)帖子、引用帖子,帖子管理,后臺(tái)管理等操作,并對(duì)于不同的角色有不同的權(quán)限。系統(tǒng)采用富文本編輯器編輯帖子和回復(fù),能夠發(fā)送圖片、附件、視頻、Flash等,使我們的交流更加豐富多彩。并且

3、系統(tǒng)具有附件上傳,站內(nèi)信,用戶相片設(shè)置、主題更改等功能。系統(tǒng)最終實(shí)現(xiàn)了一個(gè)基于信息交流的中小型在線論壇。</p><p>  關(guān)鍵詞: 在線論壇; Struts; Hibernate; JSP</p><p><b>  ABSTRACT</b></p><p>  To facilitate the communication and

4、 access to information, particularly on building a Online Forum System. The system uses Internet as a platform, the use of B / S structure, using the Java programming language, the page display using JSP to do while usin

5、g the Tiles tags, EL expressions, JavaScript, and Ajax and so more convenient for dynamic display data, the underlying database By Mysql5.0. System uses the MVC model design, Struts1.0 of Action as a controller, the use

6、of persistent data Hibern</p><p>  Key words: Online Forum; Struts; Hibernate; JSP </p><p><b>  目 錄</b></p><p><b>  一、緒論1</b></p><p> 

7、 1.1選題背景及意義1</p><p>  1.2國內(nèi)外研究現(xiàn)狀1</p><p>  1.3在線論壇的發(fā)展趨勢(shì)2</p><p>  二、系統(tǒng)可行性分析4</p><p>  2.1系統(tǒng)開發(fā)目標(biāo)4</p><p>  2.2系統(tǒng)可行性分析4</p><p>  2.2.1技術(shù)可

8、行性分析4</p><p>  2.2.2經(jīng)濟(jì)可行性分析4</p><p>  2.2.3開發(fā)環(huán)境可行性4</p><p>  2.3開發(fā)環(huán)境和相關(guān)技術(shù)介紹4</p><p>  三、系統(tǒng)需求分析7</p><p>  3.1系統(tǒng)功能需求7</p><p>  3.2 系統(tǒng)UML建

9、模7</p><p>  3.2.1系統(tǒng)用例圖的建立7</p><p>  3.2.2時(shí)序圖的建立9</p><p>  3.3系統(tǒng)性能需求12</p><p>  3.4數(shù)據(jù)需求12</p><p>  四、系統(tǒng)功能模塊分析與設(shè)計(jì)14</p><p>  4.1系統(tǒng)結(jié)構(gòu)分析14

10、</p><p>  4.2系統(tǒng)流程分析14</p><p>  4.3系統(tǒng)功能模塊設(shè)計(jì)16</p><p>  五、系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)18</p><p>  5.1數(shù)據(jù)庫需求分析18</p><p>  5.2實(shí)體關(guān)系分析18</p><p>  5.21 實(shí)體模型分析18<

11、/p><p>  5.12 實(shí)體聯(lián)系分析20</p><p>  5.3系統(tǒng)數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)21</p><p>  5.4 系統(tǒng)數(shù)據(jù)庫的創(chuàng)建23</p><p>  六、系統(tǒng)功能模塊詳細(xì)設(shè)計(jì)24</p><p>  6.1 設(shè)計(jì)與搭建構(gòu)架24</p><p>  6.1.1設(shè)計(jì)視圖

12、層24</p><p>  6.1.2 設(shè)計(jì)控制層24</p><p>  6.1.3 數(shù)據(jù)訪問層25</p><p>  6.2 系統(tǒng)功能模塊實(shí)現(xiàn)26</p><p>  6.2.1登錄模塊的實(shí)現(xiàn)26</p><p>  6.2.2主界面的實(shí)現(xiàn)27</p><p>  6.2.3

13、注冊(cè)模塊的實(shí)現(xiàn)27</p><p>  6.2.4發(fā)帖、回復(fù)的實(shí)現(xiàn)29</p><p>  6.2.5上傳功能的實(shí)現(xiàn)29</p><p>  6.2.6后臺(tái)管理的實(shí)現(xiàn)30</p><p>  七、系統(tǒng)測(cè)試32</p><p>  7.1 前臺(tái)界面運(yùn)行效果32</p><p>  7

14、.2 后臺(tái)運(yùn)行效果33</p><p><b>  結(jié)束語.35</b></p><p><b>  參考文獻(xiàn)36</b></p><p><b>  致 謝.37</b></p><p><b>  緒論</b></p><

15、;p>  1.1選題背景及意義</p><p>  在二十一世紀(jì),地球因?yàn)榛ヂ?lián)網(wǎng)的存在,早已變成一個(gè)村落。人們?cè)诨ヂ?lián)網(wǎng)世界里盡情的遨游,享受著Internet帶來的無限樂趣。我們習(xí)慣了上網(wǎng)看新聞、去論壇看帖、網(wǎng)上購物、撰寫自己的網(wǎng)絡(luò)日志、網(wǎng)上聊天,視頻等等。當(dāng)然搜索引擎也成為了一個(gè)重要的角色,它幫我們找到想要的信息??傊?,互聯(lián)網(wǎng)已經(jīng)成為我們的一種生活方式,一個(gè)巨大的知識(shí)庫。本篇設(shè)計(jì)論文,圍繞如何構(gòu)建在線論壇

16、系統(tǒng)展開研究。在線論壇系統(tǒng)(BBS)是各種信息交流和傳布的場(chǎng)所,它不同于電視報(bào)紙等傳統(tǒng)的媒體,任何人都可以隨便的在BBS上發(fā)表自己的言論,不受任何限制。除了可以發(fā)表文字信息外可以上傳和轉(zhuǎn)貼圖片、音樂、Flash,可以選擇字號(hào)、顏色,還可以選擇有趣的表情圖案。只要幾分鐘的注冊(cè)(甚至不需要)你就能暢游BBS,從中享受無窮的樂趣。本系統(tǒng)就是基于以上功能的一個(gè)BBS,旨在為廣大網(wǎng)民提供了一個(gè)交流平臺(tái),能夠在這里暢所欲言,發(fā)表自己的看法、觀點(diǎn),同

17、時(shí)能夠結(jié)交朋友為生活增添樂趣。</p><p>  1.2國內(nèi)外研究現(xiàn)狀</p><p><b>  國外研究現(xiàn)狀</b></p><p>  1978年在美國芝加哥開發(fā)出一套基于8080芯片的CBBS/Chicago(Computerized Bulletin Board System/Chicago),這是最早的一套BBS系統(tǒng)。在這之后隨著

18、蘋果機(jī)的問世,出現(xiàn)了基于蘋果機(jī)的Bulletin Board System和大眾信息系統(tǒng)(People,s Message System)2種BBS系統(tǒng)。1981年IBM個(gè)人計(jì)算機(jī)誕生時(shí),但并沒有自己的BBS系統(tǒng)。而是直到1982年,Buss Lane 才用Basic語言為IBM個(gè)人計(jì)算機(jī)編寫了一個(gè)原型程序。在1983年通過Capital PC User Group(CPCUG)的Communication Special Intere

19、st Group會(huì)員的努力,改寫出了個(gè)人計(jì)算機(jī)系統(tǒng)的BBS。經(jīng)Thomas Mach整理后,終于完成了個(gè)人計(jì)算機(jī)的第1版BBS系統(tǒng)——RBBS-PC[1]。這套BBS系統(tǒng)的最大特色是開源,從而有利于日后的修改和維護(hù)。在這以后的BBS系統(tǒng)時(shí)都以此為框架,所以RBBS-PC贏得了BBS鼻祖的美稱。 但在當(dāng)時(shí),也沒有解決站與站之間的通訊。1984年美國的Tom </p><p><b>  國內(nèi)研究現(xiàn)狀<

20、;/b></p><p>  從1991年開始,國內(nèi)出現(xiàn)了第一個(gè)BBS站。國內(nèi)的BBS站,按其性質(zhì)劃分,可以分為2種:一種是商業(yè)BBS站,如新華龍訊網(wǎng);另一種是業(yè)余BBS站,如天堂資訊站。從1998年開始,BBS的影響力逐漸突顯出來。國內(nèi)很多年輕人開始不太看電視和報(bào)紙,獲得信息的主要途徑轉(zhuǎn)向網(wǎng)絡(luò)。在BBS上,大家可以對(duì)自己所看到的、聽到的、想到的任何一件事做出評(píng)論,誰也不知道自己的帖子可能會(huì)獲得成千上萬的人

21、的支持。2006年7月 CNNIC 發(fā)布的最新統(tǒng)計(jì)表明,43.2% 的中國網(wǎng)民經(jīng)常使用BBS論壇,論壇社區(qū)應(yīng)用首次超過即時(shí)通訊IM ,成為僅次于收發(fā)Email的互聯(lián)網(wǎng)基本應(yīng)用。而今,BBS上的帖子閱讀量幾十萬余次已經(jīng)算不上什么驚天動(dòng)地的大事了。BBS論壇已由原來的娛樂性交流工具轉(zhuǎn)化成了一種新興媒體:網(wǎng)絡(luò)媒體。我們的網(wǎng)絡(luò)媒體在不斷發(fā)展,不斷變革。在不斷前進(jìn)的社會(huì)中不斷增強(qiáng)其影響力與引導(dǎo)力[3]。</p><p> 

22、 現(xiàn)在大部分論壇都是基于B/S結(jié)構(gòu)實(shí)現(xiàn)的。論壇也常被簡(jiǎn)稱為BBS(Bulletin Board System)。隨著中國網(wǎng)絡(luò)的普及和計(jì)算機(jī)及其外設(shè)的大幅度降價(jià),Internet這個(gè)概念逐漸深入人心。中國網(wǎng)民的數(shù)量呈幾何級(jí)數(shù)量增長(zhǎng),BBS的普及程度也直追Email。每個(gè)網(wǎng)站幾乎都擁有自己的BBS或者BBS鏈接,BBS社區(qū)提供給用戶的服務(wù)是全面而且非常友好的,用戶在社區(qū)中可以根據(jù)自己的喜好設(shè)置不同的顯示風(fēng)格,根據(jù)自己的需求定制各種服務(wù)。通過

23、論壇更加快捷的了解企業(yè)員工的信息,而建立會(huì)員服務(wù)的基礎(chǔ)是建系論壇管理系統(tǒng)。通過應(yīng)用該系統(tǒng)可以實(shí)現(xiàn)用戶與用戶間的交流、企業(yè)與企業(yè)間的信息交互,利用網(wǎng)絡(luò)經(jīng)濟(jì)而又快捷地與外界進(jìn)行各種信息溝通,取得更有用的信息資源。目前,國內(nèi)的BBS站正向著個(gè)性化和專業(yè)化的方向發(fā)展。具有代表性的論壇網(wǎng)站有:新浪論壇、DISCUZ論壇 、CCTV論壇、天涯社區(qū)、貓撲社區(qū)、西祠胡同、人人網(wǎng)等等</p><p>  1.3在線論壇的發(fā)展趨勢(shì)&

24、lt;/p><p>  Web2.0的時(shí)代已經(jīng)到來,Web2.0與傳統(tǒng)的萬維網(wǎng)之間最主要的區(qū)別就是用戶和用戶、產(chǎn)品供應(yīng)商和企業(yè)之間更大的協(xié)作。Web1.0時(shí)代,論壇社區(qū)基本滿足網(wǎng)民信息生活的需求,Web2.0時(shí)代論壇社區(qū)呈現(xiàn)出巨大的商業(yè)價(jià)值。當(dāng)論壇用戶數(shù)量達(dá)到引爆點(diǎn)后,社區(qū)流量將開始飛快成長(zhǎng),遠(yuǎn)遠(yuǎn)大于Web1.0網(wǎng)站的流量增長(zhǎng)速度[3]。伴隨著Web2.0時(shí)代的到來,BBS將朝著以下兩個(gè)方面發(fā)展:</p>

25、<p>  BBS論壇系統(tǒng)將朝協(xié)同平臺(tái)發(fā)展。</p><p>  現(xiàn)在動(dòng)態(tài)網(wǎng)站出現(xiàn)一門新技術(shù)單點(diǎn)登錄。用戶可以通過統(tǒng)一身份認(rèn)證登錄系統(tǒng)。通過論壇平臺(tái)外調(diào)其他應(yīng)用系統(tǒng)的功能接口,完成應(yīng)用系統(tǒng)的服務(wù)。論壇平臺(tái)還可以集成消息中心,如手機(jī)短息、郵件、站內(nèi)信等等。使BBS系統(tǒng)上升為一個(gè)交流平臺(tái),同時(shí)也是一個(gè)協(xié)同系統(tǒng)。</p><p>  BBS論壇系統(tǒng)也將朝著圖形化方向發(fā)展。</

26、p><p>  圖形虛擬社區(qū)可以非常具體和形象化的模擬整個(gè)現(xiàn)實(shí)社區(qū)的生活,并且具備無限的可擴(kuò)充性。在論壇中你甚至可以找到和現(xiàn)實(shí)生活完全對(duì)應(yīng)的建筑。通過一根網(wǎng)線就可以把遠(yuǎn)在天南海北的朋友聚到一起。試想,你可以通過外形的不同來區(qū)分不同社區(qū)的朋友而不是通過ID。你甚至可以通過外形的不同來猜測(cè)對(duì)方的性格,這些都是傳統(tǒng)虛擬社區(qū)所不具備的特點(diǎn)。</p><p><b>  系統(tǒng)可行性分析<

27、/b></p><p><b>  2.1系統(tǒng)開發(fā)目標(biāo)</b></p><p>  通過開發(fā)該系統(tǒng)完成在線論壇系統(tǒng)的基本功能。包括用戶注冊(cè)、登錄、發(fā)帖、回復(fù)等基本功能,以及版主對(duì)帖子的置頂、置精華、屏蔽等操作和管理員對(duì)用戶、模塊、版主的管理。同時(shí)系統(tǒng)對(duì)于游客、普通用戶、版主、管理員必須有不同的權(quán)限控制。</p><p>  要求系統(tǒng)能有效

28、、安全、可靠和無誤的完成上述操作,并要求界面要簡(jiǎn)單明了,美觀,易于操作,服務(wù)器程序利于維護(hù)。系統(tǒng)實(shí)現(xiàn)后,能部署到學(xué)校網(wǎng)絡(luò)平臺(tái)中方便同學(xué)們交流與學(xué)習(xí)。</p><p>  2.2系統(tǒng)可行性分析</p><p>  2.2.1技術(shù)可行性分析</p><p>  本網(wǎng)站采用Mysql進(jìn)行后臺(tái)數(shù)據(jù)庫的管理、操作和維護(hù),用JSP進(jìn)行前臺(tái)界面設(shè)計(jì),用Java程序語言完成后臺(tái)數(shù)據(jù)

29、庫的接口、數(shù)據(jù)的錄入、查詢、瀏覽等功能,采用Eclipse作為開發(fā)平臺(tái),采用Tomcat作為Web應(yīng)用服務(wù)器。根據(jù)Java簡(jiǎn)單易用、完全面向?qū)ο?、具有平臺(tái)無關(guān)性且安全可靠的特點(diǎn)與Eclipse強(qiáng)大的方便的開發(fā)工具,以及他們當(dāng)前的廣泛實(shí)際應(yīng)用,充分說明本網(wǎng)站在技術(shù)方面可行。</p><p>  2.2.2經(jīng)濟(jì)可行性分析</p><p>  經(jīng)濟(jì)可行性分析(能否贏利)是從經(jīng)濟(jì)的角度分析網(wǎng)站系統(tǒng)

30、的規(guī)劃方案有無實(shí)現(xiàn)的可能和開發(fā)的價(jià)值;分析網(wǎng)站系統(tǒng)所帶來的經(jīng)濟(jì)效益是否超過開發(fā)和維護(hù)網(wǎng)站所需要的費(fèi)用。學(xué)校已搭建健全的網(wǎng)絡(luò)硬件設(shè)施,開發(fā)在線論壇所采用的工具M(jìn)yEclipse,Mysql,Tomcat都是開源的。所以完成在線論壇的經(jīng)濟(jì)可行性完全沒有問題。</p><p>  2.2.3開發(fā)環(huán)境可行性</p><p>  網(wǎng)站開發(fā)需要裝有windows98系統(tǒng)以上的電腦一臺(tái),這樣的配置在當(dāng)今

31、已經(jīng)不能成為難題,而開發(fā)工具都為開源軟件,都可以在網(wǎng)上下載。所以開發(fā)環(huán)境可行性是沒有任何問題的。</p><p>  2.3開發(fā)環(huán)境和相關(guān)技術(shù)介紹</p><p><b>  JSP技術(shù)介紹</b></p><p>  JSP是Sun公司推出的新一代站點(diǎn)開發(fā)語言,他完全解決了目前ASP,PHP的一個(gè)通病——腳本級(jí)執(zhí)行(現(xiàn)今PHP4也已經(jīng)在Zen

32、d的支持下,實(shí)現(xiàn)編譯運(yùn)行)。Sun公司借助自己在Java上的不凡造詣,將Java從Java應(yīng)用程序和Java Applet之外,又有新的碩果,就是Jsp——Java Server Page。JSP可以在Servlet和JavaBean的支持下,完成功能強(qiáng)大的站點(diǎn)程序。 </p><p>  JSP與Microsoft的ASP、PHP技術(shù)非常相似。ASP的編程語言是VBScript之類的腳本語言,JSP使用的是Ja

33、va ,這是他們最明顯的區(qū)別。此外,ASP、PHP與JSP還有一個(gè)更為本質(zhì)的區(qū)別:兩種語言引擎用完全不同的方式處理頁面中嵌入的程序代碼。在ASP下,VBScript代碼被ASP引擎解釋執(zhí)行;在JSP下,代碼被編譯成Servlet并由Java虛擬機(jī)執(zhí)行,這種編譯操作僅在對(duì)JSP頁面的第一次請(qǐng)求時(shí)發(fā)生[4]。 </p><p>  事實(shí)證明,Java Servlet是一種開發(fā)Web應(yīng)用的理想構(gòu)架。JSP以Servle

34、t技術(shù)為基礎(chǔ),又在許多方面作了改進(jìn)。利用跨平臺(tái)運(yùn)行的JavaBean組件,JSP為分離處理邏輯與顯示樣式提供了卓越的解決方案。JSP必將成為其它動(dòng)態(tài)網(wǎng)頁技術(shù)的有力競(jìng)爭(zhēng)者。</p><p>  Struts框架介紹</p><p>  Struts通過提供一個(gè)控制器ActionServlet實(shí)現(xiàn)了MVC架構(gòu),這個(gè)控制器可以用來管理JSP頁面和其他表現(xiàn)層之間的流程,Strust通過使用Acti

35、onForward和ActionMapping來保證表現(xiàn)層之外的控制流決策來實(shí)現(xiàn)MVC模式。JSP可以引用一個(gè)邏輯目標(biāo),控制器組件在運(yùn)行時(shí)提供準(zhǔn)確的URL,從而實(shí)現(xiàn)頁面的控制。</p><p>  Struts組件的功能即其對(duì)應(yīng)經(jīng)典的MVC組件職責(zé)。</p><p> ?、?ActionForward類:用于用戶指向或者視圖選擇。</p><p> ?、?Actio

36、nForm類:狀態(tài)改變的數(shù)據(jù)的封裝類,是一個(gè)JavaBean。</p><p> ?、?ActionMapping類:狀態(tài)改變事件的映射類。</p><p>  ④ ActionServlet類:控制器,接受用戶請(qǐng)求和狀態(tài)改變,并發(fā)出視圖選擇控制器的一部分、與模型交互、執(zhí)行狀態(tài)改變或狀態(tài)查詢,以及告訴Action及ActionServlet下一個(gè)選擇的視圖。</p><

37、p>  從視圖層來看,Struts有自己的JSTL標(biāo)簽擴(kuò)展,主要包括如下3中標(biāo)簽。</p><p>  HTML標(biāo)簽(struts-html.tld):擴(kuò)展HTML Form的JSP標(biāo)記。</p><p>  Bean標(biāo)簽(struts-bean.tld):擴(kuò)展處理JavaBean的JSP標(biāo)記。</p><p>  Logic標(biāo)簽(struts-logic.t

38、ld):擴(kuò)展測(cè)試屬性值得JSP標(biāo)記。</p><p>  Hibernate框架介紹</p><p>  Hibernate 是一個(gè)開放源碼的 ORM 持久層框架。作為優(yōu)秀的持久層框架實(shí)現(xiàn),Hibernate 框架提供了強(qiáng)大、高性能的對(duì)象到關(guān)系型數(shù)據(jù)庫的持久化服務(wù),開發(fā)人員可以使用面向?qū)ο蟮脑O(shè)計(jì)進(jìn)行持久層開發(fā)[5]。簡(jiǎn)單的說,Hibernate 只是一個(gè)將持久化類與數(shù)據(jù)庫表相映射的工具,每

39、個(gè)持久化類實(shí)例均對(duì)應(yīng)于數(shù)據(jù)庫表中的一個(gè)數(shù)據(jù)行而已。用戶只需直接使用面向?qū)ο蟮姆椒ú僮鞔顺志没悓?shí)例,即可完成對(duì)數(shù)據(jù)庫表數(shù)據(jù)的插入、刪除、修改、讀取等操作。</p><p><b>  Tomcat介紹</b></p><p>  目前支持JSP的應(yīng)用服務(wù)器是較多的,Tomcat是其中較為流行的一個(gè)Web服務(wù)器,被JavaWorld雜志的編輯選為2001年度最具創(chuàng)新的J

40、ava產(chǎn)品,可見其在業(yè)界的地位[6]。 </p><p>  Tomcat是一個(gè)免費(fèi)的開源的Serlvet容器,在Tomcat中,應(yīng)用程序的部署很簡(jiǎn)單,你只需將你的WAR放到Tomcat的webapp目錄下,Tomcat會(huì)自動(dòng)檢測(cè)到這個(gè)文件,并將其解壓。你在瀏覽器中訪問這個(gè)應(yīng)用的Jsp時(shí),通常第一次會(huì)很慢,因?yàn)門omcat要將Jsp轉(zhuǎn)化為Servlet文件,然后編譯。編譯以后,訪問將會(huì)很快。&

41、lt;/p><p>  Tomcat也具有傳統(tǒng)的Web服務(wù)器的功能:處理Html頁面。但是與Apache相比,它的處理靜態(tài)Html的能力就不如Apache。我們可以將Tomcat和Apache集成到一塊,讓Apache處理靜態(tài)Html,而Tomcat處理Jsp和Servlet。Tomcat是一個(gè)很好的工具,不僅僅因?yàn)槠涿赓M(fèi),功能強(qiáng)大,更因?yàn)槠溟_放性,越來越多小型應(yīng)用網(wǎng)站采用Tomcat作為服務(wù)器。</p>

42、<p>  Mysql數(shù)據(jù)庫介紹</p><p>  MySQL數(shù)據(jù)庫是一個(gè)較小型的數(shù)據(jù)庫系統(tǒng),同時(shí)是一個(gè)多用戶、多線程強(qiáng)壯的SQL數(shù)據(jù)庫服務(wù)器,并提供免費(fèi)的安裝軟件。</p><p>  由于它對(duì)平臺(tái)環(huán)境要求不高,安裝方便,適合中小型系統(tǒng)的開發(fā)。</p><p><b>  系統(tǒng)需求分析</b></p><p

43、><b>  3.1系統(tǒng)功能需求</b></p><p>  本系統(tǒng)開發(fā)的總體目標(biāo)是實(shí)現(xiàn)一個(gè)基于Struts+Hibernate的在線論壇。在該系統(tǒng)中有四類用戶:游客、普通用戶、版主和管理員。因此系統(tǒng)針對(duì)這四類角色提出以下需求:</p><p>  游客的需求:用戶注冊(cè),查看帖子,查看帖子回復(fù)。</p><p>  普通用戶的需求:用戶登

44、錄,發(fā)表帖子,回復(fù)帖子,查看公告,對(duì)自己發(fā)表或回復(fù)的帖子進(jìn)行修改或刪除。</p><p>  版主的需求:具有普通用戶的所有功能,對(duì)本討論區(qū)的所有帖子可以進(jìn)行置頂、置精華、屏蔽、取消置頂、取消屏蔽、取消置精華和刪除等操作。</p><p>  管理員的需求:具有普通用戶的所有功能,對(duì)所有帖子可以修改或刪除,修改用戶的個(gè)人信息或刪除用戶,修改和刪除公告,添加、修改和刪除版塊,添加和刪除版主。

45、</p><p>  3.2 系統(tǒng)UML建模</p><p>  3.2.1系統(tǒng)用例圖的建立</p><p>  系統(tǒng)管理的用例如圖3.1所示:</p><p>  圖3.1系統(tǒng)管理用例圖</p><p>  管理員管理會(huì)員和版塊的用例如圖3.2所示</p><p>  圖3.2管理員用例圖&l

46、t;/p><p>  系統(tǒng)用戶的用例如圖3.3所示</p><p><b>  圖3.3用戶用例圖</b></p><p>  3.2.2時(shí)序圖的建立</p><p>  會(huì)員發(fā)貼、回帖的時(shí)序圖如圖3.4所示。</p><p>  會(huì)員首先使用自己的賬號(hào)和密碼登陸系統(tǒng),登錄模塊將會(huì)把用戶的ID保存系統(tǒng)

47、的緩存中,并展現(xiàn)論壇的分類模塊給會(huì)員。會(huì)員此時(shí)可以按照興趣進(jìn)入不同的主題討論區(qū),查看主題文章,并發(fā)表新文章和回復(fù)新帖,還可以瀏覽其他類別的主題討論區(qū)。</p><p>  圖3.4會(huì)員發(fā)貼、回帖的時(shí)序圖</p><p>  注冊(cè)用戶瀏覽論壇注冊(cè)的時(shí)序圖如圖3.5所示。未注冊(cè)的用戶首先進(jìn)入論壇瀏覽帖子,但不能發(fā)貼和回帖。后進(jìn)入注冊(cè)頁面填寫注冊(cè)信息,等候會(huì)員管理模塊驗(yàn)證并把新用戶的信息添加到數(shù)

48、據(jù)庫,返回注冊(cè)成功,用戶可繼續(xù)瀏覽帖子。</p><p>  圖3.5注冊(cè)的時(shí)序圖</p><p>  論壇管理員管理會(huì)員的時(shí)序圖如圖3.6所示。</p><p>  管理員在提交ID給會(huì)員管理模塊后,可以對(duì)會(huì)員進(jìn)行維護(hù)(添加、刪除或修改)。管理員首先輸入自己的賬號(hào)和密碼登錄系統(tǒng),此時(shí)會(huì)將管理員的ID保存在系統(tǒng)緩存中并提交給會(huì)員管理模塊。在操作會(huì)員的頁面中,管理員會(huì)

49、根據(jù)需要對(duì)每個(gè)會(huì)員進(jìn)行增刪等操作,并將其信息提交給數(shù)據(jù)庫。數(shù)據(jù)庫會(huì)對(duì)其進(jìn)行處理,并更新會(huì)員信息,至此管理員管理會(huì)員操作成功。</p><p>  圖3.6管理會(huì)員時(shí)序圖</p><p>  論壇管理員管理論壇分類的時(shí)序圖如圖3.7所示。</p><p>  管理員使用自己的賬號(hào)和密碼登錄后,將管理員的ID保存在系統(tǒng)的緩存中并提交給論壇類別管理模塊。在顯示論壇類別管理

50、的頁面中,將顯示處理類別相關(guān)信息給管理員,管理員在該頁面中進(jìn)行增刪等操作后,提交操作的ID給數(shù)據(jù)庫模塊處理。數(shù)據(jù)庫模塊執(zhí)行操作后更細(xì)結(jié)果,并提示更新成功。最后提示處理成功給管理員。</p><p>  圖3.7管理論壇時(shí)序圖</p><p>  論壇管理員管理帖子的時(shí)序圖如圖3.8所示。</p><p>  管理在帖子模塊可以對(duì)會(huì)員發(fā)表的帖子進(jìn)行維護(hù)(刪除),還可以

51、對(duì)帖子進(jìn)行一些額外的智能操作,比如置頂帖子、設(shè)置精華帖子等。更改完成后,都要經(jīng)過數(shù)據(jù)庫的處理,并更新數(shù)據(jù),才能成功。</p><p>  圖3.8管理帖子時(shí)序圖</p><p><b>  3.3系統(tǒng)性能需求</b></p><p>  為了保證系統(tǒng)能夠長(zhǎng)期、安全、穩(wěn)定、可靠、高效的運(yùn)行,系統(tǒng)應(yīng)該滿足以下的性能需求: </p>&

52、lt;p>  (1)系統(tǒng)處理的準(zhǔn)確性和及時(shí)性 :</p><p>  系統(tǒng)處理的準(zhǔn)確性和及時(shí)性是系統(tǒng)的必要性能。在系統(tǒng)設(shè)計(jì)和開發(fā)過程中,要充分考慮系統(tǒng)當(dāng)前和將來可能承受的工作量,使系統(tǒng)的處理能力和響應(yīng)時(shí)間能夠滿足用戶對(duì)信息處理的需求。</p><p>  (2)系統(tǒng)的開放性和系統(tǒng)的可擴(kuò)充性 :</p><p>  在線論壇系統(tǒng)在開發(fā)過程中,應(yīng)該充分考慮以后的可

53、擴(kuò)充性,要求系統(tǒng)提供足夠的手段進(jìn)行功能的調(diào)整和擴(kuò)充。而要實(shí)現(xiàn)這一點(diǎn),應(yīng)通過系統(tǒng)的開放性來完成,既系統(tǒng)應(yīng)是一個(gè)開放系統(tǒng),只要符合一定的規(guī)范,可以簡(jiǎn)單的加入和減少系統(tǒng)的模塊,配置系統(tǒng)的硬件。通過軟件的修補(bǔ)、替換完成系統(tǒng)的升級(jí)和更新?lián)Q代。 </p><p><b>  3.4數(shù)據(jù)需求</b></p><p>  用戶必須先注冊(cè)后再登錄進(jìn)入系統(tǒng),系統(tǒng)用戶的數(shù)據(jù)包括用戶名、用戶

54、密碼、用戶類型。用戶名在整個(gè)系統(tǒng)中是唯一的;用戶瀏覽帖子時(shí),數(shù)據(jù)應(yīng)當(dāng)包括用戶名、帖子序號(hào)。用戶根據(jù)某一主題可以發(fā)表帖子,發(fā)表帖子需要的數(shù)據(jù)包括用戶名、版塊編號(hào)、版塊分類名、發(fā)表帖子標(biāo)題、發(fā)表帖子內(nèi)容、發(fā)表帖子類型。用戶回復(fù)帖子的數(shù)據(jù)包括用戶名、回復(fù)帖子序號(hào)、回復(fù)的內(nèi)容、版塊編號(hào)、版塊分類名;管理員進(jìn)入后臺(tái)管理時(shí),需要數(shù)據(jù)包括管理員ID、管理員密碼、管理員的類型。管理員根據(jù)權(quán)限的不同分為普通管理員和超級(jí)管理員;版主進(jìn)去后臺(tái)管理時(shí),需要的數(shù)

55、據(jù)包括版主名、版主密碼、子版塊名、版塊編號(hào)。</p><p>  數(shù)據(jù)錄入和處理的準(zhǔn)確性和實(shí)時(shí)性也非常重要。數(shù)據(jù)的輸入是否準(zhǔn)確是數(shù)據(jù)處理的前提,錯(cuò)誤的輸入會(huì)導(dǎo)致系統(tǒng)輸出的不正確和不可用,從而使系統(tǒng)的工作失去意義。數(shù)據(jù)的輸入來源是手工輸入。手工輸入要通過系統(tǒng)界面上的安排系統(tǒng)具有容錯(cuò)性,并且對(duì)操作人員要進(jìn)行系統(tǒng)的培訓(xùn)。在系統(tǒng)中,數(shù)據(jù)的輸入往往是大量的,因此系統(tǒng)要能迅速的處理數(shù)據(jù)。 </p><p&

56、gt;  系統(tǒng)功能模塊分析與設(shè)計(jì)</p><p><b>  4.1系統(tǒng)結(jié)構(gòu)分析</b></p><p><b>  圖4.1系統(tǒng)結(jié)構(gòu)圖</b></p><p><b>  4.2系統(tǒng)流程分析</b></p><p>  通過對(duì)系統(tǒng)需求分析可以對(duì)論壇總體流程做一個(gè)分析說明:按照

57、角色劃分,首先普通游客進(jìn)入論壇主頁面,可以隨意瀏覽帖子,查看留言,但是不能發(fā)表帖子和發(fā)表留言,接下來如果普通游客想進(jìn)一步發(fā)表帖子或者發(fā)表留言,可以通過用戶注冊(cè)按鈕點(diǎn)擊進(jìn)入用戶注冊(cè)界面進(jìn)行新用戶的注冊(cè)。注冊(cè)成功之后,此游客就成為本系統(tǒng)的普通用戶,享受普通用戶的權(quán)限(普通用戶查詢個(gè)人信息、用戶發(fā)表帖子、用戶發(fā)表留言、用戶查看帖子、用戶查看留言)。其次本系統(tǒng)的管理員可以通過主頁面的管理員登陸進(jìn)入后臺(tái)管理系統(tǒng),包括用戶管理、公告的管理、版塊的管

58、理。管理員可以設(shè)置版塊管理員,版塊管理員可以在前臺(tái)對(duì)帖子的置頂,置精華,屏蔽等操作 </p><p>  前臺(tái)業(yè)務(wù)模塊的狀態(tài)圖如圖4.2所示</p><p>  圖4.2前臺(tái)業(yè)務(wù)模塊的狀態(tài)圖</p><p>  后臺(tái)會(huì)員管理的狀態(tài)圖如圖4.3所示</p><p>  圖4.3后臺(tái)會(huì)員管理的狀態(tài)圖</p><p>  

59、后臺(tái)論壇分類管理的狀態(tài)圖如圖4.4所示</p><p>  圖4.4后臺(tái)論壇分類管理的狀態(tài)圖</p><p>  后臺(tái)帖子管理的狀態(tài)圖如圖4.5所示</p><p>  圖4.5后臺(tái)帖子管理的狀態(tài)圖</p><p>  4.3系統(tǒng)功能模塊設(shè)計(jì)</p><p>  根據(jù)系統(tǒng)流程分析,以及針對(duì)系統(tǒng)游客、普通用戶、版主、管理

60、員等角色劃分以下功能模塊:</p><p>  用戶注冊(cè):根據(jù)用戶輸入的注冊(cè)信息,系統(tǒng)進(jìn)行錯(cuò)誤檢測(cè),并返回信息提示用戶。 </p><p>  用戶登錄:提供登錄界面,驗(yàn)證用戶名和密碼,判斷是否為合法用戶。</p><p>  信息顯示:可以查看討論區(qū)的文章,以及回復(fù)的帖子的內(nèi)容。</p><p>  信息操作:可以發(fā)表主題帖子、回復(fù)帖子、修

61、改帖子、刪除帖子、置頂帖子、置精華帖,屏蔽帖子等。并對(duì)不同的用戶給予不同的權(quán)限。</p><p>  后臺(tái)管理:修改用戶個(gè)人信息、設(shè)置版主、刪除用戶、添加版塊、公告管理。</p><p>  系統(tǒng)功能模塊圖如圖4.6所示</p><p>  圖4.6系統(tǒng)功能模塊圖</p><p><b>  系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)</b><

62、;/p><p>  5.1數(shù)據(jù)庫需求分析</p><p>  根據(jù)系統(tǒng)的需求,數(shù)據(jù)庫中需要?jiǎng)?chuàng)建以下數(shù)據(jù)表。</p><p> ?、?用戶信息表:用于存放注冊(cè)用戶的資料以及用戶登錄情況。</p><p> ?、?帖子模塊信息表:論壇的主要模塊,和模塊信息的描述。</p><p> ?、?帖子信息表:記錄用戶發(fā)布帖子的信息。&

63、lt;/p><p> ?、?公告表:用于記錄論壇公告。</p><p>  ⑤ 用戶類型表:用于用戶的類型,如管理員,普通用戶,模塊管理員。</p><p><b>  5.2實(shí)體關(guān)系分析</b></p><p>  5.21 實(shí)體模型分析</p><p>  E-R模型是對(duì)現(xiàn)實(shí)世界的一種抽象。它的主

64、要成分是實(shí)體、聯(lián)系和屬性。使用這三種成分,我們可以建立許多應(yīng)用環(huán)境的ER模型。本系統(tǒng)的實(shí)體和屬性的定義如下:</p><p>  用戶表(用戶ID、用戶密碼、用戶昵稱、性別、用戶電子郵箱、用戶級(jí)別、用戶留言、心情、QQ、公司、圖片、圖片路徑、注冊(cè)時(shí)間、最后登錄時(shí)間)</p><p>  帖子表(帖子編號(hào)、帖子標(biāo)題、帖子作者、帖子內(nèi)容、發(fā)表帖子的時(shí)間、回復(fù)數(shù)、最后回復(fù)用戶ID、最后回復(fù)時(shí)間、

65、所屬版塊號(hào)、主題類型)</p><p>  版塊表(版塊編號(hào)、版塊名稱、版塊類型、子版塊編號(hào)、版主、主題數(shù)、文章數(shù)、版塊描述)</p><p>  公告表(編號(hào)、標(biāo)題、發(fā)公告人、公告內(nèi)容、公告時(shí)間)</p><p>  用戶信息實(shí)體圖如圖5.1所示</p><p>  圖 5.1 用戶信息實(shí)體圖</p><p>  帖

66、子信息實(shí)體圖如圖5.2所示</p><p>  圖 5.2帖子信息實(shí)體圖</p><p>  版塊信息實(shí)體圖如圖5.3所示</p><p>  圖 5.3 版塊信息實(shí)體圖</p><p>  公告實(shí)體圖如圖5.4所示</p><p>  圖 5.4 公告實(shí)體圖</p><p>  5.12 實(shí)體

67、聯(lián)系分析</p><p>  ER模型的“聯(lián)系”用于刻畫實(shí)體之間的關(guān)聯(lián)。一種完整的方式是對(duì)局部結(jié)構(gòu)中任意兩個(gè)實(shí)體類型,依據(jù)需求分析的結(jié)果,考察局部結(jié)構(gòu)中任意兩個(gè)實(shí)體類型之間是否存在聯(lián)系。若有聯(lián)系,進(jìn)一步確定是1:N,M:N,還是1:1等。還要考察一個(gè)實(shí)體類型內(nèi)部是否存在聯(lián)系,兩個(gè)實(shí)體類型之間是否存在聯(lián)系,多個(gè)實(shí)體類型之間是否存在聯(lián)系等等。</p><p>  本系統(tǒng)的ER模型如圖5.5所示

68、:</p><p>  圖 5.5 ER模型圖</p><p>  5.3系統(tǒng)數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)</p><p>  數(shù)據(jù)庫需求分析設(shè)計(jì)完畢后,現(xiàn)在可以將上面的需求分析轉(zhuǎn)化為數(shù)據(jù)庫系統(tǒng)所支持的實(shí)際數(shù)據(jù)模型,也就是數(shù)據(jù)庫的邏輯結(jié)構(gòu),可以作出各表。</p><p>  數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計(jì)就是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本 E—R轉(zhuǎn)換為與選用的

69、 DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。</p><p>  邏輯結(jié)構(gòu)設(shè)計(jì)的步驟:</p><p>  將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型; </p><p>  將轉(zhuǎn)換來的關(guān)系、網(wǎng)狀、層次模型向特定 DBMS 支持下的數(shù)據(jù)模型轉(zhuǎn)換; </p><p>  對(duì)數(shù)據(jù)模型進(jìn)行優(yōu)化。</p><p>  用戶

70、信息表(bbs_user)的邏輯設(shè)計(jì)如表5-1所示</p><p>  表5-1 用戶信息表</p><p>  帖子表(bbs_article)的邏輯設(shè)計(jì)如表5-2所示</p><p><b>  表5-2帖子表</b></p><p>  公告表(bbs_announce)的邏輯設(shè)計(jì)如表5-3所示</p>

71、<p><b>  表5-3 公告表</b></p><p>  用戶類型(bbs_usertype)的邏輯設(shè)計(jì)如表5-4所示</p><p>  表5-4 用戶類型表</p><p>  5.4 系統(tǒng)數(shù)據(jù)庫的創(chuàng)建</p><p>  本系統(tǒng)數(shù)據(jù)庫采用Mysql5.0,之前采用PowerDesigner

72、15.2進(jìn)行數(shù)據(jù)庫建模,建立了概念模型和結(jié)構(gòu)模型。最后生成bbs數(shù)據(jù)庫的腳步bbs.sql。同時(shí)使用Navicat For Mysql可視化圖形界面操作數(shù)據(jù)庫。將bbs.sql通過Navicat For Mysql導(dǎo)入到Mysql5.0中創(chuàng)建數(shù)據(jù)庫如圖5.6所示。</p><p>  圖5.6 創(chuàng)建bbs數(shù)據(jù)庫</p><p>  系統(tǒng)功能模塊詳細(xì)設(shè)計(jì)</p><p&g

73、t;  6.1 設(shè)計(jì)與搭建構(gòu)架</p><p>  “在線論壇系統(tǒng)”采用的構(gòu)架為Struts+Hibernate,系統(tǒng)的視圖層與控制層主要通過Struts的標(biāo)簽庫和Action相關(guān)類設(shè)計(jì)與實(shí)現(xiàn);Hibernate用于持久層的實(shí)現(xiàn),包括數(shù)據(jù)訪問層和對(duì)象模型的設(shè)計(jì)。</p><p>  6.1.1設(shè)計(jì)視圖層</p><p>  系統(tǒng)的視圖層是一組JSP頁面,他們通過S

74、truts結(jié)合JSTL EL表達(dá)式語言將數(shù)據(jù)暴露給用戶,供用戶操作。本系統(tǒng)在界面設(shè)計(jì)上采用了模塊化處理的思想,把很多頁面共有的部分集成一個(gè)模塊,做成Struts 自定義標(biāo)簽,例如頁面的頭、尾,這樣在開發(fā)的時(shí)候遇到這類相似的頁面部分就不再需要重新編寫,而只要以一句:<yhbbs:footer />就可以重用這部分的內(nèi)容,大大提高了系統(tǒng)的開發(fā)效率。</p><p>  根據(jù)系統(tǒng)模塊分析自定義了以下自定義標(biāo)

75、簽:</p><p>  頭部 <yhbbs:top /> 尾部 <yhbbs:footer /></p><p>  論壇公告 <yhbbs: AllAnnounce /> 在線用戶統(tǒng)計(jì)信息<yhbbs: AllOnLine /></p><p>  發(fā)表公告

76、 <yhbbs: Announce /> 瀏覽帖子<yhbbs: ArtShowTag/></p><p>  帖子列表 <yhbbs: ForumList /> 帖子回復(fù)列表<yhbbs: ForumTree /></p><p>  首頁登錄 <yhbbs: IndexLogin />

77、 版塊列表<yhbbs: IndexMain /></p><p>  用戶列表 <yhbbs: UserList /> 最新、精華、推薦列表<yhbbs: NewEliteCom/> </p><p>  根據(jù)系統(tǒng)的功能,JSP的主要頁面如下。</p><p>  主頁(main.jsp):系統(tǒng)主頁,包含<

78、yhbbs:footer />、<yhbbs: AllAnnounce />、<yhbbs: AllOnLine />、<yhbbs: NewEliteCom/>、<yhbbs: ForumList />、<yhbbs: IndexMain />、</p><p>  <yhbbs:footer />等大部分的標(biāo)簽</p>

79、<p>  登錄頁(index.jsp):系統(tǒng)為注冊(cè)的用戶提供一個(gè)進(jìn)入系統(tǒng)并使用系統(tǒng)功能的入口。</p><p>  登出頁(reg.jsp):用戶注冊(cè)頁面。</p><p>  帖子列表頁(forum.jsp):系統(tǒng)為游客或用戶提供查看帖子功能。</p><p>  發(fā)帖頁(article.jsp):系統(tǒng)為注冊(cè)用戶提供發(fā)表帖子功能。</p>

80、<p>  回復(fù)頁(post.jsp):系統(tǒng)為注冊(cè)用戶回復(fù)帖子功能。</p><p>  提示錯(cuò)誤信息頁面(error.jsp):所有操作錯(cuò)誤的提示信息頁面。</p><p>  6.1.2 設(shè)計(jì)控制層</p><p>  根據(jù)系統(tǒng)要實(shí)現(xiàn)的功能,構(gòu)成此論壇系統(tǒng)的各個(gè)控制層動(dòng)作類如表6-1所示。通過此表,可以從宏觀上了解各個(gè)控制層動(dòng)作類的功能。</

81、p><p>  表6-1 控制層的動(dòng)作類表</p><p>  在web.xml配置文件中配置struts作為前端控制器,部分代碼如下:</p><p><b>  …</b></p><p><b>  <servlet></b></p><p>  <ser

82、vlet-name>action</servlet-name></p><p>  <servlet-class>org.apache.struts.action.ActionServlet</servlet-class></p><p>  <init-param></p><p>  <param-na

83、me>config</param-name></p><p>  <param-value>/WEB-INF/struts-config.xml</param-value></p><p>  </init-param></p><p>  <load-on-startup>1</load-on

84、-startup></p><p>  </servlet></p><p><b>  …</b></p><p>  6.1.3 數(shù)據(jù)訪問層</p><p>  數(shù)據(jù)訪問層使用Hibernate來實(shí)現(xiàn),根據(jù)數(shù)據(jù)庫表和對(duì)象模型之間的對(duì)應(yīng)關(guān)系,使用MyEclipse可以自動(dòng)生成數(shù)據(jù)訪問層的DAO類和XX

85、X.hbm.xml文件。其他數(shù)據(jù)訪問層的xml文件和Dao類如下表:</p><p>  表 6-2對(duì)象模型與xml文件對(duì)應(yīng)表</p><p>  6.2 系統(tǒng)功能模塊實(shí)現(xiàn)</p><p>  6.2.1登錄模塊的實(shí)現(xiàn)</p><p>  系統(tǒng)登陸界面添加了登錄狀態(tài)和cookie保存時(shí)間,登錄狀態(tài)分為在線、隱身。保存時(shí)間設(shè)置了一天、一周、一

86、個(gè)月和不保存,方便用戶在同一IP下不需要重復(fù)輸入用戶名和密碼。登錄界面設(shè)計(jì)如圖6.1所示。</p><p>  登錄控制器LoginAction.java 主要代碼如下</p><p>  if(BbsPropBiz.getParameter().getLoginCode()==1){</p><p>  String checkNum = login.getCod

87、e();</p><p>  String randNum = (String) session.getAttribute(Constants.bbscode);</p><p>  // 從session中刪除rand</p><p>  session.removeAttribute(Constants.bbscode);</p><p>

88、;  if(checkNum==null || randNum ==null || (!checkNum.equals(randNum))){</p><p>  errors.add("user.checkNum.wrong",new ActionMessage("user.checkNum.wrong"));</p><p>  saveErro

89、rs(session,errors);</p><p>  return mapping.findForward("Failure");</p><p><b>  }</b></p><p><b>  }</b></p><p>  MD5 md = new MD5();&l

90、t;/p><p>  String username = login.getUsername();</p><p>  // 檢查是否允許該IP登錄</p><p>  String ips = BbsPropBiz.getForbid(2);</p><p>  userId = UserBiz.userLogin(userMap,userd

91、to);</p><p>  if(userId > 0) { //登錄成功</p><p>  //判斷是否已經(jīng)登錄,此時(shí)從session里取得的用戶還不是剛剛登錄的用戶 UserSession bbsuser = (UserSession) session.getAttribute(Constants.bbsuser);</p><p>  b

92、oolean again = false;</p><p>  again = OnlineBizIm.getUseridlist().contains((Object)userId);</p><p>  if(bbsuser!=null){// 這個(gè)地方表示用戶重新登錄,故不用提示。</p><p>  if(userId==bbsuser.getUserId

93、())</p><p>  again = false;</p><p><b>  }</b></p><p>  圖6.1 系統(tǒng)登陸界面圖</p><p>  6.2.2主界面的實(shí)現(xiàn)</p><p>  主界面包含快速登錄、論壇信息、最新帖子、最新精華、最新推薦和論壇版塊。當(dāng)用戶進(jìn)入主頁面,

94、他就可以查看論壇的一些基本信息,論壇最新的帖子,最新的精華和推薦,使用戶更容易關(guān)注到想了解的內(nèi)容,從而融入到交流平臺(tái)中。主界面如下圖6.2</p><p><b>  圖6.2 主頁圖</b></p><p>  6.2.3注冊(cè)模塊的實(shí)現(xiàn)</p><p>  用戶注冊(cè)頁面設(shè)計(jì)了填寫用戶名、密碼、Email、驗(yàn)證碼等必填信息和性別、出生日期、學(xué)

95、歷、圖像等可選項(xiàng),驗(yàn)證碼采用事件監(jiān)聽驗(yàn)證是否正確,并且產(chǎn)生提示信息。注冊(cè)頁面設(shè)計(jì)圖6.3所示:</p><p>  RegAction.java 代碼如下,系統(tǒng)通過Ajax異步提交到后天驗(yàn)證用戶名、郵箱是否被注冊(cè),驗(yàn)證碼是否正確。</p><p><b>  /**</b></p><p>  * <p>Title:論壇注冊(cè)Acti

96、on</p></p><p>  * <li>判斷用戶注冊(cè)信息是否合法</p><p>  * <li> 注冊(cè)成功后,同時(shí)更新該用戶相關(guān)信息</p><p>  * <li>處理成功或失敗后分別跳轉(zhuǎn)到相關(guān)頁面并提示相關(guān)信息和操作<br></p><p><b>  */

97、</b></p><p>  public class RegAction extends Action {</p><p>  private Parameter parameter = null;</p><p>  public RegAction (){</p><p>  parameter = BbsPropBiz.g

98、etParameter();</p><p><b>  }</b></p><p>  public ActionForward execute(ActionMapping mapping,ActionForm form,</p><p>  HttpServletRequest request,HttpServletResponse res

99、ponse) {</p><p>  HttpSession session = request.getSession(true);</p><p>  ActionMessages errors = new ActionMessages();</p><p>  Logger bbslog = Logger.getLogger(RegAction.class);&

100、lt;/p><p>  boolean flag = false; // 標(biāo)示用戶是否要審核</p><p>  if(UserBiz.addUser(user)){</p><p>  // 更新系統(tǒng)統(tǒng)計(jì),發(fā)送短消息</p><p>  BbsStatBiz.upRegUser(maxid, username);</p>

101、<p>  MessageBiz.sendRegMessage(maxid, username);</p><p>  return mapping.findForward("Success");</p><p><b>  }else{</b></p><p>  bbslog.error("Reg a

102、 user unsuccessfully!");</p><p>  errors.add("reg.adduser.fail",new ActionMessage("reg.adduser.fail"));</p><p>  saveErrors(request,errors);</p><p>  return

103、 mapping.findForward("Failure");</p><p><b>  } </b></p><p><b>  圖6.3注冊(cè)頁面</b></p><p>  6.2.4發(fā)帖、回復(fù)的實(shí)現(xiàn)</p><p>  發(fā)帖頁面采用富文本編輯器,可以插入不同的文本和修改

104、字體,并且可以添加表情。添加帖子查看權(quán)限設(shè)置和上傳附件功能,查看帖子權(quán)限有:所有人可見、會(huì)員可見、回復(fù)后可見、財(cái)富大于某個(gè)值可見、版主可見等狀態(tài),使發(fā)帖更加具有人性化。發(fā)帖、回復(fù)界面設(shè)計(jì)如圖6.4所示。</p><p>  圖6.4 發(fā)帖、回復(fù)界面圖</p><p>  6.2.5上傳功能的實(shí)現(xiàn)</p><p>  上傳功能采用多文件同時(shí)上傳功能,同時(shí)可以對(duì)上傳的文

105、件進(jìn)行刪除操作。上傳附件主要代碼如下: </p><p>  uploadDir = request.getRealPath("")+"/upload"; // 創(chuàng)建路徑</p><p>  File file = new File(uploadDir); </p><p>  // 系統(tǒng)屬性對(duì)上傳文件限制</p

106、><p>  int maxid = 0;</p><p>  long maxSize = 1024000l;</p><p>  String allow = "gif,jpg,png,bmp,swf,rar,zip,doc,txt";</p><p>  String ftime = DateUtils.getCurFo

107、rmatDate(Constants.dateFS);</p><p>  UpFile curFile = null;</p><p>  // 循環(huán)處理上傳的文件</p><p>  for(int i=0;i<uplist.size();i++){</p><p>  curFile = (UpFile) uplist.get(i

108、); // 取得一個(gè)上傳文件</p><p>  if(curFile!=null){</p><p>  if(curFile.getFilesize()>maxSize || curFile.getFilesize()>fleave*1024){</p><p>  // 如果該文件大小超過規(guī)定或剩余空間大小</p><p&

109、gt;  ((FormFile)formlist.get(i)).destroy();</p><p><b>  }else{</b></p><p>  if(curFile.getFiletype().length()<=0 || curFile.getFiletype().indexOf(",")!=-1 || allow.index

110、Of(curFile.getFiletype())==-1){// 將上傳文件寫到系統(tǒng)目錄下</p><p>  if(UpLoadBiz.writeFile((FormFile)formlist.get(i),filePath+"/"+curFile.getFilename(),curFile,1)){</p><p>  if(!isDataOk)</p>

111、;<p>  isDataOk = true;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  附件上傳如圖6.5所示:</p><p><b

112、>  圖6.5附件上傳</b></p><p>  6.2.6后臺(tái)管理的實(shí)現(xiàn)</p><p>  后臺(tái)管理模塊實(shí)現(xiàn)了用戶管理,論壇管理,模板管理和公告管理。而用戶管理包括用戶成員管理、用戶組管理和用戶等級(jí)管理;論壇管理包含版塊管理、添加大類、大類排序。</p><p>  用戶管理如圖6.6所示:</p><p><b

113、>  圖6.6用戶管理</b></p><p><b>  系統(tǒng)測(cè)試</b></p><p>  7.1 前臺(tái)界面運(yùn)行效果</p><p>  采用超級(jí)管理賬號(hào)luwei登錄系統(tǒng)如下圖,顯示了用戶的基本信息和論壇信息</p><p>  圖7.1登錄系統(tǒng)后頁面</p><p> 

114、 查看新生交流區(qū)的帖子列表如下圖:</p><p>  圖7.2查看帖子列表</p><p>  發(fā)表標(biāo)題為測(cè)試附件的帖子,其中添加了一張圖片,和一個(gè)word文檔。</p><p><b>  圖7.3發(fā)表帖子</b></p><p>  7.2 后臺(tái)運(yùn)行效果</p><p>  進(jìn)入后臺(tái)管理中設(shè)

115、置新生交流區(qū)得版主為luwei</p><p>  圖7.4論壇管理頁面</p><p>  進(jìn)入后臺(tái)管理系統(tǒng)設(shè)置用戶信息如下圖:</p><p>  圖7.5用戶管理頁面</p><p><b>  結(jié)束語</b></p><p>  經(jīng)過大半年的學(xué)習(xí)與實(shí)踐, “在線論壇系統(tǒng)” 已經(jīng)基本完成。在

116、這大半年的開發(fā)過程中,學(xué)到了許多有關(guān)軟件開發(fā),數(shù)據(jù)庫管理設(shè)計(jì)的知識(shí)。以及對(duì)開發(fā)工具M(jìn)yEclipse、Tomcat、Dreamweaver、Mysql的熟悉,使我更進(jìn)一步了解了軟件開發(fā)的流程和Struts+Hibernate框架,為以后走上程序開發(fā)之路打下了牢固的基礎(chǔ)。下面對(duì)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)做一個(gè)總結(jié)。</p><p>  在整個(gè)設(shè)計(jì)過程中,主要的工作有:</p><p>  系統(tǒng)的權(quán)限控

117、制及安全設(shè)計(jì),用戶密碼保護(hù)與修改。</p><p>  用戶注冊(cè)、用戶登錄、發(fā)表帖子、閱讀帖子、回復(fù)帖子、搜索查找、個(gè)人資料維護(hù)、帖子管理、版主管理、版塊管理等模塊的頁面設(shè)計(jì)及功能的設(shè)計(jì)實(shí)現(xiàn)。在系統(tǒng)設(shè)計(jì)中做到了界面友好、簡(jiǎn)潔,易于操作;代碼完整和可擴(kuò)張性,算法設(shè)計(jì)簡(jiǎn)單合理,并使用大量的注釋,提高代碼的閱讀性和可維護(hù)性。</p><p>  數(shù)據(jù)庫操作的安全與穩(wěn)定,嘗試著使用函數(shù)、存儲(chǔ)過程減

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論