bbs論壇設(shè)計(jì)論文完整版畢業(yè)論文_第1頁
已閱讀1頁,還剩78頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘要</b></p><p>  當(dāng)今社會(huì)正處在網(wǎng)絡(luò)時(shí)代,信息化大潮席卷全球,網(wǎng)絡(luò)正以前所未有的速度在我國普及開來。網(wǎng)站以其獨(dú)特的優(yōu)勢(shì)在信息化的過程中占有重要的一席。為了方便信息的交流,在結(jié)合JAVA和S.S.H 技術(shù)之下開發(fā)了這個(gè)快捷、界面友好的交流系統(tǒng),實(shí)現(xiàn)了一個(gè)功能相對(duì)齊全的論壇系統(tǒng),網(wǎng)友可以自由地提出問題以及幫助他人解決問題,或者交流經(jīng)驗(yàn)。</p&

2、gt;<p>  論壇在Struts+Hibernate+Spring擴(kuò)展Struts框架的基礎(chǔ)上,用當(dāng)今主流的網(wǎng)站開發(fā)技術(shù)jsp語言進(jìn)行開發(fā)。論壇將采用B/S體系結(jié)構(gòu),人們通過瀏覽器就可以訪問教學(xué)網(wǎng)站的主頁,保證的服務(wù)器的安全。數(shù)據(jù)庫采用免費(fèi),小巧,易用的mysql數(shù)據(jù)庫。該論壇功能較齊全,在這里可以自由地發(fā)表自己的觀點(diǎn)和對(duì)論壇的主題發(fā)表意見,我們還可以對(duì)網(wǎng)友的問題及時(shí)地解決,獲取對(duì)自己有用的知識(shí)。該論壇還有一些特殊的功

3、能,如在線人員顯示、強(qiáng)大的搜索功能。本網(wǎng)站嚴(yán)格按照軟件項(xiàng)目開發(fā)的流程進(jìn)行開發(fā),對(duì)于網(wǎng)站開發(fā)的可行性分析、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)以及對(duì)網(wǎng)站的測(cè)試與維護(hù)都有詳細(xì)的論述和實(shí)現(xiàn)過程。</p><p>  本套論壇的優(yōu)點(diǎn)在于它具有強(qiáng)大的可擴(kuò)展性和可維護(hù)性,非常適合網(wǎng)民創(chuàng)建自己的中小型BBS論壇!</p><p>  關(guān)鍵詞:BBS ,S.S.H(Struts ,Hibernate ,Sprin

4、g),JAVA , MySQL ,JSP</p><p><b>  目 錄</b></p><p>  摘要.................................................................................................................................

5、.Ⅰ</p><p>  Abstract…………………………...………………...…………………………………..Ⅱ</p><p>  目 錄…………….……………………………………………………………………Ⅲ</p><p>  第一章系統(tǒng)概述……...…….…………………………………...……….…….………..1</p><p> 

6、 1.1總體概述……...………………………………………………………...……....1</p><p>  1.2開發(fā)背景……………………………………………………....……..….….…..2</p><p>  1.3開發(fā)目的……...……………………………………..…………………….…....3</p><p>  第二章系統(tǒng)分析……......…...……

7、...……………...……….....……………..………….4</p><p>  2.1技術(shù)可行性分析……...………………………………………………………...4</p><p>  2.1.1開發(fā)語言綜述…………………………………………………………....4</p><p>  2.1.2 MySQL數(shù)據(jù)庫的選用……………………………………………….….5&l

8、t;/p><p>  2.1.3 S.S.H框架優(yōu)點(diǎn)…………………………………………………………..6</p><p>  2.1.4系統(tǒng)層次設(shè)計(jì)………………………………………...………………….9</p><p>  2.1.5 技術(shù)可行性綜述……………………………………..………………...10</p><p>  2.2時(shí)間可行性(項(xiàng)目開

9、發(fā)計(jì)劃)…………………………………………….……10</p><p>  2.3系統(tǒng)需求分析…………………………………………………………...…….10</p><p>  2.3.1 系統(tǒng)開發(fā)運(yùn)行環(huán)境………………………………………………..…...10</p><p>  2.3.2業(yè)務(wù)描述………………………………………………………………..11</p>

10、;<p>  2.3.3 系統(tǒng)功能概述……………………………………………………….....12</p><p>  2.3.4 數(shù)據(jù)流程……………………………………………………………….12</p><p>  2.4系統(tǒng)總體結(jié)構(gòu)分析結(jié)論……………………………………………………....15</p><p>  第三章系統(tǒng)設(shè)計(jì)……………………………………

11、………………………………….16</p><p>  3.1數(shù)據(jù)庫設(shè)計(jì)……………………….…………………………………………...16</p><p>  3.1.1概念模型設(shè)計(jì)(E-R圖)………………………………..………………..16</p><p>  3.1.2數(shù)據(jù)庫表及關(guān)系建立…………………………………..………………18</p><p&

12、gt;  3.1.3詳細(xì)數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)…………………………………..………………18</p><p>  3.2系統(tǒng)概要設(shè)計(jì)…………………………………………….…….……………..23</p><p>  3.2.1功能模塊設(shè)計(jì)……………………………………………..……………23</p><p>  3.2.2系統(tǒng)界面設(shè)計(jì)……………………………………………..………

13、……26</p><p>  3.2.3系統(tǒng)的組件設(shè)計(jì)…………………………………………..……………28</p><p>  第四章系統(tǒng)的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)……………………………………………………….31</p><p>  4.1系統(tǒng)框架實(shí)現(xiàn)…………………………………………………….…………...31</p><p>  4.1.1底層數(shù)據(jù)庫的

14、建立……………………………………………………..31</p><p>  4.1.2持久化層的建立(hibernate)…………………………………………....32</p><p>  4.1.3業(yè)務(wù)邏輯層的建立……………………………………………………..33</p><p>  4.1.4表示層的建立………………………………………………………..…36</p

15、><p>  4.2系統(tǒng)功能模塊實(shí)現(xiàn)…………………………………………..…………..…….36</p><p>  4.2.1會(huì)員模塊實(shí)現(xiàn)…………………………………………………………...36</p><p>  4.2.2帖子模塊實(shí)現(xiàn)…………………………………………………………...39</p><p>  4.2.3后臺(tái)管理模塊實(shí)現(xiàn)……………

16、………………………………………...42</p><p>  4.3系統(tǒng)設(shè)計(jì)總結(jié)………………………………………………...……………….44</p><p>  第五章系統(tǒng)的調(diào)試與測(cè)試……………………………………………….……………45</p><p>  5.1測(cè)試概述……………………………………………………………………….45</p><p&

17、gt;  5.1.1軟件測(cè)試的目的………………………………………………………...45</p><p>  5.1.2軟件測(cè)試的任務(wù)………………………………………………………...45</p><p>  5.1.3測(cè)試環(huán)境………………………………………………………………...46</p><p>  5.2單元測(cè)試…………………………………………………………..…

18、..……… 46</p><p>  5.2.1黑盒測(cè)試………………………………………………………………...46</p><p>  5.2.2白盒測(cè)試………………………………………………………………...47</p><p>  5.2.3模塊接口測(cè)試…………………………………………………………...48</p><p>  5.3集成測(cè)

19、試…………………………………………………………..…..……….50</p><p>  5.3.1自頂向下集成…………………………………………………………...50</p><p>  5.3.2確認(rèn)測(cè)試標(biāo)準(zhǔn)…………………………………………………………...51</p><p>  第六章結(jié)論………………………………………………………………….…………52<

20、/p><p>  參考文獻(xiàn)……………………………………………………………………….………53</p><p>  致 謝………………………………………………………………………………….54</p><p>  附錄A 英文文獻(xiàn)……………………………………………………………………...55</p><p>  附錄B 翻譯………………………………

21、…………………………………………...68</p><p>  第 1 章 系統(tǒng)概述</p><p><b>  總體概述</b></p><p>  進(jìn)入二十一世紀(jì),計(jì)算機(jī)技術(shù)迅速向著網(wǎng)絡(luò)化、集成化方向發(fā)展。傳統(tǒng)的單機(jī)版應(yīng)用軟件正在逐漸退出舞臺(tái),取而代之的是支持網(wǎng)絡(luò)、支持多種數(shù)據(jù)信息(多媒體)的新一代網(wǎng)絡(luò)版應(yīng)用軟件,而目前網(wǎng)絡(luò)版軟件中似乎存在

22、著兩種不同的趨勢(shì),一種是稱為客戶端——服務(wù)器的C/S結(jié)構(gòu),這類軟件具有結(jié)構(gòu)嚴(yán)謹(jǐn),運(yùn)行效率高,服務(wù)器端壓力小,安全性好等優(yōu)點(diǎn),被廣泛運(yùn)用于局域網(wǎng)中。而另一種,也是本畢業(yè)設(shè)計(jì)所采用的,是稱為瀏覽器——服務(wù)器的B/S結(jié)構(gòu),它的特點(diǎn)是在客戶端直接采用了功能強(qiáng)大的瀏覽器軟件作為界面,其優(yōu)點(diǎn)在于軟件開發(fā)效率高,客戶端不受操作平臺(tái)的限制、也不受地域的限制,網(wǎng)絡(luò)傳輸量少,即適用于局域網(wǎng),更適用于Internet,而且投資小、見效快,用戶可以不必進(jìn)行服務(wù)

23、器方面的投資,而是去租用,甚至是免費(fèi)使用ISP的服務(wù)器資源,因而受到越來越多中小型單位的青睞。</p><p>  隨著Internet技術(shù)的不斷發(fā)展,以及用戶群爆炸性地增長,網(wǎng)絡(luò)不再僅僅是信息的被動(dòng)獲取來源,更成為人們探討間題、交換觀點(diǎn)的場所,其中,網(wǎng)上論壇扮演了極其重要的角色,隨著時(shí)間的推移,論壇站點(diǎn)中積存了豐富的信息資源,不但有各類技術(shù)資料和新聞文檔,還包含著用戶的判斷和評(píng)論,論壇站點(diǎn)己成為Web信息庫的重

24、要組成部分,自網(wǎng)上論壇誕生20多年以來,隨著Web技術(shù)的發(fā)展,己經(jīng)由原來簡單的電子公告板系統(tǒng)發(fā)展為功能豐富的網(wǎng)上論壇和虛擬社區(qū)模式。各種論壇隨著網(wǎng)絡(luò)迅速發(fā)展,幾乎充實(shí)著生活工作的每一個(gè)方面,無論是商界、政界,還是娛樂界,都有各種論壇?;ヂ?lián)網(wǎng)正在融入我們的生活,網(wǎng)絡(luò)提供給我們的不只是一個(gè)獲取信息的來源,而且還是一個(gè)可以相互交流的空間,網(wǎng)上論壇正是一種供人們進(jìn)行交流的網(wǎng)絡(luò)空間, 影響和改變著我們的生活。</p><p&g

25、t;<b>  開發(fā)背景</b></p><p>  1978年在美國芝加哥開發(fā)出一套基于8080芯片的CBBS/Chicago (Computerized Bulletin Board System/Chicago),此乃最早的一套BBS系統(tǒng)。之后隨著蘋果機(jī)的問世,開發(fā)出基于蘋果機(jī)的Bulletin Board System和大眾信息系統(tǒng)(Peoples Message System)2種

26、BBS系統(tǒng)。1981年IBM個(gè)人計(jì)算機(jī)誕生時(shí),并沒有自己的BBS系統(tǒng)。直到1982年,Buss Lane 才用Basic語言為IBM個(gè)人計(jì)算機(jī)編寫了一個(gè)原型程序。其后經(jīng)過幾番增修,終于在1983年通過Capital PC User Group(CPCUG)的Communication Special Interest Group會(huì)員的努力,改寫出了個(gè)人計(jì)算機(jī)系統(tǒng)的BBS。經(jīng)Thomas Mach整理后,終于完成了個(gè)人計(jì)算機(jī)的第1版BBS

27、系統(tǒng)——RBBS-PC。這套BBS系統(tǒng)的最大特色是其源程序全部公開,有利于日后的修改和維護(hù),因此后來在開發(fā)其他的BBS系統(tǒng)時(shí)都以此為框架,所以RBBS-PC贏得了BBS鼻祖的美稱。</p><p>  大約是從1991年開始,國內(nèi)開始了第一個(gè)BBS站。經(jīng)過長時(shí)間的發(fā)展,直到1995年,隨著計(jì)算機(jī)及其外設(shè)的大幅降價(jià),BBS才逐漸被人們所認(rèn)識(shí)。1996年更是以驚人的速度發(fā)展起來。國內(nèi)的BBS站,按其性質(zhì)劃分,可以分為

28、2種:一種是商業(yè)BBS站,如新華龍訊網(wǎng);另一種是業(yè)余BBS站,如天堂資訊站。由于使用商業(yè)BBS站要交納一筆費(fèi)用,而商業(yè)站所能提供的服務(wù)與業(yè)余站相比,并沒有什么優(yōu)勢(shì),所以其用戶數(shù)量不多。多數(shù)業(yè)余BBS站的站長,基于個(gè)人關(guān)系,每天都互相交換電子郵件,漸漸地形成了一個(gè)全國性的電子郵件網(wǎng)絡(luò)China FidoNet(中國惠多網(wǎng))。于是,各地的用戶都可以通過本地的業(yè)余BBS站與遠(yuǎn)在異地的網(wǎng)友互通信息。這種跨地域電子郵件交流正是商業(yè)站無法與業(yè)余站相

29、抗衡的根本因素。由于業(yè)余BBS站擁有這種優(yōu)勢(shì),所以使用者都更樂意加入。這里“業(yè)余”2字,并不是代表這種類型的BBS站的服務(wù)和技術(shù)水平是業(yè)余的,而是指這類BBS站的性質(zhì)。一般BBS站都是由志愿者開發(fā)的。他們付出的不僅是金錢,更多的是精力。其目的是為了推動(dòng)中國計(jì)算機(jī)網(wǎng)絡(luò)的健康發(fā)展,提高廣大計(jì)算機(jī)用戶的應(yīng)用水平</p><p>  國內(nèi)的BBS站,大多數(shù)還是大型綜合性BBS站。隨著計(jì)算機(jī)的普及,特別是寬帶的普及,BBS

30、的活動(dòng)將會(huì)進(jìn)一步高漲。但是,隨之而來對(duì)專注于領(lǐng)域方面的BBS將會(huì)慢慢增加需求。盡管BBS站臺(tái)的數(shù)量在不斷增長,但BBS的發(fā)展過程,也出現(xiàn)了一些問題。由于國內(nèi)使用的BBS架站軟件,都是從國外引進(jìn)的,因此沒有必要的中文說明。雖然一些熱心的站長翻譯了一些資料,但是僅靠這些是遠(yuǎn)遠(yuǎn)不夠的。另外,有些站臺(tái)的設(shè)立是相互抄襲,所以在結(jié)構(gòu)上難免有雷同之處。 </p><p>  而國內(nèi)自己開發(fā)的BBS基本上都是處于最原始的JSP

31、MODEL1模式, 這種模式是控制層與表示層合二為一,雖然開發(fā)簡單,但是擁有很差的擴(kuò)展性,可維護(hù)性,這樣極大的限制了BBS站點(diǎn)的擴(kuò)展,</p><p>  于是在這種情況下,本文提出了目前比較流行的,基于MVC模式的S.S.H框架(Sturts+Spring+hibernate)的BBS論壇,本套論壇的優(yōu)點(diǎn)在于它具有強(qiáng)大的可擴(kuò)展性和可維護(hù)性,非常適合網(wǎng)民創(chuàng)建自己的中小型BBS論壇!</p><

32、p><b>  開發(fā)目的</b></p><p>  綜上所述,本文提出了目前比較流行的,基于MVC模式的S.S.H框架(Sturts+Spring+hibernate)的BBS論壇,本套論壇的優(yōu)點(diǎn)在于它具有強(qiáng)大的可擴(kuò)展性和可維護(hù)性,非常適合網(wǎng)民創(chuàng)建自己的中小型BBS論壇!</p><p>  第 2 章 系統(tǒng)分析</p><p>  2

33、.1技術(shù)可行性分析</p><p>  2.1.1 開發(fā)語言綜述</p><p>  本系統(tǒng)是基于面向?qū)ο笏枷氲腏AVA語言中J2EE平臺(tái)進(jìn)行編寫,J2EE平臺(tái)具有以下優(yōu)點(diǎn)</p><p>  1.簡化結(jié)構(gòu):J2EE平臺(tái)支持簡化的、基于組件開發(fā)模型,由于J2EE基于Java編程語言和J2SE平臺(tái),它提供了編寫一次,隨處運(yùn)行的可移植性,遵循J2EE標(biāo)準(zhǔn)的所有服務(wù)器都支

34、持該模型。EJB組件使編寫應(yīng)用程序更為簡單。盡管EJB體系結(jié)構(gòu)復(fù)雜,但應(yīng)用程序開發(fā)人員一般都必再編寫訪問系統(tǒng)服務(wù)的代碼,EJB容器會(huì)實(shí)現(xiàn)系統(tǒng)級(jí)的服務(wù),例如,事務(wù)、安全性等。另外,J2EE還支持異構(gòu)環(huán)境?;贘2EE的應(yīng)用程序不依賴任何特定操作系統(tǒng)、中間件或硬件,因此,設(shè)計(jì)合理的基于J2EE的程序只需開發(fā)一次就可以部署到各種平臺(tái),這在典型的異構(gòu)企業(yè)算環(huán)境中是十分關(guān)鍵的。J2EE標(biāo)準(zhǔn)還允許客戶訂購與J2EE兼容的第三方的現(xiàn)成組件,把其部

35、署到異構(gòu)環(huán)境中,節(jié)省了由自己制訂整個(gè)方案所需的費(fèi)用。</p><p>  2. 提高開發(fā)效率:由于組件技術(shù)的使用,可以按照開發(fā)人員的技能對(duì)應(yīng)用程序開發(fā)進(jìn)行分工,并行開發(fā),提供整體開發(fā)效率。例如:圖形設(shè)計(jì)師創(chuàng)建JSP模板,商業(yè)邏輯由該領(lǐng)域的專家完成,JSP頁面和EJB由Java工程師完成,應(yīng)用程序的裝配和部署由團(tuán)隊(duì)中其他的成員完成,其中許多工作可以同時(shí)進(jìn)行,有助于加速應(yīng)用程序的開發(fā)。</p><

36、p>  3.可移植性強(qiáng):除了Java語言固有的可移植性外,EJB體系結(jié)構(gòu)在Bean和支持該Bean的容器之間提供了一套標(biāo)準(zhǔn)化的應(yīng)用程序編程接口,這使開發(fā)人員能夠?qū)ean從一種操作環(huán)境移植到另一種操作環(huán)境,而無需重新編寫其源代碼。</p><p>  4.重用性好:由于在EJB模型中,各個(gè)軟件組件都是嚴(yán)格分離的,因此,可以從現(xiàn)有的軟件組件裝配出服務(wù)器端應(yīng)用程序,這與從現(xiàn)有的JavaBean可以裝配出客戶端應(yīng)

37、用程序一樣,使軟件能夠重用。</p><p>  5.易于維護(hù):基于組件的設(shè)計(jì)簡化了應(yīng)用程序的維護(hù)。由于組件可以被獨(dú)立地更新和替代,通過更新應(yīng)用程序中特定的組件,新的功能可以被很容易地增加。</p><p>  6.可伸縮性:企業(yè)必須要選擇一種服務(wù)器端平臺(tái),以便滿足那些在它們系統(tǒng)上進(jìn)行商業(yè)動(dòng)作大批新客戶?;贘2EE平臺(tái)的應(yīng)用程序可被部署到各種操作系統(tǒng)上,例如,可被部署到高端UNIX或其他

38、的大型機(jī)系統(tǒng)上。J2EE領(lǐng)域的供應(yīng)商提供了更為廣泛的負(fù)載平衡策略,能消除系統(tǒng)中的瓶頸,允許多臺(tái)服務(wù)器集成部署,實(shí)現(xiàn)可高度伸縮的系統(tǒng),滿足未來商業(yè)應(yīng)用的需要。</p><p>  7.被廣泛接受:主要的IT供應(yīng)用商都采納EJB體系結(jié)構(gòu),不同供應(yīng)商的產(chǎn)品只要符合EJB體系結(jié)構(gòu),就都是可互操作的。</p><p>  2.1.2 MySQL數(shù)據(jù)庫的選用</p><p> 

39、 MySQL是現(xiàn)在流行的關(guān)系數(shù)據(jù)庫中其中的一種,相比其它的數(shù)據(jù)庫管理系統(tǒng)(DBMS)來說,MySQL具有小巧、功能齊全、查詢迅捷等優(yōu)點(diǎn),關(guān)鍵的是它是免費(fèi)的,可以在Internet上免費(fèi)下載到,并可免費(fèi)使用,對(duì)于一般中小型,甚至大型應(yīng)用都能夠勝任</p><p>  MySQL具有以下優(yōu)點(diǎn):</p><p>  1、首先是速度。對(duì)于MySQL來說,速度是他們追求的主要目標(biāo)之一,基于這個(gè)原因,

40、MySQL在以前的文檔中也曾經(jīng)說過并不準(zhǔn)備支持事務(wù)和觸發(fā)器。但是在最新的文檔中,我們看到MySQL 4.0.2-alpha已經(jīng)開始支持事務(wù),而且在MySQL的TODO中,對(duì)觸發(fā)器、約束這樣的注定會(huì)降低速度的功能也列入了日程。但是,仍然有理由相信,MySQL將有可能一直保持速度的優(yōu)勢(shì)。</p><p>  2、MySQL更流行,流行對(duì)于一個(gè)商業(yè)軟件來說,也是一個(gè)很重要的指標(biāo),流行意味著更多的用戶,意味著經(jīng)受了更多的

41、考驗(yàn),意味著更好的商業(yè)支持、意味著更多、更完善的文檔資料。</p><p>  3、MySQL更適宜在Windows環(huán)境下運(yùn)行。MySQL作為一個(gè)本地的Windows應(yīng)用程序運(yùn)行(在NT/Win2000/WinXP下,是一個(gè)服務(wù)), 在Windows運(yùn)行中,MySQL更加的穩(wěn)定。</p><p>  4、MySQL使用了線程,在不同線程之間的環(huán)境轉(zhuǎn)換和訪問公用的存儲(chǔ)區(qū)域顯然要比在不同的進(jìn)程

42、之間要快得多。</p><p>  5、MySQL可以適應(yīng)24/7運(yùn)行。在絕大多數(shù)情況下,你不需要為MySQL運(yùn)行任何清除程序。</p><p>  6、MySQL在權(quán)限系統(tǒng)上更為完善。MySQL允許你定義一整套的不同的數(shù)據(jù)級(jí)、表級(jí)和列級(jí)的權(quán)限。對(duì)于列級(jí)的權(quán)限。MySQL還允許你指定基于主機(jī)的權(quán)限。</p><p>  7、由于MySQL 4.0.2-alpha開始

43、支持事務(wù)的概念,因此事務(wù)對(duì)于MySQL不再僅僅成為劣勢(shì)。相反,因?yàn)镸ySQL保留無事務(wù)的表類型。這就為用戶提供了更多的選擇。 </p><p>  8、MySQL的MERGE表提供了一個(gè)獨(dú)特管理多個(gè)表的方法。</p><p>  9、MySQL的myisampack可以對(duì)只讀表進(jìn)行壓縮,此后仍然可以直接訪問該表中的行。</p><p>  2.1.3 S.S.H

44、框架的優(yōu)點(diǎn)</p><p>  S.S.H框架是J2EE應(yīng)用中struts+spring+hibernate三大免費(fèi)開源框架的結(jié)合使用, 它可以看成工具,也是中間件。他是用來提高我們的開發(fā)效率,提高我們軟件產(chǎn)品的可維護(hù)性、可擴(kuò)展性乃至敏捷性的。他們里面有很多優(yōu)秀的設(shè)計(jì)理念及模式應(yīng)用。比如,struts屬于MVC框架,關(guān)鍵是要了解MVC的概念及大致原理;而hibernate屬于ORM系統(tǒng),屬于持久層的解決方案,同樣

45、需要對(duì)ORM的概念及原理有一個(gè)總體的了解。而spring屬于應(yīng)用程序框架,其核心是IOC容器以及AOP,Spring中還集成了很多適用東西,比如對(duì)JDBC的封裝、自己的MVC、對(duì)動(dòng)態(tài)語言的簡潔訪問等,</p><p>  它由以下3個(gè)框架構(gòu)成:</p><p>  1.Struts框架</p><p>  Struts是Apache組織的一個(gè)開放源碼項(xiàng)目。Strut

46、s是一個(gè)比較好的MVC框架,提供了對(duì)開發(fā)MVC系統(tǒng)的底層支持,它采用的主要技術(shù)是Servlet,JSP和Custom tag library。其基本構(gòu)成如圖2.1所示。</p><p>  圖2.1 Struts框架工作流程</p><p>  2.Spring框架</p><p>  Spring 的核心是個(gè)輕量級(jí)(Lightweight)的容器(Containe

47、r),它是實(shí)現(xiàn)IoC(Inversion of Control)容器、非侵入性(No intrusive)的框架,并提供AOP(Aspect-oriented programming)概念的實(shí)現(xiàn)方式,提供對(duì)持久層(Persistence)、事務(wù)(Transaction)的支持,提供MVC Web 框架的實(shí)現(xiàn),并對(duì)一些常用的企業(yè)服務(wù)API(Application Interface)提供一致的模型封裝,是一個(gè)全方位的應(yīng)用程序框架(Appl

48、ication framework),除此之外,對(duì)于現(xiàn)存的各種框架(Struts、JSF、Hibernate 等),Spring 也提供了與它們相整合的方案。</p><p>  Spring框架由以下7個(gè)部分組成</p><p>  圖2.2 Spring框架構(gòu)成</p><p>  3.Hibernate框架</p><p>  Hibe

49、rnate 是一個(gè)開放源碼的 ORM 持久層框架。作為優(yōu)秀的持久層框架實(shí)現(xiàn),Hibernate 框架提供了強(qiáng)大、高性能的對(duì)象到關(guān)系型數(shù)據(jù)庫的持久化服務(wù),開發(fā)人員可以使用面向?qū)ο蟮脑O(shè)計(jì)進(jìn)行持久層開發(fā)。簡單的說,Hibernate 只是一個(gè)將持久化類與數(shù)據(jù)庫表相映射的工具,每個(gè)持久化類實(shí)例均對(duì)應(yīng)于數(shù)據(jù)庫表中的一個(gè)數(shù)據(jù)行而已。用戶只需直接使用面向?qū)ο蟮姆椒ú僮鞔顺志没悓?shí)例,即可完成對(duì)數(shù)據(jù)庫表數(shù)據(jù)的插入、刪除、修改、讀取等操作。</p&

50、gt;<p>  圖2.3 Hibernate框架</p><p>  2.1.4 系統(tǒng)層次設(shè)計(jì)</p><p>  系統(tǒng)很據(jù)S.S.H框架的特點(diǎn),決定使用四層結(jié)構(gòu),這樣做的優(yōu)點(diǎn)是</p><p>  (1)可以分層開發(fā),訪問數(shù)據(jù)庫與業(yè)務(wù)邏輯實(shí)現(xiàn)能夠分開。</p><p>  (2)提高代碼的復(fù)用</p><

51、p>  圖2.4 LeafBBS系統(tǒng)的分層結(jié)構(gòu)</p><p>  2.1.5 技術(shù)可行性綜述</p><p>  綜上所述,這些成熟的框架和優(yōu)秀的設(shè)計(jì)思想,為系統(tǒng)建設(shè)提供了技術(shù)條件。計(jì)算機(jī)等基礎(chǔ)設(shè)施的更新?lián)Q代也緊跟潮流的發(fā)展,這就為開發(fā)系統(tǒng)提供了堅(jiān)實(shí)基礎(chǔ)。</p><p>  2.2時(shí)間可行性(項(xiàng)目開發(fā)計(jì)劃)</p><p>  本系

52、統(tǒng)的難點(diǎn)在于三大框架的結(jié)合使用,但目前有很多優(yōu)秀的書籍可供參閱,且參加過類似項(xiàng)目的開發(fā),預(yù)計(jì)本系統(tǒng)在規(guī)定時(shí)間內(nèi),基本能夠完成.</p><p><b>  開發(fā)計(jì)劃如下:</b></p><p>  2007.01.01-03.30 調(diào)研</p><p>  2007.04.31-04.13 資料查閱<

53、/p><p>  2007.04.16-04.20 方案設(shè)計(jì)</p><p>  2007.04.02-05.18 編寫程序</p><p>  2007.05.07-05.18 撰寫論文</p><p>  2.3 系統(tǒng)需求分析</p><p>  2.3.1 系統(tǒng)開

54、發(fā)運(yùn)行環(huán)境</p><p>  鑒于系統(tǒng)的開發(fā)語言和數(shù)據(jù)庫,采用如下的開發(fā)環(huán)境</p><p>  開發(fā)環(huán)境: Windows 2000NT TomCat6.0 JDK1.5</p><p>  硬件實(shí)現(xiàn): PentiumⅣ2.4G 1G內(nèi)存 80G硬盤</p><p>  開發(fā)語言: Java</p><p>

55、;  數(shù) 據(jù) 庫: MySQL</p><p>  開發(fā)工具: MyEclipse5.1 </p><p>  預(yù)期成果: 一個(gè)可擴(kuò)展的基于MVC模式的 BBS論壇</p><p>  2.3.2 業(yè)務(wù)描述</p><p>  對(duì)于訪問論壇的用戶,可分為注冊(cè)會(huì)員和為注冊(cè)的臨時(shí)用戶,這兩種用戶有著不同的權(quán)限,比如臨時(shí)用戶只能對(duì)帖子進(jìn)行查看,

56、而注冊(cè)會(huì)員除了查看帖子之外,還可以發(fā)帖,回復(fù),查找用戶,并且可以對(duì)自己的注冊(cè)資料進(jìn)行修改等等,</p><p><b>  系統(tǒng)的用例圖如下:</b></p><p>  圖2.5 系統(tǒng)用例圖</p><p>  2.3.3 系統(tǒng)功能概述</p><p>  本系統(tǒng)是一套網(wǎng)上交流的BBS軟件,根據(jù)用戶的需要和實(shí)際的管理?xiàng)l

57、件,應(yīng)由用戶功能實(shí)現(xiàn),帖子功能實(shí)現(xiàn)和后臺(tái)管理等幾個(gè)模塊所構(gòu)成,用戶可以對(duì)一些數(shù)據(jù)進(jìn)行查找和修改,并且注冊(cè)的用戶可以對(duì)帖子進(jìn)行特定的操作,而管理員可以對(duì)用戶和帖子進(jìn)行相關(guān)的管理.</p><p>  鑒于本系統(tǒng)的性質(zhì),系統(tǒng)應(yīng)該實(shí)現(xiàn)以下功能.</p><p><b>  1.用戶功能實(shí)現(xiàn)</b></p><p><b>  (1).用戶的

58、登錄</b></p><p><b>  (2).用戶的注冊(cè)</b></p><p><b>  (3).用戶的查找</b></p><p>  (4).用戶資料的修改</p><p><b>  2.帖子功能實(shí)現(xiàn)</b></p><p>&

59、lt;b>  (1).帖子的發(fā)表</b></p><p><b>  (2).帖子的回復(fù)</b></p><p><b>  (3).帖子的查找</b></p><p><b>  3.后臺(tái)管理</b></p><p><b>  (1).用戶的管理

60、</b></p><p><b>  (2).帖子的管理</b></p><p>  (3).論壇信息的管理</p><p><b>  (4).圖片的管理</b></p><p>  2.3.4 數(shù)據(jù)流程</p><p>  本系統(tǒng)是為了提供給廣大用戶一個(gè)網(wǎng)上交

61、流的平臺(tái),所以論壇的流程是以用戶為中心進(jìn)行的.</p><p>  數(shù)據(jù)流圖是一種能全面地描述信息系統(tǒng)邏輯模型的主要工具,它可以用少數(shù)幾種符號(hào)綜合地反映出信息在系統(tǒng)中的流動(dòng)、處理和存儲(chǔ)情況。數(shù)據(jù)流圖具有以下兩個(gè)特性:</p><p>  (1)抽象性:表現(xiàn)在它完全舍去了具體的物質(zhì),只剩下數(shù)據(jù)的流動(dòng)、加工處理與存儲(chǔ)。</p><p>  (2)概括性:表現(xiàn)在它可以把信

62、息中的各種不同業(yè)務(wù)處理過程聯(lián)系起來,形成一個(gè)整體。</p><p>  數(shù)據(jù)流圖由以下四種基本元素組成,既外部實(shí)體、數(shù)據(jù)流、處理(功能)、數(shù)據(jù)存儲(chǔ)等,數(shù)據(jù)流圖中所用的符號(hào)如下:</p><p>  外部實(shí)體 處理 數(shù)據(jù)流 數(shù)據(jù)存儲(chǔ)</p><p>  LeafBBS論壇系統(tǒng)的數(shù)據(jù)流程圖如下</p><

63、p>  說明:⑴——訪問信息,⑵⑶⑽⑾——用戶信息,⑷——發(fā)表帖子信息,⑸更新帖子信息,⑹搜索信息</p><p>  ⑺——獲取帖子信息,⑻回復(fù)信息,⑼搜索用戶,⑿更新用戶信息,⒀獲取用戶資料</p><p>  圖2.6 數(shù)據(jù)流程圖</p><p>  2.4系統(tǒng)總體結(jié)構(gòu)分析結(jié)論</p><p>  通過對(duì)系統(tǒng)框架及數(shù)據(jù)庫的選擇,和

64、總體的需求分析,完成了前期對(duì)系統(tǒng)模塊的劃分,數(shù)據(jù)的流程,以及一些可行性的分析.在此基礎(chǔ)上,可以系統(tǒng)的數(shù)據(jù)庫和功能模塊進(jìn)行概要設(shè)計(jì).</p><p><b>  第 3 章系統(tǒng)設(shè)計(jì)</b></p><p>  在前期的系統(tǒng)結(jié)構(gòu)分析的基礎(chǔ)上,對(duì)系統(tǒng)進(jìn)行概要設(shè)計(jì).</p><p><b>  3.1 數(shù)據(jù)庫設(shè)計(jì)</b></

65、p><p>  數(shù)據(jù)庫設(shè)計(jì)是指對(duì)于一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠有效地存儲(chǔ)數(shù)據(jù),滿足各種用戶的應(yīng)用需求(信息要求和處理要求).</p><p><b>  數(shù)據(jù)庫和設(shè)計(jì)概述</b></p><p>  (1)數(shù)據(jù)庫是信息系統(tǒng)的核心和基礎(chǔ),把信息系統(tǒng)中大量的數(shù)據(jù)按一定的模型組織起來,提供存儲(chǔ)、維護(hù)、檢索數(shù)據(jù)

66、的功能,使信息系統(tǒng)可以方便、及時(shí)、準(zhǔn)確地從數(shù)據(jù)庫中獲得所需的信息?! ?2)數(shù)據(jù)庫是信息系統(tǒng)的各個(gè)部分能否緊密地結(jié)合在一起以及如何結(jié)合的關(guān)鍵所在?! ?3)數(shù)據(jù)庫設(shè)計(jì)是信息系統(tǒng)開發(fā)和建設(shè)的重要組成部分。</p><p>  3.1.1概念模型設(shè)計(jì)(E-R圖)</p><p>  數(shù)據(jù)模型是是數(shù)據(jù)特征的抽象,從抽象層次上描述了系統(tǒng)的靜態(tài)特征、動(dòng)態(tài)行為和約束條件,為數(shù)據(jù)庫系統(tǒng)的信息表與操作

67、提供一個(gè)抽象的框架。描述了數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作及數(shù)據(jù)約束。</p><p>  E-R模型的基本概念 </p><p>  ER圖概念化地構(gòu)建實(shí)體間關(guān)系的模型,這使得它們區(qū)別于數(shù)據(jù)庫模型圖。ER圖的理念是:項(xiàng)目所有參與者能理解ER圖。ER圖由不同實(shí)體類型、關(guān)系、特性和類型構(gòu)成。實(shí)體是諸如用戶的實(shí)際對(duì)象,有時(shí)更抽象,但必須有業(yè)務(wù)意義。特性用于描述實(shí)體,關(guān)系用于實(shí)體之間(1)實(shí)體:現(xiàn)實(shí)世界中的

68、事物; (2)屬性:事物的特性; (3)聯(lián)系:現(xiàn)實(shí)世界中事物間的關(guān)系。實(shí)體集的關(guān)系有一對(duì)一、一對(duì)多、多對(duì)多的聯(lián)系。</p><p><b>  本系統(tǒng)的ER圖</b></p><p>  圖3.1 系統(tǒng)E-R圖</p><p>  3.1.2數(shù)據(jù)庫表及關(guān)系建立</p><p>  根據(jù)以上這些步驟就可以創(chuàng)建一個(gè)數(shù)據(jù)庫

69、,依次建立下列表結(jié)構(gòu).</p><p><b>  1.用戶基本資料表</b></p><p><b>  2.用戶詳細(xì)信息表</b></p><p><b>  3.論壇文章表</b></p><p><b>  4.論壇版區(qū)表 </b></p&

70、gt;<p>  5.論壇初始化信息表 </p><p>  (1).用戶基本信息表 和用戶詳細(xì)信息表是一對(duì)一的關(guān)系,一個(gè)用戶只對(duì)應(yīng)一個(gè)詳細(xì)的信息表</p><p>  (2).用戶基本信息表和文章表是一對(duì)多的關(guān)系,即一個(gè)用戶可以發(fā)表多篇文章和回復(fù).</p><p>  (3).論壇版區(qū)表和論壇文章表是一對(duì)多的關(guān)系,在一個(gè)論壇中可以含有多個(gè)文章和回

71、復(fù).</p><p>  3.1.3詳細(xì)數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)</p><p>  (1).用戶基本資料表:</p><p>  用戶基本資料表中存放的是用戶登陸時(shí)所需要或者記錄用戶的基本信息,包含比如登陸名,密碼,最后登陸時(shí)間等.用戶基本信息表的建立主要是記錄用戶最常用的一些信息.</p><p>  表3.1 leafbbs_userinfo&l

72、t;/p><p>  (2).用戶詳細(xì)信息表:</p><p>  用戶詳細(xì)信息表中存放的是用戶的身高,體重,聯(lián)系方式等詳細(xì)資料,建立此表的目的是把一些用戶不經(jīng)常用到的詳細(xì)信息,單獨(dú)存放到一張表中,可以節(jié)約系統(tǒng)的資源.</p><p>  表3.2 leafbbs_userdetai</p><p>  (3).論壇文章表:</p>

73、<p>  論壇文章表存放的是用戶所發(fā)表的文章信息,也包括回復(fù)信息.而在數(shù)據(jù)庫的設(shè)計(jì)中主要問題是鑒別帖子信息和回復(fù)信息.</p><p>  表3.3 leafbbs_forum</p><p>  (4).論壇版區(qū)表:</p><p>  論壇版區(qū)表是存放的是論壇中版塊信息.而論壇也劃分為父論壇和子論壇,區(qū)分他們也靠表中的某個(gè)字段來實(shí)現(xiàn)的.具體實(shí)際的設(shè)

74、計(jì)如下.</p><p>  表3.4 leafbbs_board</p><p>  (5).論壇初始化信息表:</p><p>  論壇初始化信息表是存放初始化信息和管理員的帳號(hào)密碼等信息,初始化信息是在論壇在加載過程中讀取的或者以后經(jīng)常用的一些信息.</p><p>  表3.5 leafbbs_config表</p>&

75、lt;p>  3.2 系統(tǒng)概要設(shè)計(jì)</p><p>  根據(jù)需求分析的結(jié)果,對(duì)系統(tǒng)進(jìn)行詳細(xì)的概要設(shè)計(jì)</p><p>  3.2.1功能模塊設(shè)計(jì)</p><p>  繪制出的用例圖,將本系統(tǒng)分為三個(gè)大的模塊,他們分別是會(huì)員資料模塊,帖子資料模塊和后臺(tái)管理模塊!本系統(tǒng)的功能層次圖如圖3.2.1所示</p><p>  圖3.2系統(tǒng)功能層次

76、圖</p><p>  如圖3.2.1,leafbbs系統(tǒng)實(shí)現(xiàn)了如下的功能.</p><p><b>  (1).會(huì)員模塊:</b></p><p>  此模塊用來實(shí)現(xiàn)會(huì)員的登陸注冊(cè)和會(huì)員資料的修改和查找.</p><p><b>  1.會(huì)員登陸模塊:</b></p><p&g

77、t;  會(huì)員可以通過此模塊對(duì)論壇進(jìn)行登陸,登陸后便可以使用所有的會(huì)員功能,比如發(fā)帖回復(fù)等等.</p><p><b>  2.會(huì)員注冊(cè)模塊:</b></p><p>  沒有會(huì)員帳號(hào)的用戶,可以通過此模塊添加會(huì)員信息,添加成功后便可登陸論壇,使用會(huì)員功能.</p><p><b>  3.資料修改模塊:</b></p

78、><p>  已注冊(cè)的會(huì)員在登陸后,可以通過此模塊,對(duì)會(huì)員的基本資料,聯(lián)系方式,密碼,頭像等資料進(jìn)行修改.</p><p><b>  4.會(huì)員查找模塊:</b></p><p>  已注冊(cè)的會(huì)員在登陸后, 可以通過此模塊,對(duì)會(huì)員進(jìn)行查找,并可以查看對(duì)方的資料,聯(lián)系方式等等,從而方便會(huì)員之間的聯(lián)系.</p><p><

79、b>  (2).帖子模塊:</b></p><p><b>  1.帖子發(fā)表模塊:</b></p><p>  已注冊(cè)的會(huì)員在登陸后,可以在相應(yīng)的論壇中,發(fā)表或轉(zhuǎn)載自己的大作,發(fā)表成功后,其他會(huì)員便可以在相應(yīng)的論壇中看到這篇帖子,并可以對(duì)其進(jìn)行回復(fù)等操作.</p><p><b>  2.帖子回復(fù)模塊:</b&

80、gt;</p><p>  會(huì)員在發(fā)表完帖子后,用戶便可查看相關(guān)文章,并可以在文章中對(duì)已發(fā)表的帖子進(jìn)行回復(fù),</p><p><b>  3.帖子查找模塊</b></p><p>  會(huì)員可以通過此模塊,根據(jù)帖子的標(biāo)題和作者,對(duì)相關(guān)的帖子進(jìn)行查找.</p><p><b>  (3).后臺(tái)管理:</b&g

81、t;</p><p><b>  1.帖子查找模塊:</b></p><p>  此模塊和帖子模塊中的帖子查找類似,只是管理員的搜索條件比普通用戶更加的廣泛,使搜索變的便捷.</p><p><b>  2.帖子管理模塊:</b></p><p>  帖子管理模塊是管理員對(duì)帖子管理的平臺(tái),如果管理員

82、查看到帖子有不適宜發(fā)表的內(nèi)容時(shí),可以對(duì)帖子選擇刪除或者鎖定等操作,如果看到優(yōu)秀的帖子,還可以將帖子進(jìn)行置頂,加精,</p><p>  圖3.3帖子管理模塊功能層次圖</p><p><b>  3.會(huì)員管理模塊:</b></p><p>  管理員可以通過此模塊,對(duì)會(huì)員進(jìn)行管理,對(duì)一些不法的用戶可以修改或者刪除資料,</p>&

83、lt;p><b>  4.論壇管理模塊.</b></p><p>  管理員對(duì)論壇的添加,創(chuàng)建,刪除等功能都是在此模塊里進(jìn)行處理.</p><p><b>  5.圖片管理模塊</b></p><p>  管理員可以管理用戶上傳的頭像,和在文章里發(fā)表的圖片,從而加強(qiáng)對(duì)圖片的控制</p><p>

84、;  3.2.2系統(tǒng)界面設(shè)計(jì)</p><p>  對(duì)于系統(tǒng)來說,用戶界面設(shè)計(jì)將非常重要,因?yàn)橐粋€(gè)交互良好的界面能夠加深瀏覽者的印象.</p><p>  設(shè)計(jì)的實(shí)現(xiàn)可以分為兩個(gè)部分。第一部分為站點(diǎn)的規(guī)劃及草圖的繪制,這一部分可以在紙上完成。第二部分為網(wǎng)頁的制作,這一過程是在計(jì)算機(jī)上完成的.</p><p>  設(shè)計(jì)首頁的第一步是設(shè)計(jì)版面布局。我們可以將網(wǎng)頁看作傳統(tǒng)的

85、報(bào)刊雜志來編輯,這里面有文字、圖像乃至動(dòng)畫,我們要做的工作就是以最適合的方式將圖片和文字排放在頁面的不同位置。 除了要有一臺(tái)配置不錯(cuò)的計(jì)算機(jī)外,軟件也是必需的。不能簡單地說一個(gè)軟件的好壞,只要是設(shè)計(jì)者使用起來覺得方便而且能得心應(yīng)手的,就可以稱為好軟件。當(dāng)然,它應(yīng)該能滿足設(shè)計(jì)者的要求。常用的軟件是Macromedia的Dreamweaver以及Adobe的Photoshop。</p><p>  設(shè)計(jì)是有原則的,無

86、論使用何種手法對(duì)畫面中的元素進(jìn)行組合,都一定要遵循五個(gè)大的原則:統(tǒng)一、連貫、分割、對(duì)比及和諧。</p><p>  統(tǒng)一,是指設(shè)計(jì)作品的整體性,一致性。設(shè)計(jì)作品的整體效果是至關(guān)重要的,在設(shè)計(jì)中切勿將各組成部分孤立分散,那樣會(huì)使畫面呈現(xiàn)出一種枝蔓紛雜的凌亂效果。</p><p>  連貫,是指要注意頁面的相互關(guān)系。設(shè)計(jì)中應(yīng)利用各組成部分在內(nèi)容上的內(nèi)在聯(lián)系和表現(xiàn)形式上的相互呼應(yīng),并注意整個(gè)頁面

87、設(shè)計(jì)風(fēng)格的一致性,實(shí)現(xiàn)視覺上和心理上的連貫,使整個(gè)頁面設(shè)計(jì)的各個(gè)部分極為融洽,猶如一氣呵成。</p><p>  分割,是指將頁面分成若干小塊,小塊之間有視覺上的不同,這樣可以使觀者一目了然。在信息量很多時(shí)為使觀者能夠看清楚,就要注意到將畫面進(jìn)行有效的分割。分割不僅是表現(xiàn)形式的需要。換個(gè)角度來講,分割也可以被視為對(duì)于頁面內(nèi)容的一種分類歸納。</p><p>  對(duì)比就是通過矛盾和沖突,使設(shè)

88、計(jì)更加富有生氣。對(duì)比手法很多,例如:多與少、曲與直、強(qiáng)與弱、長與短、粗與細(xì)、疏與密、虛與實(shí)、主與次、黑與白、動(dòng)與靜、美與丑、聚與散等等。在使用對(duì)比的時(shí)候應(yīng)慎重,對(duì)比過強(qiáng)容易破壞美感,影響統(tǒng)一。</p><p>  和諧是指整個(gè)頁面符合美的法則,渾然一體。如果一件設(shè)計(jì)作品僅僅是色彩、形狀、線條等的隨意混合,那么作品將不但沒有“生命感”,而且也根本無法實(shí)現(xiàn)視覺設(shè)計(jì)的傳達(dá)功能。和諧不僅要看結(jié)構(gòu)形式,而且要看作品所形成的

89、視覺效果能否與人的視覺感受形成一種溝通,產(chǎn)生心靈的共鳴。這是設(shè)計(jì)能否成功的關(guān)鍵。</p><p>  最后簡單設(shè)計(jì)系統(tǒng)的簡單登陸界面和主界面</p><p>  圖3.4用戶登陸界面</p><p>  圖3.5用戶登陸后的主界面</p><p>  3.2.3系統(tǒng)的組件設(shè)計(jì)</p><p>  在整個(gè)系統(tǒng)中,為了解決

90、諸如中文顯示亂碼此類的問題,本系統(tǒng)需要設(shè)計(jì)一些組件,來解決相關(guān)的問題.</p><p>  (1).過濾器組件:</p><p>  Java的內(nèi)核和class文件是基于unicode的,這使Java程序具有良好的跨平臺(tái)性,但也帶來了一些中文亂碼問題的麻煩。原因主要有兩方面,Java和JSP文件本身編譯時(shí)產(chǎn)生的亂碼問題和Java程序于其他媒介交互產(chǎn)生的亂碼問題。</p>&l

91、t;p>  Java(包括JSP)源文件中很可能包含有中文,而Java和JSP源文件的保存方式是基于字節(jié)流的,如果Java和JSP編譯成class文件過程中,使用的編碼方式與源文件的編碼不一致,就會(huì)出現(xiàn)亂碼</p><p>  為了解決此類問題,需要設(shè)計(jì)一個(gè)組件來解決此類問題,每次請(qǐng)求和響應(yīng)到達(dá)客戶和服務(wù)器端時(shí),都先經(jīng)過此過濾器對(duì)字符進(jìn)行過濾.</p><p>  圖3.6字符過濾器

92、原理圖</p><p>  (2).權(quán)限管理組件:</p><p>  在論壇中的的用戶一定會(huì)遇到關(guān)于權(quán)限的問題,比如沒有登陸的用戶只可以查看帖子,而即使登陸的用戶,也只可以對(duì)自己應(yīng)有的權(quán)限進(jìn)行操作,不可以操作管理員的功能.</p><p>  解決此類問題,本系統(tǒng)是通過判斷特定的session來判斷用戶的權(quán)限,當(dāng)用戶登陸成功后,組件會(huì)發(fā)送相應(yīng)的用戶session,

93、之后每次用戶對(duì)論壇進(jìn)行操作,都要先通過session,來判斷用戶的權(quán)限.</p><p>  圖3.7權(quán)限判斷流程</p><p>  (3).JSP標(biāo)簽組件</p><p>  由于本文是基于MVC模式架構(gòu),所以在JSP網(wǎng)頁中不應(yīng)存放過多的邏輯判斷,當(dāng)本系統(tǒng)JSP網(wǎng)頁中必須存有JAVA邏輯代碼時(shí),本系統(tǒng)設(shè)計(jì)了一些JSP標(biāo)簽來替代這些邏輯代碼</p>

94、<p>  第 4 章 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  程序設(shè)計(jì)又稱編碼,是系統(tǒng)生命周期中繼詳細(xì)設(shè)計(jì)之后的階段,這個(gè)階段的任務(wù)是使用選定的程序設(shè)計(jì)語言,把經(jīng)過概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)所得到的以程序設(shè)計(jì)說明書體現(xiàn)的信息處理過程描述后,轉(zhuǎn)換成能在計(jì)算機(jī)系統(tǒng)上運(yùn)行的程序源代碼。</p><p>  4.1 系統(tǒng)框架實(shí)現(xiàn)</p><p>  在系統(tǒng)的整體設(shè)計(jì)中,我

95、們采取了四層結(jié)構(gòu).這樣結(jié)構(gòu)的優(yōu)點(diǎn)是靈活,移植和可維護(hù)性比較高. 每個(gè)層在處理程序上都應(yīng)該有一項(xiàng)明確的責(zé)任, 而不應(yīng)該在功能上與其它層混合,并且每個(gè)層要與其它層分開的</p><p>  圖4.1 S.S.H框架的結(jié)合使用</p><p>  4.1.1底層數(shù)據(jù)庫的建立</p><p>  在前期的數(shù)據(jù)庫選用中,本系統(tǒng)選取了靈活高速的 MySQL數(shù)據(jù)庫,而在數(shù)據(jù)庫的設(shè)

96、計(jì)中,本文已經(jīng)確立了表結(jié)構(gòu). 根據(jù)這些就可以創(chuàng)建一個(gè)數(shù)據(jù)庫,在數(shù)據(jù)庫創(chuàng)建并連接好后,就可以創(chuàng)建表、修改表和刪除表,創(chuàng)建、修改、和刪除主鍵、外鍵等等。選中“l(fā)eafbbs”數(shù)據(jù)庫,use database并使用Create table<表名>Sql語句,依次創(chuàng)建以下表結(jié)構(gòu)。由于考慮到本系統(tǒng)是應(yīng)用在單機(jī)系統(tǒng)上,另外根據(jù)管理的規(guī)模,我們只建立一個(gè)數(shù)據(jù)庫,在此數(shù)據(jù)庫基礎(chǔ)上建立</p><p>  leafbb

97、s_userinfo 用戶基本資料表</p><p>  leafbbs_userdetai 用戶詳細(xì)信息表</p><p>  leafbbs_forum 論壇文章表</p><p>  leafbbs_board 論壇版區(qū)表 </p><p>  leafbbs_

98、config 論壇初始化信息表 </p><p>  4.1.2持久化層的建立(hibernate)</p><p>  典型的Web應(yīng)用的另一個(gè)末端是持久層。Hibernate為java提供了OR持久化機(jī)制和查詢服務(wù), 它還給已經(jīng)熟悉SQL和JDBC API 的Java開發(fā)者一個(gè)學(xué)習(xí)橋梁,他們學(xué)習(xí)起來很方便。 Hibernate的持久對(duì)象是基于POJO和Java

99、collections。此外。 系統(tǒng)建立Hibernate的持久層 。 首先把BO持久化。 Hibernate是通過POJO工作的, 因此數(shù)據(jù)對(duì)象需要給所有的fileds 加上getter,setter方法。 Hibernate通過XML文件來映射(OR)對(duì)象,以下xml文件分別映射了相應(yīng)對(duì)象。 1.userinfo.hbm.xml 2.userdetai.hbm.xml </p><p>

100、  3.forum.hbm.xml</p><p>  4.board.hbm.xml</p><p>  5.config.hbm.xml</p><p>  圖4.2 userinfo.hbm.xml 映射文件</p><p>  本系統(tǒng)可以在com.leafbbs.bean目錄下找到這些xml文件。Hibernate配置文件的作用用來告

101、訴程序 應(yīng)該與哪個(gè)數(shù)據(jù)庫通信,該使用哪個(gè)連接池或使用了DataSource, 應(yīng)該加載哪些持久對(duì)象。而Session接口是用來完成Selecting,Saving,Delete和Updating這些操作。</p><p>  4.1.3業(yè)務(wù)邏輯層的建立</p><p>  本系統(tǒng)的業(yè)務(wù)邏輯是交由struts中的Action進(jìn)行判斷的,比如判斷登陸的業(yè)務(wù)邏輯時(shí),會(huì)建立一個(gè)LoginActio

102、n類來進(jìn)行邏輯判斷,而一些關(guān)聯(lián)的映射,LeafBBS系統(tǒng)是寫在struts框架的struts-config.xml中.</p><p>  圖4.3 struts-config.xml 映射文件</p><p>  從編碼的視角來看,這層是最容易被忽視的一層。 卻往往在持久層周圍看到這些業(yè)務(wù)處理的代碼,這其實(shí)是不正確的,因?yàn)樗鼘?dǎo)致了程序代碼的緊密偶合,這樣一來,隨著時(shí)間推移這些代碼很難維護(hù)

103、。幸好,針對(duì)這一問題本系統(tǒng)可以使用Spring框架來解決.spring框架都著手于“依賴注射”(dependency injection)(還有我們知道的‘控制反轉(zhuǎn)'Inversion of Control=IoC)這樣的簡單概念。Spring還提供了Setter Injection(type2),Constructor Injection(type3)等方式供選擇。 Spring把程序中所涉及到包含業(yè)務(wù)邏輯和Dao的Objec

104、ts——例如transaction management handler(事物管理控制)、Object Factoris(對(duì)象工廠)、service objects(服務(wù)組件)——都通過XML來配置聯(lián)系起來。這種方式讓你的對(duì)象從創(chuàng)建中釋放了出來,降低了偶合度.</p><p>  圖4.4 spring 配置文件 applicationContext.xml 映射文件</p><p>  

105、每個(gè)對(duì)象都可以在Spring 配置信息applicationContext.xml中用<bean>標(biāo)簽引用。在這里,mySessionFactory引用了HibernateSessionFactory,而myTransactionManager引用了HibernateTransactionManage。 代碼中myTransactionManger Bean有個(gè)sessionFactory屬性。 HibernateTrans

106、actionManager有個(gè)sessionFactory setter 和 getter方法,這是用來在Spring啟動(dòng)的時(shí)候?qū)崿F(xiàn)"依賴注入" (dependency injection)的。 在sessionFactory 屬性里 引用mySessionFactory。這兩個(gè)對(duì)象在Spring容器初始化后就被組裝了起來了。 這樣的搭配讓你從 單例(singleton objects)和工廠(factories)中

107、解放了出來,降低了代碼的維護(hù)代價(jià)。 mySessionFactory.的兩個(gè)屬性,分別是用來注入mappingResources 和 hibernate</p><p>  圖4.5 Spring基于配置文件,將各個(gè)Bean搭建在一起。</p><p>  4.1.4表示層的建立</p><p>  在表示層上,主要是基于JSP和AJAX異步傳輸技術(shù)來進(jìn)行建立,最后

108、通過Struts 框架的struts-config.xml文件進(jìn)行關(guān)聯(lián)映射.具體的頁面設(shè)計(jì),會(huì)在后面的章節(jié)中進(jìn)行介紹.</p><p>  4.2 系統(tǒng)功能模塊實(shí)現(xiàn)</p><p>  4.2.1會(huì)員模塊實(shí)現(xiàn)</p><p>  在會(huì)員模塊的設(shè)計(jì)中,首先完成的是業(yè)務(wù)邏輯層的相應(yīng)action類的編寫,之后在通過具體的需要,編寫相應(yīng)的數(shù)據(jù)庫訪問DAO.在一切結(jié)束之后,從

109、DAO和業(yè)務(wù)邏輯類中抽象出接口,通過spring的IOC對(duì)接口進(jìn)行對(duì)象注入.</p><p>  在模塊的設(shè)計(jì)過程中,遇到的難點(diǎn)是在注冊(cè)時(shí)使用的AJAX異步傳輸,來判斷用戶名是否被占用.AJAX技術(shù)是一個(gè)基于Javascript腳本語言的新技術(shù),目前對(duì)這種技術(shù)的使用還不是很多,但通過反復(fù)的調(diào)試,逐漸的掌握了AJAX的要點(diǎn).</p><p>  圖4.6 AJAX技術(shù) 在本系統(tǒng)中的應(yīng)用<

110、;/p><p>  當(dāng)用戶在登錄的時(shí)候,會(huì)有一個(gè)驗(yàn)證碼的文本框,而驗(yàn)證碼的實(shí)現(xiàn)是通過訪問servlet技術(shù)實(shí)現(xiàn)的,在打開登錄界面時(shí), servlet會(huì)自動(dòng)向首頁發(fā)送一組圖片,并且發(fā)送一個(gè)相應(yīng)存放數(shù)字的session,當(dāng)用戶提交信息時(shí),系統(tǒng)就會(huì)在session中提取數(shù)字并和用戶的數(shù)字進(jìn)行比較,錯(cuò)誤則會(huì)彈出錯(cuò)誤信息.</p><p>  圖4.7 驗(yàn)證碼的應(yīng)用 </p><p&

111、gt;  當(dāng)用戶在登錄成功后,或者選擇游客模式進(jìn)入論壇時(shí),會(huì)跳轉(zhuǎn)到論壇的主界面,主界面的實(shí)現(xiàn)主要是通過HTML的<iframe> 標(biāo)記,將頁面劃分成兩個(gè)部分,左面的部分是用戶的操作框,右面是論壇的信息部分.已登錄的用戶可以通過左面的操作框來對(duì)自己的一些資料進(jìn)行修改,也可以選擇退出等其他操作.</p><p>  圖4.8 用戶主界面</p><p>  用戶信息模塊功能流程圖&

112、lt;/p><p>  圖4.9 用戶模塊功能流程圖</p><p>  4.2.2帖子模塊實(shí)現(xiàn)</p><p>  帖子模塊的完成流程和會(huì)員模塊類似,都是先根據(jù)JSP網(wǎng)頁,建立相映的Action邏輯判斷類,之后建立和帖子有關(guān)的數(shù)據(jù)庫訪問DAO,最后抽象出接口進(jìn)行依賴注入,</p><p>  編寫帖子模塊首先遇到的難點(diǎn)是分頁功能的實(shí)現(xiàn),當(dāng)打開某

溫馨提示

  • 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)論