【正文】
※※※※※※※※※※※※※※※※※※※※※※※※2009屆學(xué)生畢業(yè)設(shè)計(jì)(論文)材料(四) 學(xué) 生 畢 業(yè) 論 文(設(shè) 計(jì))課題名稱基于struts框架的BBS系統(tǒng)姓 名學(xué) 號(hào)院、系、部計(jì)算機(jī)科學(xué)系專 業(yè)計(jì)算機(jī)科學(xué)與技術(shù)指導(dǎo)教師 2009 年 5 月 26 日湖南城市學(xué)院本科畢業(yè)設(shè)計(jì)(論文)誠(chéng)信聲明本人鄭重聲明:所呈交的本科畢業(yè)設(shè)計(jì)(論文),是本人在指導(dǎo)老師的指導(dǎo)下,獨(dú)立進(jìn)行研究工作所取得的成果,成果不存在知識(shí)產(chǎn)權(quán)爭(zhēng)議,除文中已經(jīng)注明引用的內(nèi)容外,本設(shè)計(jì)(論文)不含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫過(guò)的作品成果。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體均已在文中以明確方式標(biāo)明。本人完全意識(shí)到本聲明的法律結(jié)果由本人承擔(dān)。 本科畢業(yè)設(shè)計(jì)(論文)作者簽名: 二○○九 年 五月 二十六日目 錄摘要 1關(guān)鍵字 1Abstract 2Key words 21. 緒論 3 BBS的發(fā)展背景 3 BBS對(duì)大學(xué)生學(xué)習(xí)生活的影響 3 BBS提供了豐富的網(wǎng)絡(luò)學(xué)習(xí)資源 3 BBS促進(jìn)了協(xié)作學(xué)習(xí) 4 BBS提高了學(xué)生自主學(xué)習(xí)能力 42. 開發(fā)技術(shù)及開發(fā)工具概述 4 JAVA語(yǔ)言概述 4 MVC設(shè)計(jì)模式簡(jiǎn)介 6 STRUTS框架簡(jiǎn)介 7 HIBERNATE簡(jiǎn)介 8 ORACLE數(shù)據(jù)庫(kù)簡(jiǎn)介 9 ECLIPSE概述 9 系統(tǒng)開發(fā)環(huán)境概述 10 硬件環(huán)境 10 軟件環(huán)境 103. 系統(tǒng)分析 11 需求分析 11 業(yè)務(wù)需求分析 11 功能需求用例圖 11 可行性分析 13 技術(shù)可行性分析 13 經(jīng)濟(jì)可行性分析 134. 系統(tǒng)設(shè)計(jì) 14 系統(tǒng)流程 14 系統(tǒng)功能設(shè)計(jì) 15 基本功能設(shè)計(jì) 15 擴(kuò)展功能設(shè)計(jì) 16 BBS模塊體系分析 16 數(shù)據(jù)庫(kù)設(shè)計(jì) 175. 系統(tǒng)的具體實(shí)現(xiàn)和測(cè)試 19 用戶驗(yàn)證性實(shí)現(xiàn)和測(cè)試 20 論壇功能實(shí)現(xiàn)和測(cè)試 26 用戶信息功能實(shí)現(xiàn)和測(cè)試 33 給管理員留言的實(shí)現(xiàn)和測(cè)試 39 管理員后臺(tái)管理的實(shí)現(xiàn)與測(cè)試 416. 結(jié)論 49參考文獻(xiàn) 50致 謝 5151基于struts框架的BBS系統(tǒng)摘 要:BBS已經(jīng)成為人們獲取信息、發(fā)表言論的重要場(chǎng)所。它由論壇注冊(cè)用戶所發(fā)表的大量主題組成。近些年來(lái),隨著校園網(wǎng)建設(shè)的發(fā)展,大學(xué)校園網(wǎng)BBS也越來(lái)越火。其中運(yùn)用了STRUTS 2技術(shù)、Oracle數(shù)據(jù)庫(kù)等等, 對(duì)上述技術(shù)的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的討論,介紹了在WEB 服務(wù)器上,利用JSP技術(shù)和MVC模式等,實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的BBS系統(tǒng)的設(shè)計(jì)與開發(fā),并詳細(xì)討論了該系統(tǒng)的實(shí)現(xiàn)過(guò)程及其結(jié)構(gòu)。關(guān)鍵字:論壇;基本功能;擴(kuò)展功能;數(shù)據(jù)庫(kù);STRUTS 2Struts framework based on the BBS systemAbstract: Forum and chat room has bee for people to obtain information and the important place of published a large number of registered users by the Forum of recent years, as the development of the campus network, Internet forums and chat rooms, university campuses have more building a good forum and a chat room are being increasingly necessary. This paper discusses the development of a simple system to use chat rooms, forums and the key technologies and the use of STRUTS 2, ORACLE database and so realization of the above methods are discussed in detail, introduced a Web and MVC, such as technology, a simple forums and chat rooms, the system design and development,and discussed in detail the structure of the system and its processes. Key Words: Forum;basic functions;expanded functions;Database;STRUTS 21 緒論 BBS的發(fā)展背景BBS是在1992年底隨著國(guó)際互聯(lián)網(wǎng)的開始流行而迅速發(fā)展起來(lái)的?;ヂ?lián)網(wǎng)的產(chǎn)生使得以前只能在本地訪問(wèn)的BBS可以被全世界隨意訪問(wèn),這對(duì)大多數(shù)人來(lái)說(shuō)是極具誘惑力的。BBS 是一個(gè)有多人參加的討論系統(tǒng),在BBS上大家可以對(duì)一個(gè)共同感興趣的問(wèn)題進(jìn)行討論,自由地發(fā)表自己的意見與觀點(diǎn),并且能直接與其他的人進(jìn)行溝通。按照網(wǎng)站的性質(zhì)以及服務(wù)對(duì)象來(lái)分,迄今有以下幾種類型:校園BBS:校園BBS作為主要的集中地,在BBS領(lǐng)域具有舉足輕重的地位。由于校園BBS的繁榮,吸引了很多的社會(huì)人士參與。專業(yè)BBS:一般是由各個(gè)著名的大公司組建,人們可以利用其交流自己對(duì)商品的看法,更為重要的是可以解決商品使用中的問(wèn)題。商業(yè)BBS:它是由ISP建立的BBS站點(diǎn),這類BBS站點(diǎn)各種信息比較多,內(nèi)容相當(dāng)豐富。小型局域BBS:一般是由個(gè)人或小型集體建立,為小范圍信息交流服務(wù)。 業(yè)余BBS:一般由BBS愛好者個(gè)人利用一些免費(fèi)空間辦的BBS,目的是為廣大網(wǎng)友提供一個(gè)在某些專業(yè)上的交流場(chǎng)所。新聞媒體BBS:是由新聞媒體網(wǎng)站設(shè)立的,為廣大網(wǎng)友提供對(duì)新聞信息進(jìn)行評(píng)論、發(fā)表意見和觀點(diǎn)的場(chǎng)所。 ,這個(gè)具有強(qiáng)大實(shí)時(shí)交互功能,信息交流的平臺(tái),使人們不再像電視觀眾、電臺(tái)聽眾、報(bào)紙雜志讀者一樣只是被動(dòng)地觀看、收聽、閱讀,而是可以積極而及時(shí)地參與討論,在了解他人觀點(diǎn)意見的同時(shí)也可以發(fā)表自己的看法?!BS對(duì)大學(xué)生學(xué)習(xí)生活的影響 BBS提供了豐富的網(wǎng)絡(luò)學(xué)習(xí)資源論壇是一個(gè)經(jīng)過(guò)學(xué)習(xí)者整理加工過(guò)的網(wǎng)絡(luò)資源匯集中心,從新聞、學(xué)習(xí)到娛樂、體育,從文字到視頻、音頻,BBS匯集了各種形式、內(nèi)容的網(wǎng)絡(luò)資源。不少BBS都設(shè)有專門的NetResources(網(wǎng)絡(luò)資源)板塊;FTP技術(shù)和BT技術(shù)的發(fā)展更是為BBS站內(nèi)資源的更新、共享提供了方便。如今,大部分大學(xué)的BBS論壇都有相應(yīng)的FTP服務(wù)器,不少BBS還與網(wǎng)絡(luò)新興的BT技術(shù)、Blog(博客)技術(shù)等連接起來(lái)BBS水木清華站就有“水木Blog”的欄目)。 BBS促進(jìn)了協(xié)作學(xué)習(xí)基于網(wǎng)絡(luò)的論壇社區(qū)也是各種學(xué)習(xí)資源組合的場(chǎng)所,為學(xué)習(xí)者提供了學(xué)習(xí)環(huán)境。作為一個(gè)學(xué)生參與論壇的網(wǎng)絡(luò)活動(dòng)可包括許多種學(xué)習(xí)的意義,在特定板塊內(nèi),論壇參與者圍繞某個(gè)話題或者問(wèn)題,通過(guò)發(fā)表、回復(fù)話題、版面討論、站內(nèi)信件等方式進(jìn)行互動(dòng)討論、相互探討,形成了一種以學(xué)習(xí)者為中心的學(xué)習(xí)方式。從教育網(wǎng)內(nèi)人氣排名前十名的論壇的網(wǎng)友參與的情況來(lái)看,在各大學(xué)習(xí)板塊里,基本上每張?zhí)犹岢龅膯?wèn)題都可以得到網(wǎng)友友好的、認(rèn)真的回復(fù)解答,有著濃郁的協(xié)作探討的學(xué)習(xí)氣氛和良好的學(xué)習(xí)效果?!BS提高了學(xué)生自主學(xué)習(xí)能力網(wǎng)絡(luò)學(xué)習(xí)的本質(zhì)是一種自主學(xué)習(xí),論壇提供了豐富的網(wǎng)絡(luò)學(xué)習(xí)資源,使學(xué)習(xí)者能自主選擇和控制學(xué)習(xí)地點(diǎn)、學(xué)習(xí)時(shí)間、學(xué)習(xí)方法和學(xué)習(xí)內(nèi)容。在論壇里,學(xué)生可以自主地圍繞學(xué)習(xí)問(wèn)題,通過(guò)發(fā)帖、回復(fù)的形式提出討論,尋求解答幫助,提高了學(xué)習(xí)的積極性和自主學(xué)習(xí)的能力。2 開發(fā)技術(shù)及開發(fā)工具概述 JAVA語(yǔ)言概述Java語(yǔ)言是一種很優(yōu)秀的語(yǔ)言,具有面向?qū)ο蟆⑴c平臺(tái)無(wú)關(guān)、安全、穩(wěn)定和多線程等優(yōu)良特性,是目前軟件設(shè)計(jì)中極為健壯的編程語(yǔ)言。Java確確實(shí)實(shí)具備了“一旦寫成處處可用”的特點(diǎn)。之所以稱Java為革命性編程語(yǔ)言,是因?yàn)閭鹘y(tǒng)的軟件往往與具體的實(shí)現(xiàn)環(huán)境有關(guān),一旦環(huán)境有所變化就需要對(duì)軟件作一番改動(dòng),耗時(shí)費(fèi)力,而Java編寫的軟件能在執(zhí)行代碼上兼容。這樣,只要計(jì)算機(jī)提供了Java解釋器,Java編寫的軟件就能在其上運(yùn)行?,F(xiàn)將JAVA語(yǔ)言的特點(diǎn)介紹如下:簡(jiǎn)單:Java最初是為家用電器進(jìn)行集成控制而設(shè)計(jì)的一種語(yǔ)言,因此它必須簡(jiǎn)單明了。Java的風(fēng)格類似于C++,因而C++程序員是非常熟悉的。從某種意義上講,Java語(yǔ)言是C及C++語(yǔ)言的一個(gè)變種,因此,C++程序員可以很快就掌握J(rèn)ava編程技術(shù)。并且Java摒棄了C++中容易引發(fā)程序錯(cuò)誤的地方,如指針和內(nèi)存管理。面向?qū)ο螅好嫦驅(qū)ο罂梢哉f(shuō)是Java最重要的特性。Java語(yǔ)言的設(shè)計(jì)完全是面向?qū)ο蟮?,它不支持類似于C語(yǔ)言那樣面向過(guò)程的程序設(shè)計(jì)技術(shù)。Java支持靜態(tài)和動(dòng)態(tài)風(fēng)格的代碼繼承及重用?;趯?duì)象的編程更符合人的思維模式,使人們更容易理解,更容易編寫程序。分布式:Java包括一個(gè)支持HTTP和FTP等基于TCP/IP協(xié)議的子庫(kù)。因此,Java應(yīng)用程序可憑借URL打開并訪問(wèn)網(wǎng)絡(luò)上的對(duì)象,其訪問(wèn)方式與訪問(wèn)本地文件系統(tǒng)幾乎完全相同。為分布環(huán)境尤其是Internet提供動(dòng)態(tài)內(nèi)容無(wú)疑是一項(xiàng)非常宏偉的任務(wù),但Java的語(yǔ)法特性卻使我們很容易地實(shí)現(xiàn)這項(xiàng)目標(biāo)。 健壯:Java致力于檢查程序在編譯和運(yùn)行時(shí)的錯(cuò)誤。類型檢查幫助檢查出許多開發(fā)早期出現(xiàn)的錯(cuò)誤。Java自已操縱內(nèi)存減少了內(nèi)存出錯(cuò)的可能性。除此之外,Java還提供了Null指針檢測(cè)數(shù)組邊界檢測(cè)異常出口字節(jié)代碼校驗(yàn)。這些功能特征大大縮短了開發(fā)Java應(yīng)用程序的周期更提高了系統(tǒng)的健壯性。 安全:Java的安全性可從兩個(gè)方面得到保證。一方面,在Java語(yǔ)言里,象指針和釋放內(nèi)存等C++功能被刪除,避免了非法內(nèi)存操作。另一方面,當(dāng)Java用來(lái)創(chuàng)建瀏覽器時(shí),語(yǔ)言功能和瀏覽器本身提供的功能結(jié)合起來(lái),使它更安全。Java語(yǔ)言在機(jī)器上執(zhí)行前,要經(jīng)過(guò)很多次的測(cè)試。從而提高系統(tǒng)的安全性。可移植性:與平臺(tái)無(wú)關(guān)是Java語(yǔ)言最大的優(yōu)勢(shì)。其他語(yǔ)言編寫的程序面臨的一個(gè)主要問(wèn)題就是操作系統(tǒng)的變化、處理器升級(jí)以及核心系統(tǒng)資源的變化,這些因素都可能導(dǎo)致程序出現(xiàn)錯(cuò)誤或無(wú)法運(yùn)行。Java虛擬機(jī)成功的解決了這個(gè)問(wèn)題,Java編寫的程序可以在任何安裝了Java虛擬機(jī)(JVM)的計(jì)算機(jī)上正確運(yùn)行,它真正的實(shí)現(xiàn)了編程語(yǔ)言一次編譯,處處運(yùn)行。解釋執(zhí)行:Java解釋器直接對(duì) Java字節(jié)碼進(jìn)行解釋執(zhí)行。字節(jié)碼本身攜帶了許多編譯時(shí)信息 ,使得連接過(guò)程更加簡(jiǎn)單。高性能:和其它解釋執(zhí)行的語(yǔ)言不同,Java字節(jié)碼的設(shè)計(jì)使之能很容易地直接轉(zhuǎn)換成對(duì)應(yīng)于特定CPU的機(jī)器碼 ,從而得到較高的性能。多線程:Java的特點(diǎn)之一就是內(nèi)置對(duì)多線程的支持。多線程允許同時(shí)完成多個(gè)任務(wù)。多線程機(jī)制使應(yīng)用程序能夠并行執(zhí)行,而且同步機(jī)制保證了對(duì)共享數(shù)據(jù)的正確操作。通過(guò)使用多線程,程序設(shè)計(jì)者可以分別用不同的線程完成特定的行為,而不需要采用全局的事件循環(huán)機(jī)制,這樣就很容易地實(shí)現(xiàn)網(wǎng)絡(luò)上的實(shí)時(shí)交互行為。動(dòng)態(tài)性:Java的設(shè)計(jì)使它適合于一個(gè)不斷發(fā)展的環(huán)境。在類庫(kù)中可以自由地加入新的方法和實(shí)例變量而不會(huì)影響用戶程序的執(zhí)行。并且 Java通過(guò)接口來(lái)支持多重繼承,使之比嚴(yán)格的類繼承具有更靈活的方式和擴(kuò)展性。Java程序的基本組成單元就是類。有些類是自己編定的,有些類是從類庫(kù)中引入的,而類又是運(yùn)行時(shí)動(dòng)態(tài)裝載的,這就使得Java可以在分布環(huán)境中動(dòng)態(tài)的維護(hù)程序及類庫(kù)。 MVC設(shè)計(jì)模式簡(jiǎn)介MVC設(shè)計(jì)模式是一種著名的用戶界面軟件開發(fā)設(shè)計(jì)模式,它是模型視圖控制器(ModelViewController)縮寫。MVC設(shè)計(jì)模式最早由Xerox在20世紀(jì)八十年代為Smaltalk80語(yǔ)言發(fā)展提出的,但是這種設(shè)計(jì)思想并沒有局限于該語(yǔ)言,而是被廣泛地應(yīng)用到了其他面向?qū)ο蟮木幊陶Z(yǔ)言中。在MVC設(shè)計(jì)模式中,它把應(yīng)用程序分成了三個(gè)部分;(1) 模型(Model)模型封裝了用戶數(shù)據(jù)和處理數(shù)據(jù)的業(yè)務(wù)邏輯,體現(xiàn)了應(yīng)用程序的當(dāng)前狀態(tài),而且可以將用戶數(shù)據(jù)狀態(tài)的變化提供給多個(gè)顯示該數(shù)據(jù)的視圖共用。模型是應(yīng)用程序的核心。 (2) 視圖(View)視圖提供了用戶界面,是用戶和應(yīng)用程序的交互的窗口,既接受用戶輸入,也把模型數(shù)據(jù)狀態(tài)顯示給用戶,但是視圖不負(fù)責(zé)任何業(yè)務(wù)邏輯處理,僅僅是將用戶輸入數(shù)據(jù)傳遞給控制器或?qū)⒛P蛿?shù)據(jù)顯示給用戶。(3) 控制器(Controller)控制器連接了模型和視圖,根據(jù)用戶請(qǐng)求判斷將請(qǐng)求交給哪個(gè)模型來(lái)完成,然后調(diào)用視圖來(lái)顯示模型處理后的用戶請(qǐng)求結(jié)果。MVC設(shè)計(jì)模式將應(yīng)用程序進(jìn)行了分層,視圖和模型通過(guò)控制器連接,從而減少了用戶界面和業(yè)務(wù)邏輯之間的耦合,使程序設(shè)計(jì)更加清晰、靈活,也提高了軟件的可擴(kuò)展性、可維護(hù)性?!TRUTS框架簡(jiǎn)介Struts框架是Apache開源軟件聯(lián)盟()的一個(gè)開源項(xiàng)目——Jakarta Struts Framework。Struts框架繼承了MVC設(shè)計(jì)模式的特性,遵守了J2EE的Servlet、JSP等技術(shù)規(guī)范,并且根據(jù)J2EE的特點(diǎn)做了相應(yīng)的變化和擴(kuò)展,是J2EE體系架構(gòu)的一種輕量級(jí)實(shí)現(xiàn)。作為一款優(yōu)秀的Java Web應(yīng)用程序的開發(fā)框架,Struts框架憑借其清晰性、靈活性,成為當(dāng)前最為廣泛應(yīng)用的輕量級(jí)Java Web開發(fā)框架。Struts框架實(shí)現(xiàn)了MVC設(shè)計(jì)模式,本系統(tǒng)所使用的Struts為Struts 2框架。Struts 2是以WebWork優(yōu)秀的