版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、河北農(nóng)業(yè)大學(xué)畢業(yè)設(shè)計PAGE 河北農(nóng)業(yè)大學(xué) 本科畢業(yè)論文(設(shè)計) 題 目: 面向?qū)ο蟮南到y(tǒng)分析與設(shè)計 學(xué) 院: 信息科學(xué)與技術(shù)學(xué)院 專業(yè)班級: 計算機專升本1201班 學(xué) 號: 學(xué)生姓名: 指導(dǎo)教師姓名: 指導(dǎo)教師職稱: 副教授 2014 年 6 月 1 日 摘 要為了方便信息的交流,在結(jié)合動態(tài)服務(wù)網(wǎng)頁(JSP)和MYSQL 技術(shù)之下開發(fā)了這個快截、界面友好的網(wǎng)上交流系統(tǒng)。論壇使用動態(tài)服務(wù)網(wǎng)頁(JSP)技術(shù)建設(shè)論壇的骨干框架,使用MYSQL制作系統(tǒng)的數(shù)據(jù)庫,實現(xiàn)了一個功能相對齊全的論壇系統(tǒng)。除了提供基本的看帖子,發(fā)帖子,回帖子,搜帖子的功能,針對管理員用戶系統(tǒng)還提供了用戶管理的操作。目的是基于
2、現(xiàn)實,為用戶提供一個模擬的網(wǎng)上交流環(huán)境。為方便大家的溝通交流,豐富人們的娛樂文化生活。在論文的篇章上,本論文從系統(tǒng)分析,系統(tǒng)整體設(shè)計,數(shù)據(jù)庫設(shè)計與現(xiàn)實幾個方面對系統(tǒng)的開發(fā)過程作了詳細的介紹,旨在全面地呈現(xiàn)系統(tǒng)由最初設(shè)計到最終定型的各個階段,便于大家對系統(tǒng)有一個更好的把握和認識。各個功能版塊的展示也包含在其中,能過直觀地看到系統(tǒng)運行后的演示效果,其中夾雜著部分主要代碼的輔助說明,便于從底層查看系統(tǒng)的最終實現(xiàn)。關(guān)鍵詞:動態(tài)服務(wù)網(wǎng)頁;論壇;用戶管理Abstract In order to facilitate people information the exchange, in unified J
3、SP and MYSQL under the server technology has developed this quick truncation, the contact surface friendly system. The system use the JSP technology construction the main frame, use MYSQL as the systems database, realized a forum system which function relatively completely, the net friend has been p
4、ossible freely to propose the question as well as helped other people to solve the problem, or exchange experience.This forum function is complete, everyone may freely express his viewpoint in here and express the opinion to the subject, we also may promptly solve to net friends question, and gain t
5、he useful knowledge from there. This forum also has some special functions, for example the power search function.Keywords:Java Server Pages; BBS; user management 目錄 TOC o 1-3 h z u HYPERLINK l _Toc24869 1 系統(tǒng)技術(shù)及運行環(huán)境 PAGEREF _Toc24869 1 HYPERLINK l _Toc23732 1.1 JSP技術(shù)簡介 PAGEREF _Toc23732 1 HYPERLINK
6、l _Toc2133 1.2 JAVABEAN技術(shù)簡介 PAGEREF _Toc2133 1 HYPERLINK l _Toc21879 1.3 JDBC技術(shù)簡介 PAGEREF _Toc21879 2 HYPERLINK l _Toc15663 1.4 TOMCAT技術(shù)簡介 PAGEREF _Toc15663 2 HYPERLINK l _Toc6942 1.5運行環(huán)境 PAGEREF _Toc6942 3 HYPERLINK l _Toc31420 2 需求分析 PAGEREF _Toc31420 3 HYPERLINK l _Toc1420 2.1 編寫目的 PAGEREF _Toc14
7、20 3 HYPERLINK l _Toc26191 2.2 任務(wù)目標(biāo) PAGEREF _Toc26191 4 HYPERLINK l _Toc1504 2.2.1基本性能 PAGEREF _Toc1504 4 HYPERLINK l _Toc20820 2.2.2開發(fā)目標(biāo) PAGEREF _Toc20820 4 HYPERLINK l _Toc24945 2.2.3 應(yīng)用目標(biāo) PAGEREF _Toc24945 4 HYPERLINK l _Toc18142 2.3選擇編程語言 PAGEREF _Toc18142 5 HYPERLINK l _Toc19899 2.3.1 JSP與ASP的比
8、較 PAGEREF _Toc19899 5 HYPERLINK l _Toc27236 2.3.2 JSP的特點與優(yōu)點 PAGEREF _Toc27236 6 HYPERLINK l _Toc15518 3系統(tǒng)設(shè)計 PAGEREF _Toc15518 7 HYPERLINK l _Toc22912 3.1系統(tǒng)設(shè)計思想 PAGEREF _Toc22912 7 HYPERLINK l _Toc25498 3.1.1 網(wǎng)上論壇系統(tǒng)說明 PAGEREF _Toc25498 7 HYPERLINK l _Toc4285 3.1.2 網(wǎng)上論壇系統(tǒng)總體分析 PAGEREF _Toc4285 8 HYPERL
9、INK l _Toc7664 3.2 數(shù)據(jù)庫設(shè)計思想 PAGEREF _Toc7664 8 HYPERLINK l _Toc5041 3.3 各單元模塊設(shè)計 PAGEREF _Toc5041 10 HYPERLINK l _Toc2258 3.3.1用戶注冊登陸功能 PAGEREF _Toc2258 10 HYPERLINK l _Toc23280 3.3.2會員發(fā)貼與回復(fù)功能 PAGEREF _Toc23280 11 HYPERLINK l _Toc29190 3.3.3管理員管理帖子與用戶管理功能 PAGEREF _Toc29190 13 HYPERLINK l _Toc24225 4 編
10、碼實現(xiàn) PAGEREF _Toc24225 14 HYPERLINK l _Toc13480 4.1 功能總體說明 PAGEREF _Toc13480 14 HYPERLINK l _Toc2750 4.1.1 功能總體說明 PAGEREF _Toc2750 14 HYPERLINK l _Toc15596 4.1.2主要功能流程 PAGEREF _Toc15596 15 HYPERLINK l _Toc4674 4.2各個功能模塊的實現(xiàn) PAGEREF _Toc4674 15 HYPERLINK l _Toc29460 4.2.1數(shù)據(jù)庫的連接 PAGEREF _Toc29460 15 HYP
11、ERLINK l _Toc208 4.2.2用戶登陸與注冊模塊的實現(xiàn) PAGEREF _Toc208 16 HYPERLINK l _Toc3830 4.2.3分頁顯示的功能實現(xiàn) PAGEREF _Toc3830 21 HYPERLINK l _Toc9887 4.2.4 發(fā)表與回復(fù)功能模塊實現(xiàn) PAGEREF _Toc9887 22 HYPERLINK l _Toc8388 4.2.5后臺管理模塊的實現(xiàn) PAGEREF _Toc8388 25 HYPERLINK l _Toc6313 5 系統(tǒng)測試 PAGEREF _Toc6313 28 HYPERLINK l _Toc16623 總 結(jié) P
12、AGEREF _Toc16623 29 致謝30 HYPERLINK l _Toc3951 參考文獻 PAGEREF _Toc3951 31 基于JSP的BBS論壇管理系統(tǒng) 1 系統(tǒng)技術(shù)及運行環(huán)境1.1 JSP技術(shù)簡介JSP是服務(wù)器端的腳本語言,是以SERVLET為基礎(chǔ)開發(fā)而生成的動態(tài)網(wǎng)頁生成技術(shù),它的底層實現(xiàn)是JAVA SERVLET。JSP(JAVA SERVER PAGES)由HTML代碼和潛入其中的JAVA代碼所組成。服務(wù)器在頁面被客戶端請求后對這些代碼進行處理,然后將生產(chǎn)的HTML頁面返回客戶端的瀏覽器。JSP的特點是面向?qū)ο蟆?跨平臺、 和SERVLET一樣穩(wěn)定、 可以使用SERV
13、LET提供的API,同時克服了SERVLET的缺點。在使用JSP時一般和JAVABEANS結(jié)合使用,從而將界面表現(xiàn)和業(yè)務(wù)邏輯分離。1.2 JAVABEAN技術(shù)簡介JAVABEAN是基于JAVA的組建模型,有點類似于MICROSOFT的COM組建。在JAVA平臺中,可以無限擴充JAVA程序的功能,通過JAVABEAN的組合可以生產(chǎn)新的應(yīng)用程序。對于程序員來說,最好的一點就是JAVABEAN可以實現(xiàn)代碼的重復(fù)利用,另外對于程序的易維護性等也有很重大的意義。JAVABEAN 通過JAVA虛擬機(JAVA VIRTUAL MACHINE)執(zhí)行,運行JAVABEAN最小的需求是JDK1.1或者以上的版本
14、。JAVABEAN傳統(tǒng)的應(yīng)用在于可視化的領(lǐng)域,如AWT下的應(yīng)用。自從JSP誕生后,JAVABEAN更多的應(yīng)用在了非可視化領(lǐng)域,在服務(wù)器端應(yīng)用方面表現(xiàn)出越來越強的生命力。1.3 JDBC技術(shù)簡介JDBC是一組API,定義用來訪問數(shù)據(jù)庫源的標(biāo)準(zhǔn)JAVA類庫,使用這種類庫可以使用一種標(biāo)準(zhǔn)的方法、方便地訪問數(shù)據(jù)庫資源。JDBC的目標(biāo)是使應(yīng)用程序開發(fā)人員使用JDBC可以連接任何提供JDBC驅(qū)動程序的數(shù)據(jù)庫系統(tǒng),這樣就使得程序員無須對特定的數(shù)據(jù)庫的特點有過多了解,從而大大簡化了和加快了開發(fā)過程。JDBC API 為訪問不同的數(shù)據(jù)庫提供了一種統(tǒng)一途徑,像ODBC一樣,JDBC為開發(fā)者屏蔽了一些細節(jié)問題。另外
15、,JDBC對數(shù)據(jù)庫的訪問也具有平臺無關(guān)性。1.4 TOMCAT技術(shù)簡介在已JAVA技術(shù)為的WEB開發(fā)領(lǐng)域中,TAMCAT是許多JAVA程序員相當(dāng)喜愛的開放源代碼產(chǎn)品,附屬在APACHE SOFTWARE FOUNDATION 所主導(dǎo)的JAKART項目內(nèi)。由于TAMCT是SERVLET與JSP技術(shù)的參考實現(xiàn)(REFERNCE IMPLEMENTATION),所以它不但可以當(dāng)作獨立的WEB服務(wù)器,也可以結(jié)合其它的WEB服務(wù)器,只擔(dān)任SERVLET容器或JSP容器的角色。1.5運行環(huán)境為了保證BBS論壇管理系統(tǒng)運行的高效性和可靠性,服務(wù)器應(yīng)具有較高的軟硬件配置,客戶端的要求不是很高。此應(yīng)用程序可廣泛
16、運行于國際互聯(lián)網(wǎng)即Internet,也可適用于內(nèi)部的局域網(wǎng)。其運行要求如下:軟件環(huán)境:客戶端: Windows95/98/2000/XP,Internet Explorer(IE)等。服務(wù)器端:Windows NT/Windows2000,Tomcat 5.0,JDK 1.5及其以上版本,IE等;數(shù)據(jù)庫:采用MYSQL,運行于服務(wù)器端。硬件環(huán)境:服務(wù)器 CPU:PIII 500以上 ,內(nèi)存:512M以上??蛻魴C CPU:P200MMX以上,內(nèi)存:32M以上。 2 需求分析2.1 編寫目的當(dāng)今網(wǎng)絡(luò)技術(shù)逐漸滲入社會生活各個層面,以前網(wǎng)站上的論壇管理系統(tǒng)要用戶登陸以后才能進行訪問及互動。而隨著網(wǎng)絡(luò)互
17、聯(lián)技術(shù)的進步,現(xiàn)在網(wǎng)站投票需打開網(wǎng)頁就可進行論壇留言。論壇對象是很多的,各個層次都可進行論壇訪問,大到國家領(lǐng)導(dǎo),小到一個普通干部,訪問和留言從到指定用戶進行表格到現(xiàn)在通過網(wǎng)絡(luò)直接點擊相應(yīng)就可進行。網(wǎng)上論壇管理系統(tǒng)可解決游客訪問和留言,致使現(xiàn)在幾乎各個網(wǎng)站都有各種類型網(wǎng)站論壇管理系統(tǒng),用戶可選擇自己的看法。所以我提出了本課題的研究。2.2 任務(wù)目標(biāo)2.2.1基本性能系統(tǒng)包括主要的功能:新用戶注冊,會員登錄,管理員刪除用戶,管理員刪除帖子和修改帖子,查詢主題,和查詢用戶這些功能,游客瀏覽留言,會員新增主題,會員留言回復(fù),查詢主題這些功能,可以滿足一般的用戶需要。2.2.2開發(fā)目標(biāo)這個系統(tǒng)預(yù)期的目的
18、是為了做成交互式的網(wǎng)頁,方便客戶端和瀏覽器端之間的交流。通過論壇,人們能夠相互交流溝通,把疑惑在論壇里公布,大家獻計獻策,共同學(xué)習(xí),共同進步。2.2.3 應(yīng)用目標(biāo)網(wǎng)上論壇系統(tǒng)是一個會員登錄留言系統(tǒng)。網(wǎng)上游客能夠瀏覽論壇上的帖子,并且能夠注冊成為用戶。論壇注冊會員能夠發(fā)表帖子,讓大家積極參與討論。論壇管理員能夠便于管理論壇,包括瀏覽游客留言,審核留言,對于不健康或是不利于社會穩(wěn)定的留言能進行刪除操作。2.3選擇編程語言2.3.1 JSP與ASP的比較總的來講Java Server Page(JSP)技術(shù)和Microsoft 公司提供的Active Server Pages(ASP)技術(shù)在技術(shù)方面
19、有許多相似點:兩者都是基于WEB應(yīng)用實現(xiàn)動態(tài)交互網(wǎng)頁制作提供技術(shù)環(huán)境支持。兩者能為程序開發(fā)人員提供實現(xiàn)應(yīng)用程序的編制與自帶組建設(shè)計網(wǎng)頁從邏輯上分離的技術(shù)。而且兩者能替代CGI使網(wǎng)站建設(shè)與發(fā)展變得較為簡單與快捷。1).相同之處 都是運行于服務(wù)器端的腳本語言,兩者都是動態(tài)網(wǎng)頁生成技術(shù),這兩項技術(shù)都是由HTML來決定網(wǎng)頁的版面,都是在HTML代碼中混合的某種代碼,有語言引擎解釋執(zhí)行程序代碼。HTML主要負責(zé)描述信息的顯示樣式,而程序代碼用來描述處理邏輯。2).不同之處JSP是由SUN公司推出的一項技術(shù),是基于JavaServlet 以及整個JAVA體系的WEB開發(fā)技術(shù),利用這項技術(shù)可以建立先進、安全
20、和跨平臺動態(tài)網(wǎng)站。ASP是MS公司推出技術(shù)只能在MS的平臺上運行,無法實現(xiàn)跨平臺,也無安全性保障。ASP下的編輯語言是VBScript 之類的腳本語言,而JSP使用的是JAVA。ASP與JSP還有一個更為本質(zhì)的區(qū)別:兩種語言引擎用完全不一樣的方式來處理面中潛入的程序代碼。在ASP下,VBScript代碼被ASP引擎解釋執(zhí)行。在JSP中,代碼被編譯生產(chǎn)Servlet并有JAVA虛禮機執(zhí)行,這種也僅在對JSP的第一次請求時發(fā)生。2.3.2 JSP的特點與優(yōu)點綜合而言,JSP技術(shù)具有下面的特點:1)write once run anywhereJSP技術(shù)繼承了JAVA先天性的先進概念“write o
21、nce run anywhere”這種概念正越來越深影響著互連網(wǎng)行業(yè)的交互式、WEB設(shè)計的理念。JSP Pages 可以非常容易的開平臺跨WEB服務(wù)器軟件來設(shè)計和開放源代碼。2)支持多種動態(tài)網(wǎng)頁格式目前對使用JSP技術(shù)設(shè)計出來的網(wǎng)頁應(yīng)該采取什么樣的格式還沒有一個明確標(biāo)準(zhǔn)。一般來說JSP技術(shù)可以支持HTML/DHTML的傳統(tǒng)瀏覽器文件格式,也可以支持應(yīng)用與無線通訊設(shè)備例如移動電話、PDA等設(shè)備進行網(wǎng)頁瀏覽器的VML文件格式,還可以支持其它一些B2B應(yīng)用的XML格式。和以往的其它WEB應(yīng)用技術(shù)相比較JSP技術(shù)有它很鮮明的特點。3)JSP 標(biāo)簽可擴沖性 盡管JSP與ASP都使用標(biāo)簽與腳本技術(shù)來制造動
22、態(tài)WEB網(wǎng)頁,但JSP技術(shù)能夠使開發(fā)者擴展JSP標(biāo)簽,使得應(yīng)用JSP的開發(fā)者定制標(biāo)簽庫所以網(wǎng)頁制作者可以充分利用與XML兼容的標(biāo)簽技術(shù),從而大大減少了對腳本語言的依賴。由于指定標(biāo)簽庫技術(shù)使得網(wǎng)頁制作者降低了制作網(wǎng)頁和多個網(wǎng)頁擴充關(guān)鍵功能的復(fù)雜程度。4)JSP跨平臺的可重用性JSP的開發(fā)人員在開發(fā)過程中一直關(guān)注可重用性,JSP足見、企業(yè)JavaBean或制定的標(biāo)簽都是跨平臺可重用的。企業(yè)JavaBean可以訪問傳統(tǒng)的數(shù)據(jù)庫并能并能已分布式系統(tǒng)模式工作于UNIX和WINDOWS平臺,JSP標(biāo)簽可擴充功能為開發(fā)人員提供簡便的與XML兼容的接口,即共享網(wǎng)頁的打包功使其完全的工業(yè)標(biāo)準(zhǔn)化。這種基于組建的模
23、式能夠有效提高應(yīng)用程序的開發(fā)效率。因為這種模式能夠使開發(fā)人員利用快捷的子組建快速創(chuàng)建模板應(yīng)用程序。然后再整和一些附加功能將其打包成一個JAVABEAN組建。5)易于維護性基于JSP技術(shù)的應(yīng)用程序比基于ASP的應(yīng)用程序更易維護和管理。腳本語言都很好服務(wù)于小的應(yīng)用程序但不能適宜大型的復(fù)雜的應(yīng)用程序,因為JAVA是結(jié)構(gòu)化的,它比較容易創(chuàng)建和維護龐大的組建化的應(yīng)用程序。 3系統(tǒng)設(shè)計3.1系統(tǒng)設(shè)計思想3.1.1 網(wǎng)上論壇系統(tǒng)說明此網(wǎng)上論壇中三種不同角色游客、注冊用戶管理員分別可現(xiàn): 游 客:查看帖子、注冊新用戶。 注冊用戶:查看帖子、發(fā)新帖子、回復(fù)信息、查詢主帖。 管理員:帖子管理、用戶管理、數(shù)據(jù)庫管理
24、。3.1.2 網(wǎng)上論壇系統(tǒng)總體分析通過上面的功能說明,我們可以將論壇的制作分為四大部分:(1) 會員注冊和登陸模塊:這個模塊的功能,就是新來網(wǎng)友可以填寫注冊資料 ,通過審核后便成為本論壇的正式會員,并可以以會員身份登陸論壇。(2) 文章顯示模塊:顯示所有會員最新發(fā)表的一些文章主題。(3) 發(fā)表文章模塊:為會員提供發(fā)表文章的地方,以及回復(fù)主題等。(4) 論壇與用戶管理模塊:版主以上職務(wù)可以進行對文章和用戶進行處理,查詢,修改,刪除等。了解了具體的功能需求后,就可以按模塊開始論壇的設(shè)計。當(dāng)然,這些模塊只是在功能上對論壇結(jié)構(gòu)的劃分,實際上并不能夠完全的把他們獨立出來進行設(shè)計。對于這種較小的應(yīng)用,也沒
25、有必要進行完全的模塊化設(shè)計,在良好的規(guī)劃下直接寫程序代碼或許來的更為簡單一些。3.2 數(shù)據(jù)庫設(shè)計思想在建設(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)的重中之重。數(shù)據(jù)庫設(shè)計要遵循一些規(guī)則,一個好的數(shù)據(jù)庫滿足一些嚴格的約束和要求。盡量分離各實體對應(yīng)的表,一個實體對應(yīng)一個表,分析該實體有哪些屬性,對應(yīng)有些什么字段,以及各實體之間的聯(lián)系。實體、屬性與聯(lián)系是進行概念設(shè)計時要考慮的三個元素,也是一個好的數(shù)據(jù)庫設(shè)計的核心。從實際出發(fā),經(jīng)過仔細地設(shè)計,得
26、到各表的設(shè)計如表3.13.3所示。 表3.1 帖子信息表article字段字段名類型寬度小數(shù)位索引可否為空id編號Aotu_increment一一是否pid父親編號INT11一一否Rootid孩子編號INT11一一否Title標(biāo)題varchar50一一一Writer作者varchar20一一一cont內(nèi)容varchar250一一一pdate發(fā)貼日期日期型一一一一表3.2 用戶信息表user字段字段名類型寬度小數(shù)位索引可否為空id會員編號Aotu_increment一一是一name 會員姓名varchar32一一一password會員密碼varchar14一一否sex會員性別varchar2一一
27、否email會員郵箱varchar20一一一表3.3管理員信息表adminuse字段字段名類型寬度小數(shù)位索引可否為空id會員編號Aotu_increment一一是一name 會員姓名varchar32一一一password會員密碼varchar14一一否3.3 各單元模塊設(shè)計3.3.1用戶注冊登陸功能此部分是實現(xiàn)用戶的注冊功能。通過填寫注冊資料,正確填寫后,點擊注冊按鈕后便可注冊成為正式的會員。如圖3.1所示: 圖3.1新用戶注冊用戶資料填寫正確就可以注冊了。而且對其用正則表達式做了一些限制。用戶名只能是3-12位單字字符,而且不允許注冊重復(fù)的用戶名。性別只能選擇男或女其中一個。密碼最多不能超
28、過12位,兩次密碼必須輸入一致,否則不可以注冊。E-mail必須輸入有效的郵箱地址,以便日后能使用到論文的各種功能。只要用戶按照出現(xiàn)提示信息輸入進去就可以了。用戶注冊成功后就可以使用會員所擁有的一切功能了。3.3.2會員發(fā)貼與回復(fù)功能此部分實現(xiàn)會員的發(fā)表新帖以及回帖等功能。發(fā)表帖子會員只針對會員開放,如果想發(fā)表新的主題,必須登陸如果沒有賬號必須注冊以后便可直接點擊發(fā)表帖子按鈕。進到發(fā)表帖子頁面后,首先要寫自己想發(fā)表的主題,然后填寫作者和正文。如果沒有登陸直接點擊發(fā)表主題,則會直接跳到用戶登陸頁面。發(fā)表主題如圖3.2所示:圖3.2 發(fā)表新貼回復(fù)主題界面 如圖 3.3所示:圖3.3 回復(fù)主題發(fā)表成
29、功回到顯示主題頁面 再點擊主題會看到主題貼的相關(guān)內(nèi)容和回復(fù)內(nèi)容?;貜?fù)帖子只針對會員開放,游客不可以回復(fù)主題?;貜?fù)內(nèi)容比較全面,可有表情,也可以設(shè)置字體大小顏色,段落格式等。如果沒有登陸直接點擊回復(fù)則直接跳轉(zhuǎn)到登陸頁面。3.3.3管理員管理帖子與用戶管理功能 此部分主要是管理員對論壇的帖子和會員進行綜合管理,刪除、編輯、查詢、等等。普通會員是不可以進行此操作的。管理員登陸界面如圖3.4所示:圖3.4 管理員登陸首先用session判斷管理員是否登陸,如果沒有登陸直接在瀏覽器里面輸入管理界面的地址則不能對其內(nèi)容進行操作。這樣保證了數(shù)據(jù)的安全性。管理員登陸以后可以對有些文章內(nèi)容有地方不足時,可以對其
30、進行編輯修改,當(dāng)然對于不好的帖子或者就是灌水的帖子,嚴重的可以直接刪除了。帖子都是按照發(fā)表時間和回復(fù)時間排列的,時間最新的帖子則排在最前面,時間越舊的就越靠后面。如果登陸成功則進入管理員管理頁面,如圖3.5所示:圖 3.5 后臺管理 4 編碼實現(xiàn)4.1 功能總體說明4.1.1 功能總體說明(1)前臺功能頁面登陸與注冊:register.jsp、uselogin.jsp、reg_failure.jsp、log_failure.jsp帖子展示:articleFlat.jsp 、articleDetailFlat.jsp發(fā)表主題帖:post.jsp回復(fù):reply.jsp、replyDeal.jsp
31、搜索:articleSearch.jsp(2)后臺功能頁面主頁面框架: fram.jsp、left.jsp、main.jsp、top.html帖子管理:modify.jsp、delete.jsp、articleSearch.jsp、searchResult.jsp、articleFlat1.jsp用戶管理:userMrg.jsp、login.jsp、searchResultUser.jsp、deleteUser.jsp4.1.2主要功能流程主頁面主頁面后臺管理后臺管理用戶登陸用戶登陸注冊是否會員注冊是否會員帖子管理注銷登陸會員管理帖子管理注銷登陸會員管理發(fā)表新帖回復(fù)帖子搜索主帖發(fā)表新帖回復(fù)帖子
32、搜索主帖刪除帖子修改帖子主帖查詢會員刪除會員查詢刪除帖子修改帖子主帖查詢會員刪除會員查詢圖 4.1 主要功能流程圖4.2.1數(shù)據(jù)庫的連接出于安全性的考慮,我們將與數(shù)據(jù)庫的連接,單獨寫出來并進行編譯,也就是數(shù)據(jù)庫連接的javabean文件,編譯出來的.class文件是無法被修改的只能通過源文件進行修改,我們在JSP頁面中只用直接調(diào)用該方法即可,在本系統(tǒng)中我們將其命名為DBConMgr.java關(guān)鍵代碼如下:表4.1 數(shù)據(jù)庫的連接import java.sql.*;public class DBConMgr private String driverName=com.mysql.jdbc.Driv
33、er; /驅(qū)動程序名private String userName=root; /數(shù)據(jù)庫用戶名private String userPwd=123456; /密碼private String url= jdbc:mysql:/localhost:3306/bbs; /連接字符串private Connection conn=null; /數(shù)據(jù)庫連接對象public Statement sm=null; /數(shù)據(jù)庫語句對象 public void ConnectDB() try Class.forName( driverName); conn = DriverManager.getConnecti
34、on(url, userName , userPwd); sm=conn.createStatement(); System.out.println(數(shù)據(jù)庫連接成功!); catch(Exception e) e.printStackTrace(); System.out.println(數(shù)據(jù)庫連接失敗!); public void CloseDB() try if (sm != null) sm.close();conn.close(); catch (SQLException SqlE) SqlE.printStackTrace(); System.out.println(數(shù)據(jù)庫關(guān)閉失??!
35、); 4.2.2用戶登陸與注冊模塊的實現(xiàn)用戶登陸模塊是防止非法用戶登陸的第一道防線,通過它可以保護后臺數(shù)據(jù)庫的安全性,當(dāng)用戶要進行發(fā)貼或回復(fù)時,首先要進入的就是身份驗證界面,只有在密碼正確的情況下才能進行以后的操作,如果輸入的密碼不正確,則不能進行發(fā)表新帖和回復(fù)。如果用戶以瀏覽者的身份進入網(wǎng)站,則只能進行一般的帖子瀏覽和搜索,而不能發(fā)表新帖和回復(fù),在點擊發(fā)表新帖后,系統(tǒng)會判斷該用戶是否是登陸用戶,如果不是則進入登陸頁面,如果是第一次登陸,請先注冊。登陸的具體實現(xiàn)要通過一個全程變量,即Session變量來實現(xiàn),用戶登錄的界面userlogin.jsp,從user表查得用戶提交的帳戶名和密碼正確后
36、,用一個全局變量,即Session變量保存這一消息該變量稱為session.setAttribute(uLogined, true);。具體的判斷過程為:表4.2用戶登陸代碼實現(xiàn) boolean ulog = false; /判斷用戶是否登陸String u = (String)session.getAttribute(uLogined);if (u != null & u.trim().equals(true) ulog = true;若ulog為false,表明沒有經(jīng)過登陸與否的驗證,則只能已游客的生份瀏覽和搜索帖子如果想留言和發(fā)表帖子,只有登錄或注冊用戶才可以。若ulog為true則表名
37、用戶已經(jīng)登陸,而且可以用session得到用戶名(String)session.getAttribute(name),顯示在主頁上。如果用戶還不是會員則提示用戶進行注冊,用戶提交信息之后,系統(tǒng)開始判斷用戶的注冊信息是否有效,首先是用戶名是否為空,用戶輸入的兩次密碼是否一致,然后依次往后判斷用戶所填寫的各項信息是否符合要求,直到所有信息均正確無誤,系統(tǒng)將該用戶注冊信息寫入會員表即user表,并提示用戶注冊成功。就可以進行其它有效的操作了。系統(tǒng)對用戶的注冊信息的驗證實現(xiàn)如下:首先是用正則表達式對表單的控制表4.3 正則表達式對表單的控制 function Check() reName =/w3,1
38、2$/; rePwd =/w6,12$/; reEmail=/w+w+.w+$/;if(!reName.test(document.register.username.value)window.alert(用戶名只能是3-12單字字符!);window.register.username.focus();return false;if(!rePwd.test(document.register.pwd.value)window.alert(密碼只能是6-12位單字字符!);window.register.pwd.focus();return false;if(document.register
39、.pwd.value!=document.register.confpwd.value)window.alert(請驗證密碼!);window.register.confpwd.focus();return false;if(!reEmail.test(document.register.email.value)window.alert(E_mail格式不對!);window.register.email.focus();return false;document.register.submit();/填寫的內(nèi)容都符合那么就會提交 表4.4 用戶注冊代碼實現(xiàn)4.2.3分頁顯示的功能實現(xiàn)這里是分
40、頁功能的實現(xiàn),這里把每頁幾條記錄設(shè)為一個常量便于修改。表4.5 分頁顯示代碼實現(xiàn)%final int PAGE_SIZE = 4; / 每頁幾條記錄int pageNo = 1;String strPageNo = request.getParameter(pageNo);/當(dāng)前頁if (strPageNo != null & !strPageNo.trim().equals() try pageNo = Integer.parseInt(strPageNo); catch (NumberFormatException e) pageNo = 1; /異常處理如果當(dāng)前為空pageNo = 1i
41、f (pageNo = 0)/如果小于0 pageNo = 1pageNo = 1;int totalPages = 0;/總頁數(shù)List articles = new ArrayList();/定義一個數(shù)組鏈表Connection conn = DB.getConn();Statement stmtCount = DB.createStmt(conn);ResultSet rsCount = DB.executeQuery(stmtCount,select count(*) from article where pid = 0); / 顯示所有pid=0的帖子rsCount.next();i
42、nt totalRecords = rsCount.getInt(1);/總記錄數(shù)totalPages = (totalRecords + PAGE_SIZE - 1) / PAGE_SIZE;if (pageNo totalPages)pageNo = totalPages;Statement stmt = DB.createStmt(conn);int startPos = (pageNo - 1) * PAGE_SIZE;String sql = select * from article where pid = 0 order by pdate desc limit + startPo
43、s + , + PAGE_SIZE;System.out.println(sql);ResultSet rs = DB.executeQuery(stmt, sql);while (rs.next() Article a = new Article();a.initFromRs(rs);/初始化此方法封裝在article.java里面articles.add(a);/加如數(shù)組鏈表articlesDB.close(rsCount);DB.close(stmtCount);DB.close(rs);DB.close(stmt);DB.close(conn);%4.2.4 發(fā)表與回復(fù)功能模塊實現(xiàn)點擊
44、發(fā)表主題進入post.jsp,填寫標(biāo)題、作者與內(nèi)容提交到自身頁面表4.6 發(fā)表帖子功能代碼實現(xiàn)標(biāo)題作者: 內(nèi)容:input type=submit value=submit /回復(fù)功能關(guān)鍵代碼表 4.7 回復(fù)功能實現(xiàn)這里是javscript實現(xiàn)五秒之后自動跳轉(zhuǎn)表4.8 Javascript 實現(xiàn)延遲跳轉(zhuǎn)span id=time style=background:red5秒鐘后自動跳轉(zhuǎn),如果不跳轉(zhuǎn),請點擊下面鏈接 0) delay-;document.getElementById(time).innerHTML = delay; else window.top.location.href = u
45、rl; setTimeout(delayURL( + url + ), 1000); /delayURL(http:/wwer)/-主題列表delayURL(articleFlat.jsp);/回復(fù)成功跳轉(zhuǎn)到主頁面4.2.5后臺管理模塊的實現(xiàn)網(wǎng)上論壇系統(tǒng)除了能夠讓用戶實現(xiàn)前臺的瀏覽和回復(fù)等操作之外,還必須能夠使管理人員能夠?qū)ο到y(tǒng)的各種信息進行維護,比如帖子的增加、刪除、修改,會員的搜索,刪除等等。管理功能是網(wǎng)上論壇系統(tǒng)相當(dāng)重要的一部分功能。管理員可以通過主頁面進入系統(tǒng)后臺進行維護,點擊之后,首要的就是進行身份驗證,輸入正確的賬號,密碼之后,方能進入。出于安全性考慮,管理員賬號應(yīng)盡量少分配,密碼
46、也要盡量復(fù)雜,經(jīng)常更換。進入之后系統(tǒng)管理的主頁面采用了框架結(jié)構(gòu),左邊是一個菜單,右邊顯示具體信息。管理的主要功能有帖子的查詢、更新,刪除等,用戶管理,主要就是查詢用戶,刪除用戶。這一部分的實現(xiàn)也沒有新的方法,使用的依然是一些SQL語句來對相關(guān)數(shù)據(jù)進行查詢和刪除,修改。網(wǎng)上論壇作為一個在網(wǎng)上交流思想的論壇系統(tǒng),如何能讓用戶以最快的速度找到自己希望看到的帖子,也是需要非常重視的一個問題,此時搜索引擎也就必不可少了。本論壇系統(tǒng)也做了一個小模塊,以供用戶進行一些模糊查找,用戶不必輸入全部名稱,只需輸入一些關(guān)鍵詞,系統(tǒng)就可以將符合該查詢條件的所有帖子信息以網(wǎng)頁形式返回給用戶。該搜索功能在JSP頁面中實現(xiàn)
47、的關(guān)鍵代碼為:表4.9搜索功能代碼實現(xiàn)Connection conn = DB.getConn();Statement stmtCount = DB.createStmt(conn);String sqlCount = select count(*) from article where title like % + keyword + % ;/得到符合條件的總記錄數(shù)System.out.println(sqlCount);ResultSet rsCount = DB.executeQuery(stmtCount, sqlCount);rsCount.next();int totalRecor
48、ds = rsCount.getInt(1);totalPages = (totalRecords + PAGE_SIZE - 1)/PAGE_SIZE;if(pageNo totalPages) pageNo = totalPages;if(pageNo = 0) pageNo = 1;Statement stmt = DB.createStmt(conn);int startPos = (pageNo-1) * PAGE_SIZE;/這里是為了分頁顯示String sql = select * from article where title like % + keyword + % an
49、d pid = 0 order by pdate desc limit + startPos + , + PAGE_SIZE ;修改功能實現(xiàn)的關(guān)鍵代碼為:表4.10修改功能代碼實現(xiàn)刪除功能實現(xiàn)的關(guān)鍵代碼為表4.11刪除功能代碼實現(xiàn)%int id = Integer.parseInt(request.getParameter(id);int pid = Integer.parseInt(request.getParameter(pid);boolean isLeaf = Boolean.parseBoolean(request.getParameter(isLeaf);Connection co
50、nn = null;boolean autoCommit = true;Statement stmt = null;ResultSet rs = null;try conn = DB.getConn();autoCommit = conn.getAutoCommit();conn.setAutoCommit(false);delete(conn, id, isLeaf);stmt = DB.createStmt(conn);rs = DB.executeQuery(stmt, select count(*) from article where pid = + pid);rs.next();i
51、nt count = rs.getInt(1);if(count 5系統(tǒng)測試系統(tǒng)完成之后,對各個模塊的功能進行了詳細的測試,輸入數(shù)據(jù)和預(yù)測輸出數(shù)據(jù)相比,發(fā)現(xiàn)了一些問題。主要是在查詢過程中預(yù)計查詢結(jié)果和實際結(jié)果不一致,有時候達不到目的,對數(shù)據(jù)庫的操作表之間的關(guān)聯(lián)考慮得不夠周到,因此往往會出現(xiàn)一些小的錯誤。需要靠一步步的查找解決。各個模塊組裝完成后,又會出現(xiàn)一些問題。所以很容易造成數(shù)據(jù)混亂,必須對相應(yīng)的數(shù)據(jù)關(guān)系理清楚,一些關(guān)鍵查詢統(tǒng)計的SQL語句必須反復(fù)斟酌才能放在程序中使用。 先注冊一個用戶名為USER的用戶(先前數(shù)據(jù)庫中無此用戶名的),注冊成功后,再注冊一個用戶名為USER的用戶,預(yù)期結(jié)果應(yīng)該
52、是系統(tǒng)提示該用戶名已經(jīng)存在。填寫完整的資料后點擊注冊,此時系統(tǒng)按照預(yù)期結(jié)果提示該用戶名已經(jīng)被注冊了。測試結(jié)果,系統(tǒng)正常按照設(shè)計模式運行。將用戶名改為:幾個空格然后其他的不變提交之后我們會發(fā)現(xiàn)系統(tǒng)返回成功頁面,但問題是用戶名什么也沒有,空格也被作為合法的用戶名,這在實際應(yīng)用中是不允許的,我們需要對其命名規(guī)則進行定義,具體修改請參看前面正則表達式對表單的控制。同樣的郵箱也存在規(guī)則未定義的問題,需要對其加以定義。在測試過程中,我經(jīng)過測試,排除了系統(tǒng)的大部分錯誤。當(dāng)然排除所有錯誤是不太可能的,我想應(yīng)該還有些不易檢測到的錯誤還沒有被發(fā)現(xiàn),需要在使用的過程中進一步的完善,數(shù)據(jù)庫的加密是一個重要的概念,在實際的應(yīng)用過程中是一個尚待解決的問題,應(yīng)該做好數(shù)據(jù)庫的完善工作,特別是備份和安全工作;另一方面由于時間倉促難免有錯誤和不完善的地方,希望老師能夠幫我指點和糾正。 總結(jié)完成這次設(shè)計任務(wù)總共用了六個星期時間,前三個星期用來收集資料、學(xué)習(xí)要用到的各項開發(fā)技術(shù)、進行論壇的系統(tǒng)分析,中間兩個星期用來設(shè)計系統(tǒng),后一個星期用來測試及修改。論文的撰寫一直貫穿其中。通過這次畢業(yè)設(shè)計,我從中學(xué)到了許多新的
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC 61076-2-101:2024 EN-FR Connectors for electrical and electronic equipment - Product requirements - Part 2-101: Circular connectors - Detail specification for M12 connect
- 跨部門協(xié)作的推進計劃
- 塑料制品行業(yè)原料安全檢測方案
- 提升決策效率的措施計劃
- 影視公司前臺工作感想
- 律師辦公室實習(xí)報告
- 營養(yǎng)科護士工作總結(jié)
- 快遞行業(yè)客服工作總結(jié)快捷服務(wù)傳遞溫暖
- 2024年物聯(lián)網(wǎng)應(yīng)用場景開發(fā)分包合作協(xié)議
- 呼叫中心行業(yè)美工工作總結(jié)
- 頑固性心力衰竭治療課件
- 《大學(xué)英語跨文化交際》課程教案
- 新員工職業(yè)素養(yǎng)培訓(xùn)
- 個人車輛抵押借款合同
- 營養(yǎng)教育與社區(qū)營養(yǎng)管理基礎(chǔ)考試復(fù)習(xí)題庫及答案
- 2023年化工企業(yè)隱患排查與治理培訓(xùn)
- 國語經(jīng)典歌曲歌詞接龍考試題庫(180題)
- 西安東原地產(chǎn)品牌年度推廣方案
- 2022年7月云南省普通高中學(xué)業(yè)水平考試物理含答案
- 走進范仲淹課件
- 2023-2024學(xué)年江蘇省吳江市小學(xué)語文五年級上冊期末高分測試題
評論
0/150
提交評論