2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩30頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  小型論壇系統(tǒng)</b></p><p><b>  摘 要:</b></p><p>  為了方便信息的交流,在結(jié)合動(dòng)態(tài)服務(wù)網(wǎng)頁(JSP)和SQL2000 技術(shù)之下開發(fā)了這個(gè)界面友好的小型論壇系統(tǒng)。論壇使用動(dòng)態(tài)服務(wù)網(wǎng)頁(JSP)技術(shù)建設(shè)論壇的骨干框架,使用SQL2000制作系統(tǒng)的數(shù)據(jù)庫,利用了Struts、Spring

2、、Hibernate三大框架技術(shù)的部分知識點(diǎn),還結(jié)合使用了AJAX技術(shù),通過這些實(shí)現(xiàn)了一個(gè)功能相對齊全的論壇系統(tǒng)。</p><p>  該論壇為網(wǎng)友們提供了一個(gè)交流的平臺,在這里注冊用戶可以自由地發(fā)表自己的觀點(diǎn)和對論壇的主題帖子發(fā)表意見,還可以及時(shí)的解決網(wǎng)友提出的問題,獲取對自己有用的知識。該論壇還有一些特殊的功能,強(qiáng)大的搜索功能等。</p><p>  關(guān)鍵詞:動(dòng)態(tài)服務(wù)網(wǎng)頁;論壇;SQL

3、2000;AJAX;</p><p>  Small BBS Forum System</p><p><b>  Abstract:</b></p><p>  In order to exchange the information expediently, the small forum is developed under the te

4、chnologies of JSP and SQL2000. The main frames of the forum system is built by the technologies of JSP and SQL2000 database, part of the three instructions of Struts, Spring, Hibernate and AJAX, All of those above is to

5、provide a relatively complete functions of the forum system.</p><p>  The forum system provides a platform of communication, herein, the users who have registered ahead can express their ideas freely and giv

6、e some advice about the subjects, moreover, you can solve the questions asked by online friends and obtain useful knowledge for yourself from the forum. By the way, the some other especial functions is also added, such a

7、s the powerful search engineering.</p><p>  Keywords: Java Server Pages; BBS; SQL2000; AJAX;</p><p><b>  目 錄</b></p><p><b>  1前 言1</b></p><p&g

8、t;  2系統(tǒng)技術(shù)及運(yùn)行環(huán)境3</p><p>  2.1JSP技術(shù)簡介3</p><p>  2.2JAVABEAN技術(shù)簡介3</p><p>  2.3其它的一些技術(shù)3</p><p>  2.4運(yùn)行環(huán)境3</p><p>  3系統(tǒng)需求分析說明5</p><p> 

9、 3.1系統(tǒng)介紹5</p><p>  3.2功能需求5</p><p><b>  4總體設(shè)計(jì)6</b></p><p>  4.1總體結(jié)構(gòu)和模塊設(shè)計(jì)6</p><p>  4.2處理流程6</p><p><b>  5數(shù)據(jù)庫設(shè)計(jì)8</b><

10、/p><p>  5.1數(shù)據(jù)庫結(jié)構(gòu)屬性圖8</p><p>  5.2數(shù)據(jù)庫表格設(shè)計(jì)9</p><p>  6系統(tǒng)詳細(xì)設(shè)計(jì)11</p><p>  6.1前臺頁面12</p><p>  6.2后臺頁面17</p><p>  6.3系統(tǒng)設(shè)計(jì)主要代碼及配置文件20</p

11、><p><b>  7測試26</b></p><p>  7.1測試方法26</p><p>  7.2測試范圍26</p><p>  7.3測試報(bào)告26</p><p>  8總結(jié)與展望27</p><p><b>  參考文獻(xiàn)28<

12、;/b></p><p><b>  致 謝29</b></p><p><b>  前 言</b></p><p>  進(jìn)入21世紀(jì),計(jì)算機(jī)技術(shù)迅速向著網(wǎng)絡(luò)化的、集成化方向發(fā)展。傳統(tǒng)的單機(jī)版應(yīng)用軟件正在逐漸退出舞臺,取而代之的是支持網(wǎng)絡(luò)、支持多種數(shù)據(jù)信息(多媒體)的新一代網(wǎng)絡(luò)版應(yīng)用軟件,而目前網(wǎng)絡(luò)版軟件中

13、似乎存在著兩種不同的趨勢,一種是稱為客戶端——服務(wù)器的C/S結(jié)構(gòu)應(yīng)用系統(tǒng),這類軟件具有結(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)應(yīng)用系統(tǒng),它的特點(diǎn)是在客戶端直接采用了功能強(qiáng)大的瀏覽器軟件作為界面,其優(yōu)點(diǎn)在于軟件開發(fā)效率高,客戶端不受操作平臺的限制、也不受地域的限制,網(wǎng)絡(luò)傳輸量少,即適用于局域網(wǎng),更適用于Internet,而且投資小、見效快

14、,用戶可以不必進(jìn)行服務(wù)器方面的投資,而是去租用,甚至是免費(fèi)使用ISP的服務(wù)器資源,因而受到越來越多中小型單位的青睞。</p><p>  本論文就是基于B/S結(jié)構(gòu)實(shí)現(xiàn)的。論壇也常被簡稱為BBS(Bulletin Board System)[1]。1978年在美國芝加哥開發(fā)出一套基于8080芯片的CBBS/Chicago(Computerized Bulletin Board System/Chicago),此乃最

15、早的一套BBS系統(tǒng)[2]。BBS發(fā)展至今,目前世界上業(yè)余的BBS網(wǎng)絡(luò)除了FidoNet(惠多網(wǎng))以外,幾個(gè)較具知名度的還有EggNet、AlterNet和RBBS-Net等等。由于這些網(wǎng)絡(luò)和FidoNet之間的信息交流不成問題,這就實(shí)現(xiàn)了所謂的跨網(wǎng)。大約是從1991年開始,國內(nèi)開始了第一個(gè)BBS站。經(jīng)過長時(shí)間的發(fā)展,直到1995年,隨著計(jì)算機(jī)及其外設(shè)的大幅降價(jià),BBS才逐漸被人們所認(rèn)識。1996年更是以驚人的速度發(fā)展起來。國內(nèi)的BBS站

16、,按其性質(zhì)劃分,可以分為兩種:一種是商業(yè)BBS站,如新華龍訊網(wǎng);另一種是業(yè)余BBS站,如天堂資訊站。由于使用商業(yè)BBS站要交納一筆費(fèi)用,而商業(yè)站所能提供的服務(wù)與業(yè)余站相比,并沒有什么優(yōu)勢,所以其用戶數(shù)量不多。多數(shù)業(yè)余BBS站的站長,基于個(gè)人關(guān)系,每天都互相交換電子郵件,漸漸地形成了</p><p>  隨著中國網(wǎng)絡(luò)的普及和計(jì)算機(jī)及其外設(shè)的大幅度降價(jià),Internet這個(gè)概念逐漸深入人心。中國網(wǎng)民的數(shù)量呈幾何級數(shù)量

17、增長,BBS的普及程度也直追Email。每個(gè)網(wǎng)站幾乎都擁有自己的BBS或者BBS鏈接,BBS社區(qū)提供給用戶的服務(wù)是全面而且非常友好的,用戶在社區(qū)中可以根據(jù)自己的喜好設(shè)置不同的顯示風(fēng)格,根據(jù)自己的需求定制各種服務(wù)[4]。通過論壇更加快捷的了解企業(yè)員工的信息,而建立會(huì)員服務(wù)的基礎(chǔ)是建系論壇管理系統(tǒng)!通過應(yīng)用該系統(tǒng)可以實(shí)現(xiàn)用戶與用戶間的交流、企業(yè)與企業(yè)間的信息交互,利用網(wǎng)絡(luò)經(jīng)濟(jì)而又快捷地與外界進(jìn)行各種信息溝通,取得更有用的信息資源。</

18、p><p>  論壇系統(tǒng)服務(wù)已經(jīng)是互聯(lián)網(wǎng)站一種極為常見的互動(dòng)交流服務(wù)。論壇可以向網(wǎng)友提供開放性的分類專題討論區(qū)服務(wù),可以在此發(fā)表自己的某些觀感、交流某些技術(shù)、經(jīng)驗(yàn)?zāi)酥寥松母形蚺c憂歡,亦可以做為網(wǎng)友們之間的交流渠道,網(wǎng)站亦可在此回答網(wǎng)友們提出的問題或發(fā)布某些消息。通過論壇的方式,增強(qiáng)個(gè)人與個(gè)人,團(tuán)體與團(tuán)體,個(gè)人與團(tuán)體之間的交流聯(lián)系,在Internet上實(shí)現(xiàn)信息的傳遞,提高辦事效率[5]。因此論壇建設(shè)在Internet

19、應(yīng)用上的地位顯而易見,它已成為現(xiàn)代人溝通和獲取信息的重要組成部分,從而倍受人們的重視。</p><p>  本文利用JSP和SQL Server 2000做一個(gè)在線論壇系統(tǒng)。該系統(tǒng)以Internet為平臺,前臺可使任何人注冊、登陸在論壇上進(jìn)行發(fā)貼及討論,版主可以進(jìn)行一部分管理。而管理員也可以在后臺進(jìn)行相關(guān)的管理。</p><p><b>  系統(tǒng)技術(shù)及運(yùn)行環(huán)境</b>

20、</p><p><b>  JSP技術(shù)簡介</b></p><p>  JSP是服務(wù)器端的腳本語言,是以SERVLET為基礎(chǔ)開發(fā)而成的動(dòng)態(tài)網(wǎng)頁生成技術(shù),它的底層實(shí)現(xiàn)是JAVA SERVLET。JSP(JAVA SERVER PAGES)由HTML代碼和潛入其中的JAVA代碼所組成[6]。服務(wù)器在頁面被客戶端請求以后對這些代碼進(jìn)行處理,然后將生產(chǎn)的HTML頁面返回客戶

21、端的瀏覽器JSP的特點(diǎn)是面向?qū)ο蟆?跨平臺、 和SERVLET一樣穩(wěn)定、 可以使用SERVLET提供的API,同時(shí)克服了SERVLET的缺點(diǎn)。在使用JSP時(shí)一般和JAVABEANS結(jié)合使用,從而將界面表現(xiàn)和業(yè)務(wù)邏輯分離[7]。</p><p>  JAVABEAN技術(shù)簡介</p><p>  JAVABEAN是基于JAVA的組建模型,有點(diǎn)類似于MICROSOFT的COM組建。</p&

22、gt;<p>  在JAVA平臺中,可以無限擴(kuò)充JAVA程序的功能,通過JAVABEAN的組合可以快速生產(chǎn)新的應(yīng)用程序。對于程序員來說,最好的一點(diǎn)就是JAVABEAN可以實(shí)現(xiàn)代碼的重復(fù)利用,另外對于程序的易維護(hù)性等等也有很重大的意義。JAVABEAN 通過JAVA虛擬機(jī)(JAVA VIRTUAL MACHINE)執(zhí)行,運(yùn)行JAVABEAN最小的需求是JDK1.1或者以上的版本。JAVABEAN傳統(tǒng)的應(yīng)用在于可視化的領(lǐng)域,如

23、AWT下的應(yīng)用。自從JSP誕生后,JAVABEAN更多的應(yīng)用在了非可視化領(lǐng)域,在服務(wù)器端應(yīng)用方面表現(xiàn)出了越來越強(qiáng)的生命力[8]。</p><p><b>  其它的一些技術(shù)</b></p><p>  本系統(tǒng)還使用了一些其它的技術(shù),如Struts[9],Hibernate[10],Spring[11],AJAX等。這些都會(huì)在后面的代碼處作相應(yīng)的介紹。</p>

24、;<p><b>  運(yùn)行環(huán)境</b></p><p>  為了保證BBS論壇管理系統(tǒng)運(yùn)行的高效性和可靠性,服務(wù)器應(yīng)具有較高的軟硬件配置,客戶端的要求不是很高。此應(yīng)用程序可廣泛運(yùn)行于國際互聯(lián)網(wǎng)即Internet,也可適用于內(nèi)部的局域網(wǎng)。其運(yùn)行要求如下:</p><p><b>  軟件環(huán)境:</b></p><p

25、>  客戶端: Windows95/98/2000/XP,Internet Explorer(IE6.0及其以上版本)等。</p><p>  服務(wù)器端:Windows NT/Windows2000,Tomcat 5.0[12],JDK 1.5及其以上版本,IE6.0及其以上版本等;</p><p>  數(shù)據(jù)庫:采用SQL2000,運(yùn)行于服務(wù)器端。</p><p&

26、gt;<b>  硬件環(huán)境:</b></p><p>  服務(wù)器 CPU:PIII 500以上 ,內(nèi)存:512M以上。</p><p>  客戶機(jī) CPU:P200MMX以上,內(nèi)存:32M以上。</p><p><b>  系統(tǒng)需求分析說明</b></p><p><b>  系統(tǒng)介紹&l

27、t;/b></p><p>  本系統(tǒng)是基于B/S結(jié)構(gòu)的一個(gè)小型論壇,主要基于Windows平臺,通過這個(gè)論壇,用戶之間可以實(shí)現(xiàn)互動(dòng)交流。</p><p><b>  功能需求</b></p><p>  通過對網(wǎng)上的一些著名論壇的認(rèn)識,該論壇至少應(yīng)該實(shí)現(xiàn)以下功能:</p><p>  (1) 注冊管理:能夠?qū)τ脩?/p>

28、名,密碼的簡單驗(yàn)證,能夠防止利用頁面刷新重復(fù)注冊,已經(jīng)存在的用戶名稱不能重復(fù)注冊。</p><p>  (2) 瀏覽帖子:可以根據(jù)作者或內(nèi)容等為關(guān)鍵字搜索帖子,分論壇版塊顯示帖子,顯示帖子詳情,瀏覽帖子時(shí)不要求用戶登錄,但回復(fù)帖子前用戶必須登錄。</p><p>  (3) 發(fā)表及回復(fù)帖子:只有登錄用戶才可以發(fā)表和回復(fù)帖子,并且對帖子的字?jǐn)?shù)有限制。</p><p>

29、  (4) 用戶個(gè)人信息管理:登陸用戶可以編輯注冊后的個(gè)人資料,如修改密碼等,但是不可以修改用戶名稱。也可以對自己發(fā)表的帖子進(jìn)行操作:如修改,刪除。</p><p>  (5) 回復(fù)管理:各論壇版塊的版主可以對自己管理的版塊的帖子的回復(fù)的帖子進(jìn)行管理,可以屏蔽回復(fù)。</p><p>  (6) 論壇版塊管理:只有管理員有該權(quán)限,管理員可以添加,刪除版塊,也可以修改版塊資料,如版塊名稱,上級

30、版塊,版主。</p><p>  (7) 用戶管理:只有管理員有該權(quán)限,管理員可以禁用,啟用用戶,進(jìn)行用戶密碼重置。</p><p>  (8) 公告管理:只有管理員有該權(quán)限,管理員可以添加,刪除公告。</p><p>  (9) 帖子管理:各論壇版塊的版主可以對自己管理的版塊的帖子進(jìn)行管理,可以屏蔽和刪除帖子。</p><p><b&

31、gt;  總體設(shè)計(jì)</b></p><p>  本系統(tǒng)采用B/S模式設(shè)計(jì),方便系統(tǒng)的維護(hù)和使用。采取MVC設(shè)計(jì)模式與多層架構(gòu)的基于J2EE平臺的設(shè)計(jì)[13],使系統(tǒng)擁有良好的擴(kuò)展性,在滿足當(dāng)前使用需求同時(shí)還兼顧系統(tǒng)以后可能的功能擴(kuò)充。系統(tǒng)分成幾個(gè)相對獨(dú)立的模塊,但這些模塊都進(jìn)行集中式管理。</p><p><b>  總體結(jié)構(gòu)和模塊設(shè)計(jì)</b></p

32、><p>  該系統(tǒng)可分為前臺和后臺兩個(gè)部分,前臺是提供給一般用戶和版主使用的,后臺是提供給管理員進(jìn)行一些系統(tǒng)維護(hù)的。</p><p><b>  功能結(jié)構(gòu)圖如下:</b></p><p>  圖3.1 系統(tǒng)功能結(jié)構(gòu)圖</p><p><b>  處理流程</b></p><p>

33、;  對于本系統(tǒng)的使用者來說,可以分為以下幾類:未注冊的用戶,已注冊的用戶。已注冊的用戶又可以分為一般用戶、版主、管理員三類。根據(jù)用戶角色的不同,用戶擁有的權(quán)限也會(huì)不同。根據(jù)這個(gè)來分析該系統(tǒng)的業(yè)務(wù)流程。</p><p>  系統(tǒng)的業(yè)務(wù)流程如圖3.2所示:</p><p>  圖3.2 業(yè)務(wù)流程圖</p><p><b>  數(shù)據(jù)庫設(shè)計(jì)</b>&

34、lt;/p><p>  在建設(shè)網(wǎng)站系統(tǒng)之前,必須對系統(tǒng)所用到的數(shù)據(jù)進(jìn)行大致的分類和具體的結(jié)構(gòu)設(shè)計(jì),既要做到清晰明了,又要能適應(yīng)系統(tǒng)各項(xiàng)功能的調(diào)用,而不至于產(chǎn)生結(jié)構(gòu)上的邏輯混亂,保證關(guān)鍵數(shù)據(jù)在意外情況下不會(huì)被破壞,可以說數(shù)據(jù)庫是系統(tǒng)的重中之重。</p><p>  數(shù)據(jù)庫設(shè)計(jì)要遵循一些規(guī)則,一個(gè)好的數(shù)據(jù)庫滿足一些嚴(yán)格的約束和要求。盡量分離各實(shí)體對應(yīng)的表,一個(gè)實(shí)體對應(yīng)一個(gè)表,分析該實(shí)體有哪些屬性,

35、對應(yīng)有些什么字段,以及各實(shí)體之間的聯(lián)系。實(shí)體、屬性與聯(lián)系是進(jìn)行概念設(shè)計(jì)時(shí)要考慮的三個(gè)元素,也是一個(gè)好的數(shù)據(jù)庫設(shè)計(jì)的核心[14]。</p><p>  從實(shí)際出發(fā),經(jīng)過仔細(xì)地設(shè)計(jì),得到各表的設(shè)計(jì)如下所示。</p><p><b>  數(shù)據(jù)庫結(jié)構(gòu)屬性圖</b></p><p>  圖4.1 數(shù)據(jù)庫結(jié)構(gòu)屬性圖</p><p>

36、<b>  數(shù)據(jù)庫表格設(shè)計(jì)</b></p><p>  表4.1: UserInfo 用戶信息表</p><p>  表4.2: Topic 帖子表</p><p>  表4.3: Reply 回復(fù)表</p><p>  表4.4: Sort 論壇版塊分類表</p><p>  表4.5: Rol

37、e 角色表</p><p>  表4.6: Notice 公告表</p><p><b>  系統(tǒng)詳細(xì)設(shè)計(jì)</b></p><p>  前臺和后臺頁面設(shè)計(jì)采用的技術(shù)是JSP。之所以選擇它是因?yàn)镴SP技術(shù)具有下面的特點(diǎn):</p><p>  1)Write Once Run Anywhere</p><

38、;p>  JSP技術(shù)繼承了JAVA先天性的先進(jìn)概念“Write Once Run Anywhere”這種概念正越來越深遠(yuǎn)的影響著互連網(wǎng)行業(yè)的交互式、WEB設(shè)計(jì)的理念。JSP Pages 可以非常容易的開平臺跨WEB服務(wù)器軟件來是設(shè)計(jì)和開放源代碼。</p><p>  2)支持多種動(dòng)態(tài)網(wǎng)頁格式</p><p>  目前對使用JSP技術(shù)設(shè)計(jì)出來的網(wǎng)頁應(yīng)該采取什么樣的格式還沒有一個(gè)明確的標(biāo)

39、準(zhǔn)。一般來說JSP技術(shù)即可以支持HTML/DHTML的傳統(tǒng)瀏覽器文件格式,又可以支持應(yīng)用與無線通訊設(shè)備例如移動(dòng)電話、PDA等設(shè)備進(jìn)行網(wǎng)頁瀏覽器的VML文件格式,還可以支持其它一些B2B應(yīng)用的XML格式。與以往的其它WEB應(yīng)用技術(shù)相比較JSP技術(shù)有它很鮮明的特點(diǎn)。</p><p>  3)JSP 標(biāo)簽可擴(kuò)充性</p><p>  盡管JSP與ASP都使用標(biāo)簽與腳本技術(shù)來制造動(dòng)態(tài)WEB網(wǎng)頁,但

40、是JSP技術(shù)能夠使開發(fā)者擴(kuò)展JSP標(biāo)簽,使得應(yīng)用JSP的開發(fā)者能定制標(biāo)簽庫所以網(wǎng)頁制作者可以充分利用與XML兼容的標(biāo)簽技術(shù),大大減少了對腳本語言的依賴。由于指定標(biāo)簽庫技術(shù)使得網(wǎng)頁制作者降低了制作網(wǎng)頁和想多個(gè)網(wǎng)頁擴(kuò)充關(guān)鍵功能的復(fù)雜程度[15]。</p><p>  4)JSP跨平臺的可重用性</p><p>  JSP的開發(fā)人員在開發(fā)過程中一直關(guān)注可重用性,JSP足見、企業(yè)JavaBean或

41、制定的標(biāo)簽都是跨平臺可重用的。企業(yè)JavaBean可以訪問傳統(tǒng)的數(shù)據(jù)庫并能并能已分布式系統(tǒng)模式工作于UNIX和WINDOWS平臺,JSP標(biāo)簽可擴(kuò)充功能為開發(fā)人員提供簡便的與XML兼容的接口,即共享網(wǎng)頁的打包功能使其完全的工業(yè)標(biāo)準(zhǔn)化。這種基于組建的模式能夠有效的提高應(yīng)用程序的開發(fā)效率。因?yàn)檫@種模式能夠使開發(fā)人員利用快捷的子組建快速創(chuàng)建模板應(yīng)用程序。然后再整和一些附加功能將其打包成一個(gè)JAVABEAN組建。</p><p

42、><b>  5)易于維護(hù)性</b></p><p>  基于JSP技術(shù)的應(yīng)用程序比基于ASP的應(yīng)用程序更易于維護(hù)和管理。腳本語言都很好服務(wù)于小的應(yīng)用程序但不能適宜大型的復(fù)雜的應(yīng)用程序,因?yàn)镴AVA是結(jié)構(gòu)化的,它比較比較容易創(chuàng)建和維護(hù)龐大的組建化的應(yīng)用程序。</p><p><b>  前臺頁面</b></p><p&g

43、t;  登錄進(jìn)入論壇首頁頁面</p><p>  圖5.1 論壇登錄頁面</p><p>  在此頁面中,用戶如果點(diǎn)擊“瀏覽進(jìn)入”這個(gè)超鏈接,即以相當(dāng)于游客的身份進(jìn)入論壇,進(jìn)入的是論壇的首頁(圖5.2所示),那么就只擁有瀏覽和搜索帖子的權(quán)限。如果用戶輸入了正確的用戶名稱和密碼,就會(huì)以用戶的身份進(jìn)入論壇的首頁。該用戶就可以擁有更多的權(quán)限,可以瀏覽和搜索帖子,修改個(gè)人資料,刪除和修改自己發(fā)表

44、的主題帖子,發(fā)表和回復(fù)帖子。如果用戶輸入了不正確的信息,則系統(tǒng)阻止進(jìn)入論壇的首頁,還是會(huì)跳轉(zhuǎn)到該登錄頁面。如果用戶點(diǎn)擊了“注冊”這個(gè)超鏈接,則會(huì)進(jìn)入注冊頁面(圖5.3所示)。</p><p><b>  論壇首頁</b></p><p><b>  圖5.2 論壇首頁</b></p><p>  在該頁面中,顯示了很多信息

45、。主要是各個(gè)版塊的詳細(xì)信息,包括版塊的名稱,版主,發(fā)表于該版塊下的主題帖子總數(shù),以及最新發(fā)表的帖子的信息。若有發(fā)表的帖子,則顯示該帖子的主題,作者,和發(fā)表時(shí)間,并且提供了帖子主題的超鏈接,點(diǎn)擊后會(huì)進(jìn)入顯示該帖子的詳細(xì)信息頁面。若無發(fā)表的帖子,則顯示暫無。該頁面上還顯示了公告的信息,即公告欄顯示的內(nèi)容。頁面上還提供了搜索帖子的功能,可以根據(jù)作者名稱來精確查找和根據(jù)帖子內(nèi)容來模糊查找。如果用戶是經(jīng)過登錄驗(yàn)證后進(jìn)入該頁面的,頁面會(huì)提供“個(gè)人中

46、心”的超鏈接,點(diǎn)擊此鏈接會(huì)進(jìn)入個(gè)人信息中心頁面(如圖5.6所示)。如果用戶是通過瀏覽進(jìn)入該頁面的,則不會(huì)提供該超鏈接。</p><p><b>  注冊頁面</b></p><p><b>  圖5.3 注冊頁面</b></p><p>  用戶可以在該頁面中輸入注冊資料,包括用戶名,密碼,個(gè)性簽名和頭像。</p&g

47、t;<p>  用戶名,密碼,個(gè)性簽名都是必填的,頭像是默認(rèn)選擇第一個(gè),用戶也可以重新選擇。在用戶提交之前,對所填的信息都作了驗(yàn)證,包括用戶名非空并且不可重復(fù),密碼非空,密碼長度必須大于或等于4,兩次輸入的密碼必須一致,個(gè)性簽名非空,且長度小于50。在對用戶名稱的唯一性驗(yàn)證時(shí),使用了AJAX技術(shù),當(dāng)用戶輸入完用戶名,該文本框失去焦點(diǎn)時(shí),會(huì)檢查數(shù)據(jù)庫中是否存在該用戶名,</p><p>  如果不存在

48、,則在文本框后用藍(lán)色字體顯示“Ok,你可以用這個(gè)名稱!”,如果存在,則在文本框后用紅色字體顯示“No,這個(gè)名稱已占用!”。提交成功后,跳轉(zhuǎn)到登錄頁面。</p><p>  在這里簡單介紹一下AJAX技術(shù)。AJAX全稱為“Asynchronous JavaScript and XML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。它使瀏覽器可以為用戶提供更為自然的瀏覽體驗(yàn)。在Aja

49、x之前,Web站點(diǎn)強(qiáng)制用戶進(jìn)入提交/等待/重新顯示范例,用戶的動(dòng)作總是與服務(wù)器的“思考時(shí)間”同步。Ajax提供與服務(wù)器異步通信的能力,從而使用戶從請求/響應(yīng)的循環(huán)中解脫出來。借助于Ajax,可以在用戶單擊按鈕時(shí),使用JavaScript和DHTML立即更新UI,并向服務(wù)器發(fā)出異步請求,以執(zhí)行更新或查詢數(shù)據(jù)庫。當(dāng)請求返回時(shí),就可以使用JavaScript和CSS來相應(yīng)地更新UI,而不是刷新整個(gè)頁面。最重要的是,用戶甚至不知道瀏覽器正在與服

50、務(wù)器通信:Web站點(diǎn)看起來是即時(shí)響應(yīng)的。</p><p><b>  發(fā)表帖子</b></p><p><b>  圖5.4 發(fā)表頁面</b></p><p>  用戶可以在該頁面中填寫帖子的資料,包括標(biāo)題和內(nèi)容。提交之前也作了驗(yàn)證:標(biāo)題非空且長度小于50,帖子內(nèi)容非空且長度小于2000。為提示用戶控制輸入,通過JavaS

51、cript實(shí)現(xiàn)了動(dòng)態(tài)顯示用戶輸入的字符數(shù)目。為避免重復(fù)提交,提供了驗(yàn)證碼,只有輸入了正確的驗(yàn)證碼后才會(huì)提交。</p><p><b>  顯示帖子及回復(fù)</b></p><p>  圖5.5 顯示貼子與回復(fù)頁面</p><p>  在該頁面中,顯示了帖子的詳細(xì)信息和回復(fù)的帖子的詳細(xì)信息。并且實(shí)現(xiàn)了分頁功能,每頁顯示5個(gè)回復(fù)帖子。只有對登錄用戶才

52、顯示“回復(fù)帖子”和“發(fā)表話題”兩個(gè)按鈕,以及回復(fù)帖子的表格的顯示。對于沒有登錄的用戶,則不會(huì)顯示。如果登錄的用戶的身份是版主,而該帖子又是位于該用戶管理的論壇版塊下,則會(huì)在主題帖子后提供“屏蔽此帖”和“刪除”兩個(gè)超鏈接。分別實(shí)現(xiàn)屏蔽帖子和刪除帖子的功能。另外在回復(fù)的帖子后提供“屏蔽此回復(fù)”超鏈接,實(shí)現(xiàn)對回復(fù)的帖子的屏蔽操作。</p><p><b>  顯示個(gè)人中心頁面</b></p&

53、gt;<p>  圖5.6 個(gè)人中心頁面</p><p>  在該頁面中,顯示了用戶的個(gè)人資料和發(fā)表的帖子的信息。當(dāng)用戶點(diǎn)擊“編輯個(gè)人資料”的超鏈接后,會(huì)進(jìn)入修該個(gè)人資料的頁面,實(shí)現(xiàn)對個(gè)人信息的修改。另外頁面上分頁顯示了用戶發(fā)表的主題帖子,用戶可以這些帖子進(jìn)行修改和刪除操作。</p><p><b>  后臺頁面</b></p><p

54、>  用戶要進(jìn)入后臺管理頁面,必須先進(jìn)入后臺管理的登錄頁面,使用了Filter來實(shí)現(xiàn)過濾。只有登錄成功后,才能進(jìn)入管理頁面。</p><p><b>  后臺登錄頁面</b></p><p><b>  圖5.7 后臺頁面</b></p><p>  登錄成功后跳轉(zhuǎn)到后臺管理頁面,登錄失敗后還是跳轉(zhuǎn)到本頁面。<

55、/p><p><b>  后臺管理頁面</b></p><p>  圖5.8 后臺管理頁面</p><p>  進(jìn)入到后臺管理后,首先顯示的是如上圖5.8所示的頁面。</p><p><b>  用戶管理頁面</b></p><p>  圖5.9 用戶管理頁面</p>

56、<p>  點(diǎn)擊后臺管理頁面的左邊導(dǎo)航欄的“用戶詳細(xì)信息”超鏈接即可進(jìn)入到該頁面。該頁面分頁顯示了用戶的部分資料,包括用戶名,用戶角色,是否禁用。還對每個(gè)用戶提供了“啟用”,“禁用”,“密碼重置”操作按鈕。管理員可以進(jìn)行與之相對應(yīng)的操作。這些操作是通過AJAX實(shí)現(xiàn)的。</p><p><b>  公告管理頁面</b></p><p>  圖5.10 公告

57、管理頁面</p><p>  點(diǎn)擊后臺管理頁面的左邊導(dǎo)航欄的“公告詳細(xì)信息”超鏈接即可進(jìn)入到該頁面。該頁面分頁顯示了公告的詳細(xì)信息,包括公共編號,公共內(nèi)容。管理員可以添加公告,刪除公告。點(diǎn)擊頁面上的添加圖標(biāo)即可進(jìn)入到添加公告頁面。點(diǎn)擊某個(gè)公告后的刪除圖標(biāo)即可刪除選定的某個(gè)公告。</p><p><b>  論壇版塊管理頁面</b></p><p&g

58、t;  圖5.11 論壇管理頁面</p><p>  點(diǎn)擊后臺管理頁面的左邊導(dǎo)航欄的“論壇詳細(xì)信息”超鏈接即可進(jìn)入到該頁面。該頁面分頁顯示了各個(gè)論壇板塊的詳細(xì)信息,包括論壇版塊名稱,上級版塊名稱,版主。管理員可以對論壇版塊進(jìn)行添加,修改,刪除操作。點(diǎn)擊頁面上的添加圖標(biāo)即可進(jìn)入到添加論壇版塊的頁面,完成添加功能。點(diǎn)擊某個(gè)版塊后面的修改圖標(biāo)即可進(jìn)入修改版塊信息的頁面,在修改頁面中可以修改該版塊的名稱,上級版塊,版主。

59、修改成功后跳轉(zhuǎn)到顯示所有論壇版塊的頁面。點(diǎn)擊某個(gè)版塊后面的刪除圖標(biāo)即可刪除選中的論壇版塊,如果刪除成功就跳轉(zhuǎn)到顯示所有論壇版塊的頁面,如果刪除失敗就跳轉(zhuǎn)到顯示刪除失敗信息的頁面。</p><p>  系統(tǒng)設(shè)計(jì)主要代碼及配置文件</p><p>  分頁的JavaBean</p><p>  系統(tǒng)中的大部分JSP頁面需要使用分頁技術(shù),因此使用一個(gè)JavaBean來專門

60、完成分頁的功能。以下是此類的關(guān)鍵代碼:</p><p>  public class PageModel {</p><p><b>  //所有的記錄數(shù)</b></p><p>  private int totalRecords;</p><p><b>  //查詢的結(jié)果集</b></p

61、><p>  private List list;</p><p><b>  //第幾頁</b></p><p>  private int pageNo;</p><p><b>  //每頁多少條數(shù)據(jù)</b></p><p>  private int pageSize;&

62、lt;/p><p><b>  }</b></p><p>  //提供各成員屬性的get,set方法</p><p>  public int getTotalPages() {</p><p>  if (totalRecords == 0)</p><p><b>  return 1

63、;</b></p><p>  return (totalRecords + pageSize -1)/pageSize;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  生成驗(yàn)證碼的代碼</b></

64、p><p><b>  try{</b></p><p>  BufferedImage bf=new BufferedImage(70,25,BufferedImage.TYPE_INT_RGB);</p><p>  Graphics2D g2=bf.createGraphics();</p><p>  g2.setP

65、aint(new Color(0,0,255));</p><p>  g2.fillRect(0,0,70,25);</p><p>  g2.setPaint(new Color(255,255,255));</p><p>  String str=request.getParameter("num");</p><p&

66、gt;  session.setAttribute("num",str);</p><p>  g2.setFont(new Font("Arial",Font.BOLD,24));</p><p>  g2.drawString(str,7,20);</p><p>  for(int i=0;i<10;i++){&l

67、t;/p><p>  int r=(int)(Math.random()*255);</p><p>  int g=(int)(Math.random()*255);</p><p>  int b=(int)(Math.random()*255);</p><p>  g2.setPaint(new Color(r,g,b));</p&

68、gt;<p>  int x1=(int)(Math.random()*80);</p><p>  int y1=(int)(Math.random()*30);</p><p>  int x2=(int)(Math.random()*80);</p><p>  int y2=(int)(Math.random()*30);</p>

69、<p>  g2.drawLine(x1,y1,x2,y2);</p><p><b>  }</b></p><p>  g2.dispose();</p><p>  ImageIO.write(bf,"jpg",response.getOutputStream());</p><p>

70、;  }catch(Exception e){</p><p>  System.out.println(e);</p><p><b>  }</b></p><p><b>  系統(tǒng)的配置文件</b></p><p>  1) Web.xml</p><p>  主要配置

71、的是Tomcat啟動(dòng)時(shí)要加載的配置文件。其中有Struts的配置文件Struts-config.xml,Spring的配置文件即與applicationContext-*.xml匹配的文件,另外還配置了Spring中Filter設(shè)置了字符集。此外還配置了與AJAX技術(shù)相關(guān)的DWR的詳細(xì)配置信息。</p><p>  2) Struts-config.xml</p><p>  對于本系統(tǒng)為

72、什么選擇使用Struts技術(shù),下面列舉的這些理由是顯而易見的:首先,它是建立在MVC這種公認(rèn)的好的模式上的,Struts在M、V和C上都有涉及,但它主要是提供一個(gè)好的控制器和一套定制的標(biāo)簽庫上,也就是說它的著力點(diǎn)在C和V上,因此,它天生就有MVC所帶來的一系列優(yōu)點(diǎn),如:結(jié)構(gòu)層次分明,高可重用性,增加了程序的健壯性和可伸縮性,便于開發(fā)與設(shè)計(jì)分工,提供集中統(tǒng)一的權(quán)限控制、校驗(yàn)、國際化、日志等等;其次,經(jīng)受了實(shí)戰(zhàn)的檢驗(yàn),使其功能越來越強(qiáng)大,體

73、系也日臻完善;最后,是它對其他技術(shù)和框架顯示出很好的融合性[16]。</p><p>  該系統(tǒng)的Struts的配置文件中主要內(nèi)容是ActionForm,DispatchAction的詳細(xì)信息,以及各頁面的跳轉(zhuǎn)路徑的控制信息。</p><p>  3) Hibernate.cfg.xml</p><p>  本系統(tǒng)中對數(shù)據(jù)庫操作的DAO是通過Hibernate來實(shí)現(xiàn)

74、的,該層的事務(wù)處理都交給Hibernate來處理,下面簡單的來介紹一下Hibernate。</p><p>  Hibernate是一種Java語言下的對象關(guān)系映射解決方案。它用來把對象模型表示的對象映射到基于SQL 的關(guān)系模型結(jié)構(gòu)中去,為面向?qū)ο蟮念I(lǐng)域模型到傳統(tǒng)的關(guān)系型數(shù)據(jù)庫的映射,提供了一個(gè)使用方便的框架。Hibernate 不僅管理Java 類到數(shù)據(jù)庫表的映射(包括從Java數(shù)據(jù)類型到SQL數(shù)據(jù)類型的映射)

75、,還提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法,可以大幅度減少開發(fā)時(shí)人工使用SQL 和JDBC 處理數(shù)據(jù)的時(shí)間。Hibernate是一個(gè)開放源代碼的對象關(guān)系映射框架,它對JDBC進(jìn)行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。 Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用E

76、JB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。</p><p>  4) 與Spring有關(guān)的三個(gè)配置文件</p><p>  在本系統(tǒng)中,利用Spring的依賴注入機(jī)制來實(shí)現(xiàn)了DAO對象的依賴注入,這樣一來不用自己來創(chuàng)建對象實(shí)例。</p><p>  在Spring中,應(yīng)用對象被聲明式地組合,典型地是在一個(gè)XML文件里。Spring也提供了很多基礎(chǔ)功能(事

77、務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯的開發(fā)留給了你。所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測試的代碼。它們也為Spring中的各種模塊提供了基礎(chǔ)支持。</p><p>  以下是與系統(tǒng)有關(guān)的三個(gè)Spring的配置文件</p><p>  (1) applicationContext-common.xml</p><p>  在該文件

78、中定義了哪些類的哪些方法參與事務(wù),配置了SessionFactory,事務(wù)管理器,事務(wù)的傳播特性。 </p><p>  (2) applicationContext-beans.xml</p><p>  在該配置文件中配置了各個(gè)模塊的DAO層的詳細(xì)信息。</p><p>  (3) applicationContext-actions.xml</p

79、><p>  在該配置文件中配置了各個(gè)DispatchAction中DAO對象的注入信息。</p><p>  注冊時(shí)的驗(yàn)證代碼(用到了AJAX技術(shù))</p><p>  此處是通過DWR框架來實(shí)現(xiàn)的,頁面中的關(guān)鍵代碼如下:</p><p>  <script type='text/javascript' src='

80、dwr/interface/checkMethod.js'></script></p><p>  <script type='text/javascript' src='dwr/engine.js'></script></p><p>  <script type='text/javascri

81、pt' src='dwr/util.js'></script></p><p>  <script type="text/javascript"></p><p>  String.prototype.trim = function(){</p><p>  // 用正則表達(dá)式將前后空格,用空

82、字符串替代</p><p>  return this.replace(/(^\s*)|(\s*$)/g,"");</p><p><b>  }</b></p><p>  function checkname()</p><p><b>  {</b></p>

83、<p>  var uname = document.all.username.value.trim();</p><p>  if(uname==""){</p><p>  window.alert("用戶名不能為空!");</p><p>  return false;</p><p>

84、<b>  }</b></p><p>  checkMethod.checkUsername(uname,callback);</p><p><b>  }</b></p><p>  function callback(result){</p><p>  if(result=="c

85、anuse"){</p><p>  document.getElementById("user_msg").innerHTML = "<font color=blue>Ok,你可以用這個(gè)名稱!</font>";</p><p><b>  }else{</b></p><p

86、>  document.getElementById("user_msg").innerHTML = "<font color=red>No,這個(gè)名稱已占用!</font>";</p><p>  document.getElementById("username").focus();</p><p>

87、;<b>  }</b></p><p><b>  }</b></p><p>  return true;</p><p><b>  }</b></p><p><b>  </script></b></p><p&g

88、t;<b>  測試</b></p><p><b>  測試方法</b></p><p>  由于本系統(tǒng)的設(shè)計(jì)人員和測試人員都是本人,很了解系統(tǒng)的內(nèi)部結(jié)構(gòu)和處理過程,所以測試方式采用的是動(dòng)態(tài)測試方法中的白盒測試。</p><p><b>  測試范圍</b></p><p>

89、  用戶的登錄;帖子的添加、刪除、修改、查詢;用戶的個(gè)人信息編輯;管理員對用戶、論壇版塊、公告的管理。</p><p><b>  測試報(bào)告</b></p><p><b>  總結(jié)與展望</b></p><p>  在計(jì)算機(jī)網(wǎng)絡(luò)飛速發(fā)展的今天,BBS已經(jīng)成為人們網(wǎng)上交流的重要平臺,因此對BBS論壇的研究是十分必要的。設(shè)計(jì)

90、和開發(fā)了一個(gè)最基本的基于WEB的BBS系統(tǒng),可擴(kuò)展性很大,科學(xué)的開發(fā)過程也極有利于系統(tǒng)的擴(kuò)充與擴(kuò)展。系統(tǒng)現(xiàn)在采用的是SQL2000數(shù)據(jù)庫,視需要可以移植到SQL2005或者其它大中型數(shù)據(jù)庫系統(tǒng)環(huán)境下,只需改動(dòng)少數(shù)幾個(gè)JSP功能模塊文件。系統(tǒng)的分析與定義都結(jié)合了現(xiàn)在流行的面向?qū)ο蠓椒ㄒ约皞鹘y(tǒng)的結(jié)構(gòu)分析與設(shè)計(jì)方法。</p><p>  嚴(yán)格按工程的方法來設(shè)計(jì)系統(tǒng)相當(dāng)重要,不能認(rèn)為基于Web的數(shù)據(jù)庫管理的BBS系統(tǒng)很小

91、,可以無需花太多的時(shí)間來做系統(tǒng)分析,甚至可以無需經(jīng)過系統(tǒng)定義而直接進(jìn)入系統(tǒng)編碼階段。系統(tǒng)分析過于簡單,系統(tǒng)定義過于抽象,則在系統(tǒng)設(shè)計(jì)與編碼階段遇到的困難就越多,特別是其中若不得不做一些功能性甚至系統(tǒng)結(jié)構(gòu)性方面的變動(dòng),將面對許多重復(fù)性的工作。在設(shè)計(jì)開發(fā)BBS論壇過程中重復(fù)工作過多,將會(huì)極大地影響系統(tǒng)開發(fā)的積極性,進(jìn)而影響整個(gè)系統(tǒng)的質(zhì)量。系統(tǒng)分析越充分,系統(tǒng)定義越具體,那么后續(xù)的系統(tǒng)設(shè)計(jì)與開發(fā)工作就越有效率,且系統(tǒng)的質(zhì)量也越有保障。<

92、/p><p>  對于本論壇來說,實(shí)現(xiàn)了現(xiàn)在流行論壇的大部分功能,但也存在很多需要改進(jìn)的方面。首先是界面不是很美觀,排版布局都是要進(jìn)過進(jìn)一步美化的。其次是對用戶使用的友好提示做的還不夠,對于某些操作沒有成功的話,應(yīng)該給出相應(yīng)的錯(cuò)誤信息提示。還有就是可以加入一些功能,如設(shè)置精華帖子[17],設(shè)置置頂帖子。還可以對發(fā)表帖子和回復(fù)帖子的提交處理時(shí)對一些不文明信息進(jìn)行限制輸入[18]。由于時(shí)間的關(guān)系,又因?yàn)楸疚牡念}目是小型論

93、壇系統(tǒng),故只實(shí)現(xiàn)了本文中所列的那些功能,其它的功能有待后續(xù)實(shí)現(xiàn)。</p><p>  回顧設(shè)計(jì)開發(fā)BBS論壇的開發(fā)過程,總結(jié)起來那就是,軟件的開發(fā)是相當(dāng)辛苦的,但成功以后的喜悅也是非常美妙的,其中投入的心血越多,成功以后你所獲得的快樂與充實(shí)感也更多更強(qiáng)。</p><p><b>  致 謝</b></p><p>  經(jīng)過近兩個(gè)月的忙碌和學(xué)習(xí)

94、,本次畢業(yè)設(shè)計(jì)已經(jīng)接近尾聲,作為一個(gè)本科生的畢業(yè)設(shè)計(jì),由于經(jīng)驗(yàn)的匱乏,難免有許多考慮不周全的地方,如果沒有導(dǎo)師的督促指導(dǎo),以及一起學(xué)習(xí)的同學(xué)們的支持,想要完成這個(gè)設(shè)計(jì)是難以想象的。</p><p>  在這里首先要感謝我的導(dǎo)師XXX老師。*老師平日里工作繁多,但在我做畢業(yè)設(shè)計(jì)的每個(gè)階段,從外出實(shí)習(xí)到查閱資料,開題報(bào)告的修改,中期檢查,后期詳細(xì)設(shè)計(jì)等整個(gè)過程中都給予了我悉心的指導(dǎo)。她嚴(yán)肅的科學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,

95、精益求精的工作作風(fēng),深深地感染和激勵(lì)著我。在此謹(jǐn)向武老師致以誠摯的謝意和崇高的敬意!</p><p>  感謝我的室友們,從遙遠(yuǎn)的家來到這個(gè)陌生的城市里,是你們和我共同維系著彼此之間兄弟般的感情,維系著寢室那份家的融洽。四年了,仿佛就在昨天。四年里,我們沒有紅過臉,沒有吵過嘴,沒有發(fā)生上大學(xué)前所擔(dān)心的任何不開心的事情。在此次論文設(shè)計(jì)過程中,你們給了提了很多有建設(shè)性的意見也給了我很多幫助。謝謝你們!</p&g

溫馨提示

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

評論

0/150

提交評論