




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
BBS論壇摘要網(wǎng)絡(luò)化的今天,BBS論壇系統(tǒng)的功能得到了很的大擴(kuò)充。BBS的用戶已經(jīng)擴(kuò)展到各行各業(yè),除原先的計算機(jī)愛好者們外,商用BBS操作者、環(huán)境組織、宗教組織及其它利益團(tuán)體也加入了這個行列。通過BBS系統(tǒng)來和別人討論計算機(jī)軟件、硬件、Internet、多媒體、程序設(shè)計以及醫(yī)學(xué)等等各種有趣的話題。給計算機(jī)愛好者提供一個互相交流的地方。整個論壇采用Struts框架設(shè)計完成。結(jié)合JSP、Java、JavaScript、J2EE等基礎(chǔ)知識完成BBS論壇。本系統(tǒng)將用戶劃分為游客、用戶、管理員3類,他們的權(quán)限不同,能夠使用的功能也不同。對于系統(tǒng)來說,需要實(shí)現(xiàn)的功能總體來說分為以下兩大模塊。前臺模塊提供給所有用戶使用。不論是論壇的注冊用戶,還是普通的瀏覽者都可以進(jìn)入其中。區(qū)別在于隨著用戶的等級不同,所允許使用的功能也有所不同。后臺模塊提供給管理人員(包括管理員和版主)使用,以對用戶、論壇及文章進(jìn)行管理維護(hù)。普通用戶如果試圖使用這一模塊將被系統(tǒng)拒絕目錄TOC\o"1-3"\u前言 11緒論 2項(xiàng)目來源 2項(xiàng)目目標(biāo)與期望 2促進(jìn)廣大用戶交流 2體現(xiàn)集體觀點(diǎn) 2項(xiàng)目設(shè)計原則 2實(shí)用性原則 2經(jīng)濟(jì)性原則 21.3.3擴(kuò)充性原則 32可行性分析 4技術(shù)可行性 4動態(tài)網(wǎng)站技術(shù)介紹 42.1.2程序語言的選擇 42.1.3STRUTS框架應(yīng)用 52.2系統(tǒng)結(jié)構(gòu)可行性分析 52.2.1B/S模式簡介 52.2.2B/S模式的優(yōu)點(diǎn) 62.3開發(fā)環(huán)境介紹 72.3.1軟件環(huán)境 72.3.2硬件環(huán)境 73需求分析 8系統(tǒng)功能需求 83.2系統(tǒng)的運(yùn)行需求 8系統(tǒng)數(shù)據(jù)流圖 93.4用例圖 10 11 11 11數(shù)據(jù)庫的設(shè)計 114總體設(shè)計 124.1系統(tǒng)功能模塊圖 14系統(tǒng)功能的設(shè)計 155詳細(xì)設(shè)計 14管理員登陸 17數(shù)據(jù)流程圖 17詳細(xì)功能介紹 175.2用戶管理模塊 195.2.1數(shù)據(jù)流程圖 195.2.2詳細(xì)功能介紹 195.3技術(shù)難點(diǎn) 245數(shù)據(jù)庫的連接 255.3.2中文亂碼 266系統(tǒng)測試 286.1BBS系統(tǒng)的測試 276.2測試舉例 277總結(jié) 28參考文獻(xiàn)、資料索引 29致謝 30前言BBS是BulletinBoardSystem(電子公告欄)的縮寫,網(wǎng)絡(luò)上通常稱之為論壇。它通過以文字為主的界面,為廣大網(wǎng)友提供一個彼此交流的空間。BBS與Email都是早期Internet最普遍的應(yīng)用之一,至今仍然廣泛使用。目前,通過BBS系統(tǒng)可隨時取得國際最新的軟件及信息,也可以通過BBS系統(tǒng)來和別人討論計算機(jī)軟件、硬件、Internet、多媒體、程序設(shè)計以及醫(yī)學(xué)等等各種有趣的話題,更可以利用BBS系統(tǒng)來刊登一些“征友”、“廉價轉(zhuǎn)讓”及“公司產(chǎn)品”等啟事。網(wǎng)絡(luò)化的今天,BBS論壇系統(tǒng)的功能得到了很的大擴(kuò)充。BBS的用戶已經(jīng)擴(kuò)展到各行各業(yè),除原先的計算機(jī)愛好者們外,商用BBS操作者、環(huán)境組織、宗教組織及其它利益團(tuán)體也加入了這個行列。通過BBS系統(tǒng)來和別人討論計算機(jī)軟件、硬件、Internet、多媒體、程序設(shè)計以及醫(yī)學(xué)等等各種有趣的話題。給計算機(jī)愛好者提供一個互相交流的地方。本系統(tǒng)主要完成Web服務(wù)器端的用戶管理、帖子管理、數(shù)據(jù)庫管理、瀏覽和查找功能等設(shè)計、實(shí)現(xiàn)與完善以及整個實(shí)驗(yàn)網(wǎng)站的組織建立和測試工作。本文中數(shù)據(jù)庫服務(wù)器端采用了MYSQL數(shù)據(jù)庫并以先進(jìn)的JDBC技術(shù)進(jìn)行數(shù)據(jù)庫存取等操作,使Web與數(shù)據(jù)庫緊密聯(lián)系起來。為了讓網(wǎng)友可以自由發(fā)表觀點(diǎn)和提出問題以及幫助他人解決問題,或者交流經(jīng)驗(yàn)。特開發(fā)了BBS論壇系統(tǒng)。1緒論網(wǎng)絡(luò)化的今天,BBS論壇系統(tǒng)的功能得到了很的大擴(kuò)充。BBS的用戶已經(jīng)擴(kuò)展到各行各業(yè),除原先的計算機(jī)愛好者們外,商用BBS操作者、環(huán)境組織、宗教組織及其它利益團(tuán)體也加入了這個行列。通過BBS系統(tǒng)來和別人討論計算機(jī)軟件、硬件u/view/25278.htm"、Internet、多媒體、程序設(shè)計以及醫(yī)學(xué)等等各種有趣的話題。給計算機(jī)愛好者提供一個互相交流的地方。結(jié)合JSP、Struts、Java、JavaScript、J2EE等基礎(chǔ)知識完成BBS論壇。促進(jìn)廣大用戶交流在計算機(jī)網(wǎng)絡(luò)飛速發(fā)展的今天,BBS已經(jīng)成為人們網(wǎng)上交流的重要平臺,在BBS里,人們之間的交流打破了空間、時間的限制。BBS大大加深了廣大用戶之間的交流。因此對BBS論壇的研究是十分必要的。體現(xiàn)集體觀點(diǎn)用戶可以閱讀他人關(guān)于某個主題的看法,也可以將自己的想法毫無保留地貼到公告欄中。這樣,通過BBS論壇,廣大用戶的思想觀點(diǎn)即會體現(xiàn)出來。可充分反應(yīng)最廣大人民群眾的集體意見??偨Y(jié)上述幾點(diǎn),網(wǎng)站建設(shè)目標(biāo)可總結(jié)如下:1、促進(jìn)加深用戶之間的交流,為用戶打造一個暢想欲言的天地。2、使用戶可以充分交流經(jīng)驗(yàn)、知識、看法。實(shí)用性原則充分考慮到在BBS論壇中可能遇到的種種問題,盡量全面的做好需求分析,以減少日后更新軟件的次數(shù)。經(jīng)濟(jì)性原則提供廣泛的涵蓋用戶多種需求的功能,數(shù)據(jù)處理方式靈活以滿足需求,節(jié)省網(wǎng)站建設(shè)成本,并確保其較好的拓展性和開放性;同時網(wǎng)站具有基于WEB界面的管理后臺,能夠自主的對網(wǎng)站中大部分內(nèi)容作更新、修改操作,節(jié)省了企業(yè)網(wǎng)站的運(yùn)營成本,提高了信息更新、傳播效率。擴(kuò)充性原則網(wǎng)站的整體規(guī)劃及框架設(shè)計是具可擴(kuò)充性的,前臺頁面的設(shè)計能保證網(wǎng)站在增加欄目后不會破壞網(wǎng)站的整體結(jié)構(gòu)。后臺數(shù)據(jù)庫的設(shè)計具有高度的擴(kuò)充性,能夠根據(jù)需要對欄目、類別的增、刪、修改。2可行性分析動態(tài)網(wǎng)站技術(shù)介紹Internet起源于20世紀(jì)60年代的美國,它在近幾年迅速風(fēng)靡全球,其根本原因不僅在于她擁有卓越的國際通信功能,更在于它擁有巨大的信息資源。所謂的Internet是指由分布在全世界成千上萬的計算機(jī)網(wǎng)絡(luò)遵循一定的通訊協(xié)議,并相互聯(lián)系在一起而形成的國際互連網(wǎng)絡(luò),也就是說,Internet是建立和使用這些網(wǎng)絡(luò)的人群、群體、公司以及各種網(wǎng)絡(luò)資源的集合體。隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,單純的靜態(tài)頁面已經(jīng)不能滿足發(fā)展的需要,因?yàn)殪o態(tài)頁面是用單純的HTML語言組成的,它沒有交互性。因此,為了滿足實(shí)際的需要,許多網(wǎng)頁文件擴(kuò)展名不再只是“htm”,“html”,出現(xiàn)了以“php”,“asp”,“jsp”,“shtml”等為后綴的網(wǎng)頁文件,這些都是采用動態(tài)網(wǎng)頁技術(shù)制作出來的。程序語言的選擇JSP(JavaServerPages)是由Sun公司倡導(dǎo),許多別的公司參與一起創(chuàng)建的一種新動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn),類似其他技術(shù)標(biāo)準(zhǔn)。在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中加入Java程序片斷(Scriptlet)和JSP標(biāo)簽,構(gòu)成了JSP網(wǎng)頁(*.jsp)Servlet/JSPContainer收到客戶端發(fā)出的請求時,首先執(zhí)行其中的程序片斷,軟后將執(zhí)行結(jié)果以HTML格式響應(yīng)給客戶端,其中程序片斷可以是:操作數(shù)據(jù)庫,重新定向網(wǎng)頁以及發(fā)送E-Mail等等,這些都是建立動態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端運(yùn)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,與客戶端的瀏覽器無關(guān),因此,JSP稱為Server-sideLanguage。所以被許多人認(rèn)為是未來最有發(fā)展前途的動態(tài)網(wǎng)站技術(shù)之一。語言優(yōu)勢如下:1、將內(nèi)容的生成和顯示進(jìn)行分離使用JSP技術(shù),Web頁面開發(fā)人員可以使用HTML或者XML標(biāo)識來設(shè)計和格式化最終頁面。使用JSP標(biāo)識或者小腳本來生成頁面上的動態(tài)內(nèi)容。生成的內(nèi)容的邏輯被封裝在標(biāo)識和JavaBeans組件中,那么其他人,如Web管理人員和頁面設(shè)計者,能夠編輯和使用JSP頁面而不影響內(nèi)容的生成。2、一次編寫,到處運(yùn)行作為Java平臺的一部分,JSP擁有Java編程語言“一次編寫,到處運(yùn)行”的特點(diǎn),隨著越來越多的供應(yīng)商將JSP支持添加到他們的產(chǎn)品中,您可以使用自己所選擇的服務(wù)器和工具,但并不影響當(dāng)前的應(yīng)用。3、JSP的平臺適應(yīng)性更廣這是JSP比ASP的優(yōu)越之處,幾乎所有的平臺都支持Java,它們可以在任何平臺下通行無阻。雖然NT的OS占據(jù)了很大的市場的份額,但在服務(wù)器方面UNIX的優(yōu)勢仍然很大.從一個平臺移植到另一個平臺,JSP和JavaBeans甚至不用重新編譯,因?yàn)镴ava字節(jié)碼都是標(biāo)注的字節(jié)碼與平臺無關(guān)。4、健壯的存儲管理和安全性由于JSP頁面的內(nèi)置腳本語言是基于Java編程語言的,而且所有的JSP頁面都被編譯為JavaServlet,JSP頁面就具有Java技術(shù)的所有優(yōu)點(diǎn),包括健壯的存儲管理和安全性。5、數(shù)據(jù)庫連接技術(shù)數(shù)據(jù)庫連接是一種關(guān)鍵的有限的昂貴的資源,這一點(diǎn)在多用戶的網(wǎng)頁應(yīng)用程序中體現(xiàn)得尤為突出。對數(shù)據(jù)庫連接的管理能顯著影響到整個應(yīng)用程序的伸縮性和健壯性,影響到程序的性能指標(biāo)。本系統(tǒng)采用SRTUTS連接池連接MYSQL數(shù)據(jù)庫。在struts-config.xml配置文件中,定義data-source元素設(shè)置了具體的數(shù)據(jù)源,可以使用這個數(shù)據(jù)源來連接數(shù)據(jù)庫。使用數(shù)據(jù)源來連接數(shù)據(jù)庫有很多優(yōu)點(diǎn),比如事務(wù)處理,連接效率,管理方便,J2EE核心技術(shù)JNDI實(shí)現(xiàn)等STRUTS框架應(yīng)用Struts是Apache軟件組織提供的一項(xiàng)開放源碼項(xiàng)目,它為JavaWeb應(yīng)用提供了模型-視圖-控制器(Model-View-Controller,簡稱MVC)框架,尤其適用于開發(fā)大型可擴(kuò)展的Web應(yīng)用。MVC模式,即把一個應(yīng)用的輸入、處理、輸出流程按照Model、View、Controller的方式進(jìn)行分離,這樣一個應(yīng)用被分成三個層——模型層、視圖層、控制層。Struts為Web應(yīng)用提供了一個通用的框架,使得開發(fā)人員可以把精力集中在如何解決實(shí)際業(yè)務(wù)問題上。此外,Struts框架提供了許多供擴(kuò)展和定制的地方,應(yīng)用程序可以方便的擴(kuò)展框架,來更好的適應(yīng)用戶的實(shí)際需求。本系統(tǒng)采用B/S模式進(jìn)行開發(fā)B/S模式簡介B/S(Browser/Server)結(jié)構(gòu)即瀏覽器和服務(wù)器結(jié)構(gòu)。它是隨著Internet技術(shù)的興起,對C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面是通過WWW瀏覽器來實(shí)現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端(Server)實(shí)現(xiàn),形成所謂三層3-tier結(jié)構(gòu)。這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級的成本和工作量,降低了用戶的總體成本(TCO)。以目前的技術(shù)看,局域網(wǎng)建立B/S結(jié)構(gòu)的網(wǎng)絡(luò)應(yīng)用,并通過Internet/Intranet模式下數(shù)據(jù)庫應(yīng)用,相對易于把握、成本也是較低的。它是一次性到位的開發(fā),能實(shí)現(xiàn)不同的人員,從不同的地點(diǎn),以不同的接入方式(比如LAN,WAN,Internet/Intranet等)訪問和操作共同的數(shù)據(jù)庫;它能有效地保護(hù)數(shù)據(jù)平臺和管理訪問權(quán)限,服務(wù)器數(shù)據(jù)庫也很安全。特別是在Java這樣的跨平臺語言出現(xiàn)之后,B/S架構(gòu)管理軟件更是方便、快捷、高效。B/S模式的優(yōu)點(diǎn)1、維護(hù)和升級方式簡單目前,軟件系統(tǒng)的改進(jìn)和升級越來越頻繁,B/S架構(gòu)的產(chǎn)品明顯體現(xiàn)著更為方便的特性。對一個稍微大一點(diǎn)單位來說,系統(tǒng)管理人員如果需要在幾百甚至上千部電腦之間來回奔跑,效率和工作量是可想而知的,但B/S架構(gòu)的軟件只需要管理服務(wù)器就行了,所有的客戶端只是瀏覽器,根本不需要做任何的維護(hù)。無論用戶的規(guī)模有多大,有多少分支機(jī)構(gòu)都不會增加任何維護(hù)升級的工作量,所有的操作只需要針對服務(wù)器進(jìn)行;如果是異地,只需要把服務(wù)器連接專網(wǎng)即可,實(shí)現(xiàn)遠(yuǎn)程維護(hù)、升級和共享。所以客戶機(jī)越來越“瘦”,而服務(wù)器越來越“胖”是將來信息化發(fā)展的主流方向。今后,軟件升級和維護(hù)會越來越容易,而使用起來會越來越簡單,這對用戶人力、物力、時間、費(fèi)用的節(jié)省是顯而易見的,驚人的。因此,維護(hù)和升級革命的方式是“瘦”客戶機(jī),“胖”服務(wù)器。2、成本降低,選擇更多大家都知道windows在桌面電腦上幾乎一統(tǒng)天下,瀏覽器成為了標(biāo)準(zhǔn)配置,但在服務(wù)器操作系統(tǒng)上windows并不是處于絕對的統(tǒng)治地位。現(xiàn)在的趨勢是凡使用B/S架構(gòu)的應(yīng)用管理軟件,只需安裝在Linux服務(wù)器上即可,而且安全性高。所以服務(wù)器操作系統(tǒng)的選擇是很多的,不管選用那種操作系統(tǒng)都可以讓大部分人使用windows作為桌面操作系統(tǒng)電腦不受影響,這就使的最流行免費(fèi)的Linux操作系統(tǒng)快速發(fā)展起來,Linux除了操作系統(tǒng)是免費(fèi)的以外,連數(shù)據(jù)庫也是免費(fèi)的,這種選擇非常盛行。比如說很多人每天上“網(wǎng)易”網(wǎng),只要安裝了瀏覽器就可以了,并不需要了解“網(wǎng)易”的服務(wù)器用的是什么操作系統(tǒng),而事實(shí)上大部分網(wǎng)站確實(shí)沒有使用windows操作系統(tǒng),但用戶的電腦本身安裝的大部分是windows操作系統(tǒng)。軟件環(huán)境操作系統(tǒng):Windowxp數(shù)據(jù)庫:MySqlWeb服務(wù)器:TOMCAT開發(fā)環(huán)境:Eclipse3.2+Myeclipse5.0+Fireworks8+Dreamweaver8硬件環(huán)境AMDAthlon643000+,KingMaxPC3200512MB×2,GainwardNV35XTSeagateSATA8M120GB×23需求分析BBS論壇分為前臺和后臺兩個模塊。前臺模塊的使用對象包括了所有用戶(管理員、用戶、游客),提供的功能包括注冊賬號、瀏覽主題、發(fā)表主題、回復(fù)主題等。后臺模塊的使用對象為管理人員(管理員、版主),提供的功能包括管理用戶、管理論壇、管理主題。BBS論壇系統(tǒng)功能預(yù)覽如下:前臺:用戶登錄用戶注冊發(fā)表主題回復(fù)主題用戶注銷登錄后臺:管理員登錄用戶管理論壇管理主題管理管理員注銷登錄目標(biāo)系統(tǒng)應(yīng)該達(dá)到以下要求:1、時間經(jīng)濟(jì)性。優(yōu)化邏輯設(shè)計與物理設(shè)計,使系統(tǒng)運(yùn)行效率高,反映速度快。2、可靠性。能連續(xù)準(zhǔn)確的處理業(yè)務(wù),有較強(qiáng)的容錯能力。3、可理解性。用戶容易理解和使用該系統(tǒng)。4、可維護(hù)性和適應(yīng)性。系統(tǒng)應(yīng)易于修改、易于擴(kuò)充、易于維護(hù),能夠適應(yīng)業(yè)務(wù)不斷發(fā)展變化的需要。5、可用性。目標(biāo)系統(tǒng)功能齊全,能夠完全滿足業(yè)務(wù)需求。6、安全保密性。保證系統(tǒng)的物理安全、數(shù)據(jù)存儲和存取的安全與保密、數(shù)據(jù)傳輸?shù)陌踩c保密,做好使用人員的授權(quán)管理。3.2系統(tǒng)的運(yùn)行需求1、操作系統(tǒng)操作系統(tǒng)對使用jsp開發(fā)人力資源管理系統(tǒng)的影響不是很大,Windows2000、WindowsXP都可以,但好的操作系統(tǒng)可以使服務(wù)器運(yùn)行的更流暢,減少系統(tǒng)崩潰的可能性。因此,我們選用了穩(wěn)定性較好的WindowsXP。2、數(shù)據(jù)庫MySQL是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。其體積小、速度快、總體擁有成本低,開放源碼。所以我們選用了MySQL。3、數(shù)據(jù)庫通信接口數(shù)據(jù)庫通信接口采用JDBC(JavaDatabaseConnectivity,Java數(shù)據(jù)庫連接)。它是一個面向?qū)ο蟮膽?yīng)用程序接口(API),通過它可訪問各類關(guān)系數(shù)據(jù)庫。對于程序員來說,只要構(gòu)建了一個指向數(shù)據(jù)庫的連接,就可以采用統(tǒng)一的應(yīng)用程序編程接口實(shí)現(xiàn)對數(shù)據(jù)庫的讀寫。目前JDBC驅(qū)動已經(jīng)提供了對大多數(shù)常見類型數(shù)據(jù)庫的支持,包括MySQL、dBase、Access、SQLServer和Oracle等,也包括了對其他類型的數(shù)據(jù)庫的支持,如文本、Excel電子表格等4、安全機(jī)制問題的解決在進(jìn)入系統(tǒng)之前,要進(jìn)行身份確認(rèn),只有用戶名和用戶密碼都相符的用戶方可進(jìn)入本系統(tǒng)。為了防止不合法用戶對數(shù)據(jù)的察看和修改,本系統(tǒng)把用戶分為二個級別:管理員和普通用戶。管理員級用戶不僅可以對數(shù)據(jù)查詢,還可以對用戶的使用權(quán)限進(jìn)行控制,還可以對紀(jì)錄進(jìn)行增加、刪除、修改等操作。普通用戶對數(shù)據(jù)可以查詢。當(dāng)用戶要進(jìn)入系統(tǒng)是必須先輸入用戶名和密碼,按“確定”按鈕后,系統(tǒng)辨別用戶身份,對合法用戶根據(jù)用戶的權(quán)限級別賦予相應(yīng)的使用功能。管理員管理員登錄驗(yàn)證顯示管理選項(xiàng)頁面F2管理員信息管理論壇管理用戶管理主題退出圖3.1BBS論壇管理員數(shù)據(jù)流圖(第一層)用戶用戶登錄驗(yàn)證F1用戶信息游客注冊瀏覽主題瀏覽論壇瀏覽回復(fù)發(fā)表主題回復(fù)主題瀏覽論壇、主題、回復(fù) 圖3.2BBS論壇用戶數(shù)據(jù)GGuest注冊瀏覽論壇瀏覽回復(fù)瀏覽主題圖3.3BBS論壇游客用例圖注銷登錄注銷登錄發(fā)表主題回復(fù)主題瀏覽論壇瀏覽回復(fù)User瀏覽主題登錄圖3.4BBS論壇用戶用例圖AAdmin登錄管理論壇管理主題管理用戶編輯用戶搜索用戶刪除用戶新增論壇刪除論壇編輯論壇刪除主題搜索主題圖3.5BBS論壇管理員用例圖數(shù)據(jù)庫選擇MySQL是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),要使用MySQL做數(shù)據(jù)庫,就不得不提到SQL(StructuredQueryLanguage)語言,我們使用SQL操作MySQL的數(shù)據(jù)庫。這種語言有兩大特點(diǎn):所有數(shù)據(jù)庫中數(shù)據(jù)都存儲在表中;不允許按照某種特定的順序來取出記錄,因?yàn)檫@樣會降低MySQL取記錄的效率。創(chuàng)建數(shù)據(jù)庫打開MySQL數(shù)據(jù)庫的圖形化界面工具M(jìn)ySQL-Front,新建一個數(shù)據(jù)庫,名稱為“bbs”,字符集選擇“gbk”。新建表格時,類型選擇“MyISAM”。使用MySQL數(shù)據(jù)庫,每一個表格都會生成3個文件,后綴名分別為.frm、.MYD、.MYI。新建一個數(shù)據(jù)庫的方法有多種,我們使用MySQL-Front來操作。進(jìn)入MySQL-Front后右擊,選擇[新建數(shù)據(jù)庫]命令。在出現(xiàn)的對話框中填寫數(shù)據(jù)庫的名稱等信息,完成后點(diǎn)擊確定按鈕,即可完成數(shù)據(jù)庫的創(chuàng)建工作。數(shù)據(jù)庫的設(shè)計1、數(shù)據(jù)庫E-R圖設(shè)計如下:密碼密碼性別級別QQ電子郵箱個性簽名用戶名用戶回復(fù)主題論壇論壇名ID版主IDID提交時間提交時間論壇ID主題ID作者作者標(biāo)題標(biāo)題內(nèi)容內(nèi)容從屬發(fā)表從屬2、依據(jù)項(xiàng)目的處理需求,對應(yīng)數(shù)據(jù)表的設(shè)計及功能如下:用戶信息表(user):主要用于保存用戶、管理員、版主信息論壇信息表(forum):主要用于保存論壇信息主題信息表(topic):主要用于保存主題信息回復(fù)信息表(response):主要用于保存回復(fù)信息3、數(shù)據(jù)清單字段名字段類型字段長度是否允許為空是否為主鍵描述usernamevarchar20不允許是用戶名passwordvarchar20不允許否密碼sexvarchar2不允許否性別emailvarchar50不允許否電子郵箱icqvarchar20允許否QQsignaturevarchar300允許否個性簽名gradevarchar20允許否等級表3.7用戶信息表(user)字段名字段類型字段長度是否允許為空是否主鍵描述idint4不允許是IDforumnamevarchar20不允許否論壇名managervarchar20允許否版主表3.8論壇信息表(forum)字段名字段類型字段長度是否允許為空是否主鍵描述idint4不允許是IDtitlevarchar300不允許否標(biāo)題contenttext允許否內(nèi)容authorvarchar20不允許否作者submittimedate不允許否提交時間forumidint4不允許否論壇ID表3.9主題信息表(title)字段名字段類型字段長度是否允許為空是否主鍵描述idint4不允許是IDtitlevarchar300不允許否標(biāo)題contenttext允許否內(nèi)容authorvarchar20不允許否作者submittimedate不允許否提交時間topicidint4不允許否主題ID表3.10回復(fù)信息表(response)4概要設(shè)計總體設(shè)計是在系統(tǒng)分析的基礎(chǔ)上由抽象到具體的過程。主要目標(biāo)是將系統(tǒng)分析階段所提出的反映了信息需求的系統(tǒng)邏輯方案轉(zhuǎn)換成可以實(shí)施的基于計算機(jī)與通信系統(tǒng)的物理(技術(shù))方案,為下一階段系統(tǒng)實(shí)施提供必要的技術(shù)資料,應(yīng)符合系統(tǒng)性,靈活性,可靠性,經(jīng)濟(jì)性的要求。系統(tǒng)功能模塊圖主頁面主頁面登陸注冊游客發(fā)表主題回復(fù)主題瀏覽論壇瀏覽主題瀏覽論壇瀏覽主題瀏覽回復(fù)瀏覽回復(fù)圖4.1BBS論壇前臺功能模塊圖后臺管理后臺管理用戶管理論壇管理主題管理刪除用戶搜索用戶編輯用戶刪除論壇編輯論壇添加論壇刪除主題搜索主題圖4.2BBS論壇后臺功能模塊圖
1、前臺用戶登錄用戶待身份驗(yàn)證成功后,即可進(jìn)入BBS論壇。如果已注冊用戶填寫的用戶名及密碼與數(shù)據(jù)庫中的相應(yīng)信息不匹配,則不能通過身份驗(yàn)證,系統(tǒng)轉(zhuǎn)至消息頁面,提示消息為“登錄失敗,用戶名與密碼無效”。2、用戶注冊此部分是實(shí)現(xiàn)用戶的注冊功能。通過填寫注冊資料,正確填寫后,點(diǎn)擊注冊按鈕后便可成為注冊用戶。用戶名不允許重復(fù)。性別只能選擇男或女其中一個。兩次密碼必須輸入一致,否則不可以注冊。E-mail必須輸入有效的郵箱地址。用戶注冊成功后就可以使用前臺的一切功能。3、瀏覽所有論壇功能用戶登錄成功之后,即進(jìn)入論壇列表頁面。此頁面顯示BBS論壇中所有論壇信息。4、瀏覽論壇所有主題功能用戶在論壇主頁頁面中單擊某個論壇名鏈接將進(jìn)入該論壇的主題列表頁面,可以瀏覽該論壇所有主題。5、發(fā)表主題此部分實(shí)現(xiàn)用戶的發(fā)表主題功能。發(fā)表主題只針對已注冊用戶開放,如果想發(fā)表新的主題,必須登錄,如果沒有賬號必須注冊以后便可發(fā)表主題。進(jìn)到發(fā)表主題頁面后,首先要填寫自己想發(fā)表的主題,然后填寫正文。如果沒有登錄直接點(diǎn)擊發(fā)表主題,系統(tǒng)將轉(zhuǎn)至消息頁面,提示消息為“您現(xiàn)在是游客,必須登錄后才能發(fā)表主題”。6、瀏覽所有回復(fù)帖子功能用戶單擊某個主題名的鏈接時,顯示該主題的所有回復(fù)帖子。7、發(fā)表回復(fù)發(fā)表回復(fù)只針對已注冊用戶開放,游客不可以發(fā)表回復(fù)。如果沒有登錄直接點(diǎn)擊回復(fù)則轉(zhuǎn)到消息頁面,提示消息為“您現(xiàn)在是游客,必須登錄后才能發(fā)表回復(fù)”。8、用戶注銷登錄功能此部分功能主要實(shí)現(xiàn)銷毀用戶登錄信息。9、后臺管理員登錄功能管理人員待身份驗(yàn)證成功后,即可進(jìn)入BBS論壇后臺系統(tǒng)。如果管理人員填寫的用戶名和密碼與數(shù)據(jù)庫中的相應(yīng)信息不匹配,則不能通過身份驗(yàn)證,系統(tǒng)轉(zhuǎn)至消息頁面,提示消息為“很抱歉,您無權(quán)訪問此頁面!”。另外,管理員可以管理用戶、論壇、主題,而版主只能管理主題。用戶則不能進(jìn)行此操作。10、管理用戶功能管理員可以瀏覽所有用戶,模糊搜索用戶,并對用戶進(jìn)行編輯,也可刪除用戶。11、管理論壇功能管理員可以瀏覽所有論壇,編輯論壇,新增論壇,刪除論壇。12、管理主題功能管理員和版主可以瀏覽所有主題,搜索主題,刪除主題。13、數(shù)據(jù)備份對數(shù)據(jù)進(jìn)行備份和恢復(fù),防止意外情況造成數(shù)據(jù)的損失。
5詳細(xì)設(shè)計數(shù)據(jù)流程圖失敗失敗成功管理員登錄驗(yàn)證顯示管理選項(xiàng)頁面F2管理員信息管理論壇管理用戶管理主題退出錯誤提示頁面登陸頁面詳細(xì)功能介紹1.管理員必須經(jīng)過登錄,才能進(jìn)入管理頁面。在閱覽器中輸入://localhost:8080/admin/登錄失敗的頁面登錄功能實(shí)在struts配置文件中將視圖adminlogin.jsp,模型AdminLoginForm.java和控制器AdminLoginAction.java組織起來共同完成的。以下是配置文件中組織這幾個組建的代碼。<form-beans><form-beanname="adminLoginForm"type="j2eebbs.admin.form.AdminLoginForm"/></form-beans><action-mappings><actionpath="/adminlogin"type="j2eebbs.admin.action.AdminLoginAction"name="adminLoginForm"scope="request"input="/common/messagepage.jsp"/></action-mappings>。而模型組件Form將獲取的數(shù)據(jù)傳遞給這個控制器進(jìn)行處理。數(shù)據(jù)流程圖管理員管理員登錄驗(yàn)證顯示管理選項(xiàng)頁面F2管理員信息編輯用戶查找用戶刪除用戶輸入用戶名數(shù)據(jù)驗(yàn)證用戶不存在刪除成功無顯示結(jié)果的管理頁面查詢用戶的管理頁面數(shù)據(jù)驗(yàn)證用戶存在刪除失敗管理選項(xiàng)頁面修改失敗修改成功存入數(shù)據(jù)庫重新修改退出管理選項(xiàng)頁面論壇管理功能模塊數(shù)據(jù)流程圖詳細(xì)功能介紹下面用戶管理功能:在管理選項(xiàng)頁面中單擊“用戶管理”鏈接,將進(jìn)入論壇列表頁面,相關(guān)代碼如圖6.2下方所示。<body> <%@pageimport="j2eebbs.*"%> <%@pageimport="java.util.*"%> //從session中取出盛裝所有論壇信息的容器 <% VectorallForumsVector=(Vector)session .getAttribute(Constants.ALLFORUMS_KEY); Forumforum=null;%> //for循環(huán)在這里循環(huán)地生成各行,其總行數(shù)為Vector容器的大小,//即裝載進(jìn)來的論壇總數(shù)<%for(inti=0;i<userVector.size();i++)user=(User)userVector.get(i);%></body> 2.當(dāng)管理員單擊【注銷登錄】時,即發(fā)出請求,通過AdminLogoffAction類的實(shí)現(xiàn)轉(zhuǎn)入管理員登陸界面。AdminLogoffAction類的源代碼如下。//AdminLogoffAction類調(diào)用Session的invalidate方法是session無效//于是銷毀了用戶信息//之后此控制器將請求轉(zhuǎn)發(fā)到配置文件中ToAdminLoogin所指向的頁面publicclassAdminLogoffActionextendsAction{ publicActionForwardexecute(ActionMappingmap,ActionFormarg1, ServletRequestrequest,ServletResponsearg3) throwsException{//調(diào)用方法以清除session中的信息//然后將請求轉(zhuǎn)發(fā)到ToAdminLogin所代表的路徑 Sessionsession=request.getSession(); session.invalidate(); returnmap.findForward("ToAdminLogin"); }}3、當(dāng)管理員單擊某個論壇的“編輯”鏈接時,即發(fā)出usereditjsp.do請求。該請求訪問控制器組件后,將被轉(zhuǎn)到視圖組件中去。顯示出待編輯用戶的信息。具體實(shí)現(xiàn)的部分代碼如圖6.3下方所示:圖5.6用戶編輯界面//從session中得到編輯用戶的信息//這些信息是在訪問UserEditAction時存入session中的<% VectorallForumsVector=(Vector)session .getAttribute(Constants.ALLFORUMS_KEY);Forumforum=null;%>//使用select標(biāo)簽<selectsize=1name="grade">//給等級設(shè)定管理員,斑竹和普通用戶三個選項(xiàng)//下拉框由三個選項(xiàng)<optionvalue="0">管理員 </option> <optionvalue="1">斑竹 </option> <optionvalue="2"> 普通用戶 </option></select>//使用select標(biāo)簽<selectsize=1name="forum">//所在論壇下拉框選項(xiàng)是動態(tài)的,因?yàn)殡S時會有新的論壇發(fā)表//在下拉框中便有多個選項(xiàng)//使用for循環(huán)取出數(shù)據(jù)庫中的所有論壇<% for(inti=0;i<allForumsVector.size();i++){ forum=(Forum)allForumsVector.get(i);%> <optionvalue="<%=forum.getId()%>"> <%=forum.getForumname()%> </option><% } %></select>“刪除”鏈接,則發(fā)出請求,系統(tǒng)隨后會刪除對應(yīng)的用戶。關(guān)鍵代碼如圖5.7下所視://當(dāng)單擊“刪除”鏈接時,彈出對話框,提示是否確定刪除。<ahref="userdelete.do?username=<%=user.getUsername()%>"onclick="if(confirm('確認(rèn)刪除?')){this.click();}else{returnfalse;}">刪除</a>5.用戶管理頁面下部的表單可用于模糊查詢用戶,在文本框中輸入用戶名用戶名的一部分,提交表單會發(fā)出請求,然后系統(tǒng)會將戶名包含了輸入內(nèi)容的用戶都列舉出來//請求將訪問控制器SearchUserAction類//該類的作用是獲取模型UserManagerForm類傳遞過來的數(shù)據(jù)//并進(jìn)行查詢數(shù)據(jù)庫操作,完成后將請求轉(zhuǎn)發(fā)到配置文件定義好的頁面去publicfinalclassSearchUserActionextendsAction{ publicActionForwardexecute(ActionMappingmapping,ActionFormform,ServletRequestrequest,ServletResponseresponse)throwsException{//獲取UserManagerForm對象的數(shù)據(jù) UserManagerFormsearchUserForm=(UserManagerForm)form; Stringusername=(String)searchUserForm.getUsername(); Sessionsession=request.getSession(); Vectorusers=newVector();//生成數(shù)據(jù)庫操作類DB的對象 ServletContextcontext=servlet.getServletContext(); DataSourcedataSource=(DataSource)context.getAttribute(Constants.DATASOURCE_KEY);DBdb=newDB(dataSource);//使用方法根據(jù)輸入內(nèi)容進(jìn)行模糊查詢//將查詢到的結(jié)果包含到users中//并將這個users保存到session中users=User.search(db,username); session.setAttribute(Constants.USER_LIST_KEY,users);//關(guān)閉數(shù)據(jù)庫連接,并根據(jù)findForward值將請求轉(zhuǎn)發(fā)到相應(yīng)路徑db.close();return(mapping.findForward("ToUserManager"));} 數(shù)據(jù)庫的連接在配置文件struts-config.xml中:<data-sources><data-sourcekey="bbsDB"type="org.apachemons.dbcp.BasicDataSource"> <set-propertyproperty="driverClassName"value="com.mysql.jdbc.Driver"/><set-propertyproperty="url"value="jdbc:mysql://localhost:33xx/bbs?useUnicode=true&characterEncoding=UTF-8"/> <set-propertyproperty="username"value="root"/> <set-propertyproperty="password"value="bai"/> </data-source></data-sources>引入javax.sql.DataSource;java.sql.Connection;java.sql.Statement;java.sql.ResultSet;java.sql.SQLException;包連接數(shù)據(jù)庫的代碼如下所示:publicclassDB{ Connectionconnect=null; ResultSetrs=null; publicDB(DataSourcedataSource){ try{ connect=dataSource.getConnection(); } catch(SQLExceptione){ e.printStackTrace(); } }}中文亂碼由于瀏覽器中的參數(shù)傳遞是按字節(jié)傳送,因此英文和數(shù)字不會有任何的問題,而中文漢字則由兩個字節(jié)組成。為了解決這個問題,使用了下面的方法:在jsp頁面中:<%@pagecontentType="text/html;charset=utf-8"%>在配置文件struts-config.xml中:value="jdbc:mysql://localhost:33xx/bbs?use
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2020-2021深圳育才中學(xué)(初中)小學(xué)三年級數(shù)學(xué)下期末一模試卷帶答案
- 安裝鐵塔施工方案
- 2024年黑龍江大慶中考滿分作文《詩中誦出赤子心》
- 個人購銷合同范例范例
- 修路個人勞務(wù)合同范例
- 合伙餐廳合同范本
- 跨部門合作的工作計劃實(shí)例
- 鄉(xiāng)村樹苗銷售合同范例
- 學(xué)生自我管理與目標(biāo)追蹤計劃
- 培養(yǎng)員工潛能與激勵方式計劃
- 勞務(wù)派遣勞務(wù)外包項(xiàng)目方案投標(biāo)文件(技術(shù)方案)
- 2025年安全員C證(專職安全員)考試題庫
- 地理-天一大聯(lián)考2025屆高三四省聯(lián)考(陜晉青寧)試題和解析
- 2025年廣州市公安局招考聘用交通輔警200人高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 貴州省貴陽市2024-2025學(xué)年九年級上學(xué)期期末語文試題(含答案)
- 2025年江蘇海事職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 2024年尖葉菠菜種子項(xiàng)目可行性研究報告
- 計件工資計算表格模板
- 兩癌防治知識培訓(xùn)
- 《moldflow學(xué)習(xí)資料》課件
- 2025中國移動安徽分公司春季社會招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
評論
0/150
提交評論