版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 小型論壇系統(tǒng)</b></p><p><b> 摘 要:</b></p><p> 為了方便信息的交流,在結(jié)合動態(tài)服務(wù)網(wǎng)頁(JSP)和SQL2000 技術(shù)之下開發(fā)了這個界面友好的小型論壇系統(tǒng)。論壇使用動態(tài)服務(wù)網(wǎng)頁(JSP)技術(shù)建設(shè)論壇的骨干框架,使用SQL2000制作系統(tǒng)的數(shù)據(jù)庫,利用了Struts、Spring
2、、Hibernate三大框架技術(shù)的部分知識點,還結(jié)合使用了AJAX技術(shù),通過這些實現(xiàn)了一個功能相對齊全的論壇系統(tǒng)。</p><p> 該論壇為網(wǎng)友們提供了一個交流的平臺,在這里注冊用戶可以自由地發(fā)表自己的觀點和對論壇的主題帖子發(fā)表意見,還可以及時的解決網(wǎng)友提出的問題,獲取對自己有用的知識。該論壇還有一些特殊的功能,強大的搜索功能等。</p><p> 關(guān)鍵詞:動態(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ù)及運行環(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運行環(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è)計6</b></p><p> 4.1總體結(jié)構(gòu)和模塊設(shè)計6</p><p> 4.2處理流程6</p><p><b> 5數(shù)據(jù)庫設(shè)計8</b><
10、/p><p> 5.1數(shù)據(jù)庫結(jié)構(gòu)屬性圖8</p><p> 5.2數(shù)據(jù)庫表格設(shè)計9</p><p> 6系統(tǒng)詳細設(shè)計11</p><p> 6.1前臺頁面12</p><p> 6.2后臺頁面17</p><p> 6.3系統(tǒng)設(shè)計主要代碼及配置文件20</p
11、><p><b> 7測試26</b></p><p> 7.1測試方法26</p><p> 7.2測試范圍26</p><p> 7.3測試報告26</p><p> 8總結(jié)與展望27</p><p><b> 參考文獻28<
12、;/b></p><p><b> 致 謝29</b></p><p><b> 前 言</b></p><p> 進入21世紀,計算機技術(shù)迅速向著網(wǎng)絡(luò)化的、集成化方向發(fā)展。傳統(tǒng)的單機版應(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)嚴謹,運行效率高,服務(wù)器端壓力小,安全性好等優(yōu)點,被廣泛運用于局域網(wǎng)中。另一種,也是本畢業(yè)設(shè)計所采用的,是稱為瀏覽器——服務(wù)器的B/S結(jié)構(gòu)應(yīng)用系統(tǒng),它的特點是在客戶端直接采用了功能強大的瀏覽器軟件作為界面,其優(yōu)點在于軟件開發(fā)效率高,客戶端不受操作平臺的限制、也不受地域的限制,網(wǎng)絡(luò)傳輸量少,即適用于局域網(wǎng),更適用于Internet,而且投資小、見效快
14、,用戶可以不必進行服務(wù)器方面的投資,而是去租用,甚至是免費使用ISP的服務(wù)器資源,因而受到越來越多中小型單位的青睞。</p><p> 本論文就是基于B/S結(jié)構(gòu)實現(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))以外,幾個較具知名度的還有EggNet、AlterNet和RBBS-Net等等。由于這些網(wǎng)絡(luò)和FidoNet之間的信息交流不成問題,這就實現(xiàn)了所謂的跨網(wǎng)。大約是從1991年開始,國內(nèi)開始了第一個BBS站。經(jīng)過長時間的發(fā)展,直到1995年,隨著計算機及其外設(shè)的大幅降價,BBS才逐漸被人們所認識。1996年更是以驚人的速度發(fā)展起來。國內(nèi)的BBS站
16、,按其性質(zhì)劃分,可以分為兩種:一種是商業(yè)BBS站,如新華龍訊網(wǎng);另一種是業(yè)余BBS站,如天堂資訊站。由于使用商業(yè)BBS站要交納一筆費用,而商業(yè)站所能提供的服務(wù)與業(yè)余站相比,并沒有什么優(yōu)勢,所以其用戶數(shù)量不多。多數(shù)業(yè)余BBS站的站長,基于個人關(guān)系,每天都互相交換電子郵件,漸漸地形成了</p><p> 隨著中國網(wǎng)絡(luò)的普及和計算機及其外設(shè)的大幅度降價,Internet這個概念逐漸深入人心。中國網(wǎng)民的數(shù)量呈幾何級數(shù)量
17、增長,BBS的普及程度也直追Email。每個網(wǎng)站幾乎都擁有自己的BBS或者BBS鏈接,BBS社區(qū)提供給用戶的服務(wù)是全面而且非常友好的,用戶在社區(qū)中可以根據(jù)自己的喜好設(shè)置不同的顯示風格,根據(jù)自己的需求定制各種服務(wù)[4]。通過論壇更加快捷的了解企業(yè)員工的信息,而建立會員服務(wù)的基礎(chǔ)是建系論壇管理系統(tǒng)!通過應(yīng)用該系統(tǒng)可以實現(xiàn)用戶與用戶間的交流、企業(yè)與企業(yè)間的信息交互,利用網(wǎng)絡(luò)經(jīng)濟而又快捷地與外界進行各種信息溝通,取得更有用的信息資源。</
18、p><p> 論壇系統(tǒng)服務(wù)已經(jīng)是互聯(lián)網(wǎng)站一種極為常見的互動交流服務(wù)。論壇可以向網(wǎng)友提供開放性的分類專題討論區(qū)服務(wù),可以在此發(fā)表自己的某些觀感、交流某些技術(shù)、經(jīng)驗?zāi)酥寥松母形蚺c憂歡,亦可以做為網(wǎng)友們之間的交流渠道,網(wǎng)站亦可在此回答網(wǎng)友們提出的問題或發(fā)布某些消息。通過論壇的方式,增強個人與個人,團體與團體,個人與團體之間的交流聯(lián)系,在Internet上實現(xiàn)信息的傳遞,提高辦事效率[5]。因此論壇建設(shè)在Internet
19、應(yīng)用上的地位顯而易見,它已成為現(xiàn)代人溝通和獲取信息的重要組成部分,從而倍受人們的重視。</p><p> 本文利用JSP和SQL Server 2000做一個在線論壇系統(tǒng)。該系統(tǒng)以Internet為平臺,前臺可使任何人注冊、登陸在論壇上進行發(fā)貼及討論,版主可以進行一部分管理。而管理員也可以在后臺進行相關(guān)的管理。</p><p><b> 系統(tǒng)技術(shù)及運行環(huán)境</b>
20、</p><p><b> JSP技術(shù)簡介</b></p><p> JSP是服務(wù)器端的腳本語言,是以SERVLET為基礎(chǔ)開發(fā)而成的動態(tài)網(wǎng)頁生成技術(shù),它的底層實現(xiàn)是JAVA SERVLET。JSP(JAVA SERVER PAGES)由HTML代碼和潛入其中的JAVA代碼所組成[6]。服務(wù)器在頁面被客戶端請求以后對這些代碼進行處理,然后將生產(chǎn)的HTML頁面返回客戶
21、端的瀏覽器JSP的特點是面向?qū)ο蟆?跨平臺、 和SERVLET一樣穩(wěn)定、 可以使用SERVLET提供的API,同時克服了SERVLET的缺點。在使用JSP時一般和JAVABEANS結(jié)合使用,從而將界面表現(xiàn)和業(yè)務(wù)邏輯分離[7]。</p><p> JAVABEAN技術(shù)簡介</p><p> JAVABEAN是基于JAVA的組建模型,有點類似于MICROSOFT的COM組建。</p&
22、gt;<p> 在JAVA平臺中,可以無限擴充JAVA程序的功能,通過JAVABEAN的組合可以快速生產(chǎn)新的應(yīng)用程序。對于程序員來說,最好的一點就是JAVABEAN可以實現(xiàn)代碼的重復(fù)利用,另外對于程序的易維護性等等也有很重大的意義。JAVABEAN 通過JAVA虛擬機(JAVA VIRTUAL MACHINE)執(zhí)行,運行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)出了越來越強的生命力[8]。</p><p><b> 其它的一些技術(shù)</b></p><p> 本系統(tǒng)還使用了一些其它的技術(shù),如Struts[9],Hibernate[10],Spring[11],AJAX等。這些都會在后面的代碼處作相應(yīng)的介紹。</p>
24、;<p><b> 運行環(huán)境</b></p><p> 為了保證BBS論壇管理系統(tǒng)運行的高效性和可靠性,服務(wù)器應(yīng)具有較高的軟硬件配置,客戶端的要求不是很高。此應(yīng)用程序可廣泛運行于國際互聯(lián)網(wǎng)即Internet,也可適用于內(nèi)部的局域網(wǎng)。其運行要求如下:</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,運行于服務(wù)器端。</p><p&
26、gt;<b> 硬件環(huán)境:</b></p><p> 服務(wù)器 CPU:PIII 500以上 ,內(nèi)存:512M以上。</p><p> 客戶機 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)的一個小型論壇,主要基于Windows平臺,通過這個論壇,用戶之間可以實現(xiàn)互動交流。</p><p><b> 功能需求</b></p><p> 通過對網(wǎng)上的一些著名論壇的認識,該論壇至少應(yīng)該實現(xiàn)以下功能:</p><p> (1) 注冊管理:能夠?qū)τ脩?/p>
28、名,密碼的簡單驗證,能夠防止利用頁面刷新重復(fù)注冊,已經(jīng)存在的用戶名稱不能重復(fù)注冊。</p><p> (2) 瀏覽帖子:可以根據(jù)作者或內(nèi)容等為關(guān)鍵字搜索帖子,分論壇版塊顯示帖子,顯示帖子詳情,瀏覽帖子時不要求用戶登錄,但回復(fù)帖子前用戶必須登錄。</p><p> (3) 發(fā)表及回復(fù)帖子:只有登錄用戶才可以發(fā)表和回復(fù)帖子,并且對帖子的字數(shù)有限制。</p><p>
29、 (4) 用戶個人信息管理:登陸用戶可以編輯注冊后的個人資料,如修改密碼等,但是不可以修改用戶名稱。也可以對自己發(fā)表的帖子進行操作:如修改,刪除。</p><p> (5) 回復(fù)管理:各論壇版塊的版主可以對自己管理的版塊的帖子的回復(fù)的帖子進行管理,可以屏蔽回復(fù)。</p><p> (6) 論壇版塊管理:只有管理員有該權(quán)限,管理員可以添加,刪除版塊,也可以修改版塊資料,如版塊名稱,上級
30、版塊,版主。</p><p> (7) 用戶管理:只有管理員有該權(quán)限,管理員可以禁用,啟用用戶,進行用戶密碼重置。</p><p> (8) 公告管理:只有管理員有該權(quán)限,管理員可以添加,刪除公告。</p><p> (9) 帖子管理:各論壇版塊的版主可以對自己管理的版塊的帖子進行管理,可以屏蔽和刪除帖子。</p><p><b&
31、gt; 總體設(shè)計</b></p><p> 本系統(tǒng)采用B/S模式設(shè)計,方便系統(tǒng)的維護和使用。采取MVC設(shè)計模式與多層架構(gòu)的基于J2EE平臺的設(shè)計[13],使系統(tǒng)擁有良好的擴展性,在滿足當前使用需求同時還兼顧系統(tǒng)以后可能的功能擴充。系統(tǒng)分成幾個相對獨立的模塊,但這些模塊都進行集中式管理。</p><p><b> 總體結(jié)構(gòu)和模塊設(shè)計</b></p
32、><p> 該系統(tǒng)可分為前臺和后臺兩個部分,前臺是提供給一般用戶和版主使用的,后臺是提供給管理員進行一些系統(tǒng)維護的。</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)限也會不同。根據(jù)這個來分析該系統(tǒng)的業(yè)務(wù)流程。</p><p> 系統(tǒng)的業(yè)務(wù)流程如圖3.2所示:</p><p> 圖3.2 業(yè)務(wù)流程圖</p><p><b> 數(shù)據(jù)庫設(shè)計</b>&
34、lt;/p><p> 在建設(shè)網(wǎng)站系統(tǒng)之前,必須對系統(tǒng)所用到的數(shù)據(jù)進行大致的分類和具體的結(jié)構(gòu)設(shè)計,既要做到清晰明了,又要能適應(yīng)系統(tǒng)各項功能的調(diào)用,而不至于產(chǎn)生結(jié)構(gòu)上的邏輯混亂,保證關(guān)鍵數(shù)據(jù)在意外情況下不會被破壞,可以說數(shù)據(jù)庫是系統(tǒng)的重中之重。</p><p> 數(shù)據(jù)庫設(shè)計要遵循一些規(guī)則,一個好的數(shù)據(jù)庫滿足一些嚴格的約束和要求。盡量分離各實體對應(yīng)的表,一個實體對應(yīng)一個表,分析該實體有哪些屬性,
35、對應(yīng)有些什么字段,以及各實體之間的聯(lián)系。實體、屬性與聯(lián)系是進行概念設(shè)計時要考慮的三個元素,也是一個好的數(shù)據(jù)庫設(shè)計的核心[14]。</p><p> 從實際出發(fā),經(jīng)過仔細地設(shè)計,得到各表的設(shè)計如下所示。</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è)計</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)詳細設(shè)計</b></p><p> 前臺和后臺頁面設(shè)計采用的技術(shù)是JSP。之所以選擇它是因為JSP技術(shù)具有下面的特點:</p><p> 1)Write Once Run Anywhere</p><
38、;p> JSP技術(shù)繼承了JAVA先天性的先進概念“Write Once Run Anywhere”這種概念正越來越深遠的影響著互連網(wǎng)行業(yè)的交互式、WEB設(shè)計的理念。JSP Pages 可以非常容易的開平臺跨WEB服務(wù)器軟件來是設(shè)計和開放源代碼。</p><p> 2)支持多種動態(tài)網(wǎng)頁格式</p><p> 目前對使用JSP技術(shù)設(shè)計出來的網(wǎng)頁應(yīng)該采取什么樣的格式還沒有一個明確的標
39、準。一般來說JSP技術(shù)即可以支持HTML/DHTML的傳統(tǒng)瀏覽器文件格式,又可以支持應(yīng)用與無線通訊設(shè)備例如移動電話、PDA等設(shè)備進行網(wǎng)頁瀏覽器的VML文件格式,還可以支持其它一些B2B應(yīng)用的XML格式。與以往的其它WEB應(yīng)用技術(shù)相比較JSP技術(shù)有它很鮮明的特點。</p><p> 3)JSP 標簽可擴充性</p><p> 盡管JSP與ASP都使用標簽與腳本技術(shù)來制造動態(tài)WEB網(wǎng)頁,但
40、是JSP技術(shù)能夠使開發(fā)者擴展JSP標簽,使得應(yīng)用JSP的開發(fā)者能定制標簽庫所以網(wǎng)頁制作者可以充分利用與XML兼容的標簽技術(shù),大大減少了對腳本語言的依賴。由于指定標簽庫技術(shù)使得網(wǎng)頁制作者降低了制作網(wǎng)頁和想多個網(wǎng)頁擴充關(guān)鍵功能的復(fù)雜程度[15]。</p><p> 4)JSP跨平臺的可重用性</p><p> JSP的開發(fā)人員在開發(fā)過程中一直關(guān)注可重用性,JSP足見、企業(yè)JavaBean或
41、制定的標簽都是跨平臺可重用的。企業(yè)JavaBean可以訪問傳統(tǒng)的數(shù)據(jù)庫并能并能已分布式系統(tǒng)模式工作于UNIX和WINDOWS平臺,JSP標簽可擴充功能為開發(fā)人員提供簡便的與XML兼容的接口,即共享網(wǎng)頁的打包功能使其完全的工業(yè)標準化。這種基于組建的模式能夠有效的提高應(yīng)用程序的開發(fā)效率。因為這種模式能夠使開發(fā)人員利用快捷的子組建快速創(chuàng)建模板應(yīng)用程序。然后再整和一些附加功能將其打包成一個JAVABEAN組建。</p><p
42、><b> 5)易于維護性</b></p><p> 基于JSP技術(shù)的應(yīng)用程序比基于ASP的應(yīng)用程序更易于維護和管理。腳本語言都很好服務(wù)于小的應(yīng)用程序但不能適宜大型的復(fù)雜的應(yīng)用程序,因為JAVA是結(jié)構(gòu)化的,它比較比較容易創(chuàng)建和維護龐大的組建化的應(yīng)用程序。</p><p><b> 前臺頁面</b></p><p&g
43、t; 登錄進入論壇首頁頁面</p><p> 圖5.1 論壇登錄頁面</p><p> 在此頁面中,用戶如果點擊“瀏覽進入”這個超鏈接,即以相當于游客的身份進入論壇,進入的是論壇的首頁(圖5.2所示),那么就只擁有瀏覽和搜索帖子的權(quán)限。如果用戶輸入了正確的用戶名稱和密碼,就會以用戶的身份進入論壇的首頁。該用戶就可以擁有更多的權(quán)限,可以瀏覽和搜索帖子,修改個人資料,刪除和修改自己發(fā)表
44、的主題帖子,發(fā)表和回復(fù)帖子。如果用戶輸入了不正確的信息,則系統(tǒng)阻止進入論壇的首頁,還是會跳轉(zhuǎn)到該登錄頁面。如果用戶點擊了“注冊”這個超鏈接,則會進入注冊頁面(圖5.3所示)。</p><p><b> 論壇首頁</b></p><p><b> 圖5.2 論壇首頁</b></p><p> 在該頁面中,顯示了很多信息
45、。主要是各個版塊的詳細信息,包括版塊的名稱,版主,發(fā)表于該版塊下的主題帖子總數(shù),以及最新發(fā)表的帖子的信息。若有發(fā)表的帖子,則顯示該帖子的主題,作者,和發(fā)表時間,并且提供了帖子主題的超鏈接,點擊后會進入顯示該帖子的詳細信息頁面。若無發(fā)表的帖子,則顯示暫無。該頁面上還顯示了公告的信息,即公告欄顯示的內(nèi)容。頁面上還提供了搜索帖子的功能,可以根據(jù)作者名稱來精確查找和根據(jù)帖子內(nèi)容來模糊查找。如果用戶是經(jīng)過登錄驗證后進入該頁面的,頁面會提供“個人中
46、心”的超鏈接,點擊此鏈接會進入個人信息中心頁面(如圖5.6所示)。如果用戶是通過瀏覽進入該頁面的,則不會提供該超鏈接。</p><p><b> 注冊頁面</b></p><p><b> 圖5.3 注冊頁面</b></p><p> 用戶可以在該頁面中輸入注冊資料,包括用戶名,密碼,個性簽名和頭像。</p&g
47、t;<p> 用戶名,密碼,個性簽名都是必填的,頭像是默認選擇第一個,用戶也可以重新選擇。在用戶提交之前,對所填的信息都作了驗證,包括用戶名非空并且不可重復(fù),密碼非空,密碼長度必須大于或等于4,兩次輸入的密碼必須一致,個性簽名非空,且長度小于50。在對用戶名稱的唯一性驗證時,使用了AJAX技術(shù),當用戶輸入完用戶名,該文本框失去焦點時,會檢查數(shù)據(jù)庫中是否存在該用戶名,</p><p> 如果不存在
48、,則在文本框后用藍色字體顯示“Ok,你可以用這個名稱!”,如果存在,則在文本框后用紅色字體顯示“No,這個名稱已占用!”。提交成功后,跳轉(zhuǎn)到登錄頁面。</p><p> 在這里簡單介紹一下AJAX技術(shù)。AJAX全稱為“Asynchronous JavaScript and XML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。它使瀏覽器可以為用戶提供更為自然的瀏覽體驗。在Aja
49、x之前,Web站點強制用戶進入提交/等待/重新顯示范例,用戶的動作總是與服務(wù)器的“思考時間”同步。Ajax提供與服務(wù)器異步通信的能力,從而使用戶從請求/響應(yīng)的循環(huán)中解脫出來。借助于Ajax,可以在用戶單擊按鈕時,使用JavaScript和DHTML立即更新UI,并向服務(wù)器發(fā)出異步請求,以執(zhí)行更新或查詢數(shù)據(jù)庫。當請求返回時,就可以使用JavaScript和CSS來相應(yīng)地更新UI,而不是刷新整個頁面。最重要的是,用戶甚至不知道瀏覽器正在與服
50、務(wù)器通信:Web站點看起來是即時響應(yīng)的。</p><p><b> 發(fā)表帖子</b></p><p><b> 圖5.4 發(fā)表頁面</b></p><p> 用戶可以在該頁面中填寫帖子的資料,包括標題和內(nèi)容。提交之前也作了驗證:標題非空且長度小于50,帖子內(nèi)容非空且長度小于2000。為提示用戶控制輸入,通過JavaS
51、cript實現(xiàn)了動態(tài)顯示用戶輸入的字符數(shù)目。為避免重復(fù)提交,提供了驗證碼,只有輸入了正確的驗證碼后才會提交。</p><p><b> 顯示帖子及回復(fù)</b></p><p> 圖5.5 顯示貼子與回復(fù)頁面</p><p> 在該頁面中,顯示了帖子的詳細信息和回復(fù)的帖子的詳細信息。并且實現(xiàn)了分頁功能,每頁顯示5個回復(fù)帖子。只有對登錄用戶才
52、顯示“回復(fù)帖子”和“發(fā)表話題”兩個按鈕,以及回復(fù)帖子的表格的顯示。對于沒有登錄的用戶,則不會顯示。如果登錄的用戶的身份是版主,而該帖子又是位于該用戶管理的論壇版塊下,則會在主題帖子后提供“屏蔽此帖”和“刪除”兩個超鏈接。分別實現(xiàn)屏蔽帖子和刪除帖子的功能。另外在回復(fù)的帖子后提供“屏蔽此回復(fù)”超鏈接,實現(xiàn)對回復(fù)的帖子的屏蔽操作。</p><p><b> 顯示個人中心頁面</b></p&
53、gt;<p> 圖5.6 個人中心頁面</p><p> 在該頁面中,顯示了用戶的個人資料和發(fā)表的帖子的信息。當用戶點擊“編輯個人資料”的超鏈接后,會進入修該個人資料的頁面,實現(xiàn)對個人信息的修改。另外頁面上分頁顯示了用戶發(fā)表的主題帖子,用戶可以這些帖子進行修改和刪除操作。</p><p><b> 后臺頁面</b></p><p
54、> 用戶要進入后臺管理頁面,必須先進入后臺管理的登錄頁面,使用了Filter來實現(xià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> 進入到后臺管理后,首先顯示的是如上圖5.8所示的頁面。</p><p><b> 用戶管理頁面</b></p><p> 圖5.9 用戶管理頁面</p>
56、<p> 點擊后臺管理頁面的左邊導航欄的“用戶詳細信息”超鏈接即可進入到該頁面。該頁面分頁顯示了用戶的部分資料,包括用戶名,用戶角色,是否禁用。還對每個用戶提供了“啟用”,“禁用”,“密碼重置”操作按鈕。管理員可以進行與之相對應(yīng)的操作。這些操作是通過AJAX實現(xiàn)的。</p><p><b> 公告管理頁面</b></p><p> 圖5.10 公告
57、管理頁面</p><p> 點擊后臺管理頁面的左邊導航欄的“公告詳細信息”超鏈接即可進入到該頁面。該頁面分頁顯示了公告的詳細信息,包括公共編號,公共內(nèi)容。管理員可以添加公告,刪除公告。點擊頁面上的添加圖標即可進入到添加公告頁面。點擊某個公告后的刪除圖標即可刪除選定的某個公告。</p><p><b> 論壇版塊管理頁面</b></p><p&g
58、t; 圖5.11 論壇管理頁面</p><p> 點擊后臺管理頁面的左邊導航欄的“論壇詳細信息”超鏈接即可進入到該頁面。該頁面分頁顯示了各個論壇板塊的詳細信息,包括論壇版塊名稱,上級版塊名稱,版主。管理員可以對論壇版塊進行添加,修改,刪除操作。點擊頁面上的添加圖標即可進入到添加論壇版塊的頁面,完成添加功能。點擊某個版塊后面的修改圖標即可進入修改版塊信息的頁面,在修改頁面中可以修改該版塊的名稱,上級版塊,版主。
59、修改成功后跳轉(zhuǎn)到顯示所有論壇版塊的頁面。點擊某個版塊后面的刪除圖標即可刪除選中的論壇版塊,如果刪除成功就跳轉(zhuǎn)到顯示所有論壇版塊的頁面,如果刪除失敗就跳轉(zhuǎn)到顯示刪除失敗信息的頁面。</p><p> 系統(tǒng)設(shè)計主要代碼及配置文件</p><p> 分頁的JavaBean</p><p> 系統(tǒng)中的大部分JSP頁面需要使用分頁技術(shù),因此使用一個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> 生成驗證碼的代碼</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啟動時要加載的配置文件。其中有Struts的配置文件Struts-config.xml,Spring的配置文件即與applicationContext-*.xml匹配的文件,另外還配置了Spring中Filter設(shè)置了字符集。此外還配置了與AJAX技術(shù)相關(guān)的DWR的詳細配置信息。</p><p> 2) Struts-config.xml</p><p> 對于本系統(tǒng)為
72、什么選擇使用Struts技術(shù),下面列舉的這些理由是顯而易見的:首先,它是建立在MVC這種公認的好的模式上的,Struts在M、V和C上都有涉及,但它主要是提供一個好的控制器和一套定制的標簽庫上,也就是說它的著力點在C和V上,因此,它天生就有MVC所帶來的一系列優(yōu)點,如:結(jié)構(gòu)層次分明,高可重用性,增加了程序的健壯性和可伸縮性,便于開發(fā)與設(shè)計分工,提供集中統(tǒng)一的權(quán)限控制、校驗、國際化、日志等等;其次,經(jīng)受了實戰(zhàn)的檢驗,使其功能越來越強大,體
73、系也日臻完善;最后,是它對其他技術(shù)和框架顯示出很好的融合性[16]。</p><p> 該系統(tǒng)的Struts的配置文件中主要內(nèi)容是ActionForm,DispatchAction的詳細信息,以及各頁面的跳轉(zhuǎn)路徑的控制信息。</p><p> 3) Hibernate.cfg.xml</p><p> 本系統(tǒng)中對數(shù)據(jù)庫操作的DAO是通過Hibernate來實現(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ù)庫的映射,提供了一個使用方便的框架。Hibernate 不僅管理Java 類到數(shù)據(jù)庫表的映射(包括從Java數(shù)據(jù)類型到SQL數(shù)據(jù)類型的映射)
75、,還提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法,可以大幅度減少開發(fā)時人工使用SQL 和JDBC 處理數(shù)據(jù)的時間。Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得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)的三個配置文件</p><p> 在本系統(tǒng)中,利用Spring的依賴注入機制來實現(xiàn)了DAO對象的依賴注入,這樣一來不用自己來創(chuàng)建對象實例。</p><p> 在Spring中,應(yīng)用對象被聲明式地組合,典型地是在一個XML文件里。Spring也提供了很多基礎(chǔ)功能(事
77、務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯的開發(fā)留給了你。所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測試的代碼。它們也為Spring中的各種模塊提供了基礎(chǔ)支持。</p><p> 以下是與系統(tǒng)有關(guān)的三個Spring的配置文件</p><p> (1) applicationContext-common.xml</p><p> 在該文件
78、中定義了哪些類的哪些方法參與事務(wù),配置了SessionFactory,事務(wù)管理器,事務(wù)的傳播特性。 </p><p> (2) applicationContext-beans.xml</p><p> 在該配置文件中配置了各個模塊的DAO層的詳細信息。</p><p> (3) applicationContext-actions.xml</p
79、><p> 在該配置文件中配置了各個DispatchAction中DAO對象的注入信息。</p><p> 注冊時的驗證代碼(用到了AJAX技術(shù))</p><p> 此處是通過DWR框架來實現(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> // 用正則表達式將前后空格,用空
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,你可以用這個名稱!</font>";</p><p><b> }else{</b></p><p
86、> document.getElementById("user_msg").innerHTML = "<font color=red>No,這個名稱已占用!</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è)計人員和測試人員都是本人,很了解系統(tǒng)的內(nèi)部結(jié)構(gòu)和處理過程,所以測試方式采用的是動態(tài)測試方法中的白盒測試。</p><p><b> 測試范圍</b></p><p>
89、 用戶的登錄;帖子的添加、刪除、修改、查詢;用戶的個人信息編輯;管理員對用戶、論壇版塊、公告的管理。</p><p><b> 測試報告</b></p><p><b> 總結(jié)與展望</b></p><p> 在計算機網(wǎng)絡(luò)飛速發(fā)展的今天,BBS已經(jīng)成為人們網(wǎng)上交流的重要平臺,因此對BBS論壇的研究是十分必要的。設(shè)計
90、和開發(fā)了一個最基本的基于WEB的BBS系統(tǒng),可擴展性很大,科學的開發(fā)過程也極有利于系統(tǒng)的擴充與擴展。系統(tǒng)現(xiàn)在采用的是SQL2000數(shù)據(jù)庫,視需要可以移植到SQL2005或者其它大中型數(shù)據(jù)庫系統(tǒng)環(huán)境下,只需改動少數(shù)幾個JSP功能模塊文件。系統(tǒng)的分析與定義都結(jié)合了現(xiàn)在流行的面向?qū)ο蠓椒ㄒ约皞鹘y(tǒng)的結(jié)構(gòu)分析與設(shè)計方法。</p><p> 嚴格按工程的方法來設(shè)計系統(tǒng)相當重要,不能認為基于Web的數(shù)據(jù)庫管理的BBS系統(tǒng)很小
91、,可以無需花太多的時間來做系統(tǒng)分析,甚至可以無需經(jīng)過系統(tǒng)定義而直接進入系統(tǒng)編碼階段。系統(tǒng)分析過于簡單,系統(tǒng)定義過于抽象,則在系統(tǒng)設(shè)計與編碼階段遇到的困難就越多,特別是其中若不得不做一些功能性甚至系統(tǒng)結(jié)構(gòu)性方面的變動,將面對許多重復(fù)性的工作。在設(shè)計開發(fā)BBS論壇過程中重復(fù)工作過多,將會極大地影響系統(tǒng)開發(fā)的積極性,進而影響整個系統(tǒng)的質(zhì)量。系統(tǒng)分析越充分,系統(tǒng)定義越具體,那么后續(xù)的系統(tǒng)設(shè)計與開發(fā)工作就越有效率,且系統(tǒng)的質(zhì)量也越有保障。<
92、/p><p> 對于本論壇來說,實現(xiàn)了現(xiàn)在流行論壇的大部分功能,但也存在很多需要改進的方面。首先是界面不是很美觀,排版布局都是要進過進一步美化的。其次是對用戶使用的友好提示做的還不夠,對于某些操作沒有成功的話,應(yīng)該給出相應(yīng)的錯誤信息提示。還有就是可以加入一些功能,如設(shè)置精華帖子[17],設(shè)置置頂帖子。還可以對發(fā)表帖子和回復(fù)帖子的提交處理時對一些不文明信息進行限制輸入[18]。由于時間的關(guān)系,又因為本文的題目是小型論
93、壇系統(tǒng),故只實現(xiàn)了本文中所列的那些功能,其它的功能有待后續(xù)實現(xiàn)。</p><p> 回顧設(shè)計開發(fā)BBS論壇的開發(fā)過程,總結(jié)起來那就是,軟件的開發(fā)是相當辛苦的,但成功以后的喜悅也是非常美妙的,其中投入的心血越多,成功以后你所獲得的快樂與充實感也更多更強。</p><p><b> 致 謝</b></p><p> 經(jīng)過近兩個月的忙碌和學習
94、,本次畢業(yè)設(shè)計已經(jīng)接近尾聲,作為一個本科生的畢業(yè)設(shè)計,由于經(jīng)驗的匱乏,難免有許多考慮不周全的地方,如果沒有導師的督促指導,以及一起學習的同學們的支持,想要完成這個設(shè)計是難以想象的。</p><p> 在這里首先要感謝我的導師XXX老師。*老師平日里工作繁多,但在我做畢業(yè)設(shè)計的每個階段,從外出實習到查閱資料,開題報告的修改,中期檢查,后期詳細設(shè)計等整個過程中都給予了我悉心的指導。她嚴肅的科學態(tài)度,嚴謹?shù)闹螌W精神,
95、精益求精的工作作風,深深地感染和激勵著我。在此謹向武老師致以誠摯的謝意和崇高的敬意!</p><p> 感謝我的室友們,從遙遠的家來到這個陌生的城市里,是你們和我共同維系著彼此之間兄弟般的感情,維系著寢室那份家的融洽。四年了,仿佛就在昨天。四年里,我們沒有紅過臉,沒有吵過嘴,沒有發(fā)生上大學前所擔心的任何不開心的事情。在此次論文設(shè)計過程中,你們給了提了很多有建設(shè)性的意見也給了我很多幫助。謝謝你們!</p&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- bbs論壇畢業(yè)設(shè)計論文
- bbs論壇畢業(yè)設(shè)計論文
- bbs論壇畢業(yè)設(shè)計論文
- bbs論壇畢業(yè)設(shè)計論文
- bbs論壇畢業(yè)設(shè)計論文
- bbs論壇系統(tǒng)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---網(wǎng)絡(luò)bbs論壇系統(tǒng)
- bbs論壇系統(tǒng)畢業(yè)設(shè)計2
- 畢業(yè)設(shè)計論文-----jsp_bbs專題論壇系統(tǒng)
- 考研信息bbs論壇畢業(yè)設(shè)計(論文)
- bbs畢業(yè)論文----網(wǎng)絡(luò)bbs論壇系統(tǒng)
- 畢業(yè)論文——bbs論壇系統(tǒng)
- bbs網(wǎng)站論壇設(shè)計及實現(xiàn)畢業(yè)設(shè)計論文
- 畢業(yè)論文bbs論壇設(shè)計論文
- 畢業(yè)設(shè)計(論文)-基于java技術(shù)的論壇(bbs)
- bbs論壇系統(tǒng)_畢業(yè)論文_完整
- 畢業(yè)設(shè)計---bbs論壇系統(tǒng)的設(shè)計與開發(fā)
- 網(wǎng)絡(luò)bbs論壇系統(tǒng)畢業(yè)論文
- 畢業(yè)設(shè)計bbs論壇設(shè)計開題報告
- bbs論壇畢業(yè)論文
評論
0/150
提交評論