畢業(yè)論文-面向對象的系統(tǒng)分析與設計_第1頁
畢業(yè)論文-面向對象的系統(tǒng)分析與設計_第2頁
畢業(yè)論文-面向對象的系統(tǒng)分析與設計_第3頁
畢業(yè)論文-面向對象的系統(tǒng)分析與設計_第4頁
畢業(yè)論文-面向對象的系統(tǒng)分析與設計_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、河北農業(yè)大學畢業(yè)設計PAGE 河北農業(yè)大學 本科畢業(yè)論文(設計) 題 目: 面向對象的系統(tǒng)分析與設計 學 院: 信息科學與技術學院 專業(yè)班級: 計算機專升本1201班 學 號: 學生姓名: 指導教師姓名: 指導教師職稱: 副教授 2014 年 6 月 1 日 摘 要為了方便信息的交流,在結合動態(tài)服務網頁(JSP)和MYSQL 技術之下開發(fā)了這個快截、界面友好的網上交流系統(tǒng)。論壇使用動態(tài)服務網頁(JSP)技術建設論壇的骨干框架,使用MYSQL制作系統(tǒng)的數據庫,實現了一個功能相對齊全的論壇系統(tǒng)。除了提供基本的看帖子,發(fā)帖子,回帖子,搜帖子的功能,針對管理員用戶系統(tǒng)還提供了用戶管理的操作。目的是基于

2、現實,為用戶提供一個模擬的網上交流環(huán)境。為方便大家的溝通交流,豐富人們的娛樂文化生活。在論文的篇章上,本論文從系統(tǒng)分析,系統(tǒng)整體設計,數據庫設計與現實幾個方面對系統(tǒng)的開發(fā)過程作了詳細的介紹,旨在全面地呈現系統(tǒng)由最初設計到最終定型的各個階段,便于大家對系統(tǒng)有一個更好的把握和認識。各個功能版塊的展示也包含在其中,能過直觀地看到系統(tǒng)運行后的演示效果,其中夾雜著部分主要代碼的輔助說明,便于從底層查看系統(tǒng)的最終實現。關鍵詞:動態(tài)服務網頁;論壇;用戶管理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)技術及運行環(huán)境 PAGEREF _Toc24869 1 HYPERLINK l _Toc23732 1.1 JSP技術簡介 PAGEREF _Toc23732 1 HYPERLINK

6、l _Toc2133 1.2 JAVABEAN技術簡介 PAGEREF _Toc2133 1 HYPERLINK l _Toc21879 1.3 JDBC技術簡介 PAGEREF _Toc21879 2 HYPERLINK l _Toc15663 1.4 TOMCAT技術簡介 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 任務目標 PAGEREF _Toc26191 4 HYPERLINK l _Toc1504 2.2.1基本性能 PAGEREF _Toc1504 4 HYPERLINK l _Toc20820 2.2.2開發(fā)目標 PAGEREF _Toc20820 4 HYPERLINK l _Toc24945 2.2.3 應用目標 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)設計 PAGEREF _Toc15518 7 HYPERLINK l _Toc22912 3.1系統(tǒng)設計思想 PAGEREF _Toc22912 7 HYPERLINK l _Toc25498 3.1.1 網上論壇系統(tǒng)說明 PAGEREF _Toc25498 7 HYPERLINK l _Toc4285 3.1.2 網上論壇系統(tǒng)總體分析 PAGEREF _Toc4285 8 HYPERL

9、INK l _Toc7664 3.2 數據庫設計思想 PAGEREF _Toc7664 8 HYPERLINK l _Toc5041 3.3 各單元模塊設計 PAGEREF _Toc5041 10 HYPERLINK l _Toc2258 3.3.1用戶注冊登陸功能 PAGEREF _Toc2258 10 HYPERLINK l _Toc23280 3.3.2會員發(fā)貼與回復功能 PAGEREF _Toc23280 11 HYPERLINK l _Toc29190 3.3.3管理員管理帖子與用戶管理功能 PAGEREF _Toc29190 13 HYPERLINK l _Toc24225 4 編

10、碼實現 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各個功能模塊的實現 PAGEREF _Toc4674 15 HYPERLINK l _Toc29460 4.2.1數據庫的連接 PAGEREF _Toc29460 15 HYP

11、ERLINK l _Toc208 4.2.2用戶登陸與注冊模塊的實現 PAGEREF _Toc208 16 HYPERLINK l _Toc3830 4.2.3分頁顯示的功能實現 PAGEREF _Toc3830 21 HYPERLINK l _Toc9887 4.2.4 發(fā)表與回復功能模塊實現 PAGEREF _Toc9887 22 HYPERLINK l _Toc8388 4.2.5后臺管理模塊的實現 PAGEREF _Toc8388 25 HYPERLINK l _Toc6313 5 系統(tǒng)測試 PAGEREF _Toc6313 28 HYPERLINK l _Toc16623 總 結 P

12、AGEREF _Toc16623 29 致謝30 HYPERLINK l _Toc3951 參考文獻 PAGEREF _Toc3951 31 基于JSP的BBS論壇管理系統(tǒng) 1 系統(tǒng)技術及運行環(huán)境1.1 JSP技術簡介JSP是服務器端的腳本語言,是以SERVLET為基礎開發(fā)而生成的動態(tài)網頁生成技術,它的底層實現是JAVA SERVLET。JSP(JAVA SERVER PAGES)由HTML代碼和潛入其中的JAVA代碼所組成。服務器在頁面被客戶端請求后對這些代碼進行處理,然后將生產的HTML頁面返回客戶端的瀏覽器。JSP的特點是面向對象、 跨平臺、 和SERVLET一樣穩(wěn)定、 可以使用SERV

13、LET提供的API,同時克服了SERVLET的缺點。在使用JSP時一般和JAVABEANS結合使用,從而將界面表現和業(yè)務邏輯分離。1.2 JAVABEAN技術簡介JAVABEAN是基于JAVA的組建模型,有點類似于MICROSOFT的COM組建。在JAVA平臺中,可以無限擴充JAVA程序的功能,通過JAVABEAN的組合可以生產新的應用程序。對于程序員來說,最好的一點就是JAVABEAN可以實現代碼的重復利用,另外對于程序的易維護性等也有很重大的意義。JAVABEAN 通過JAVA虛擬機(JAVA VIRTUAL MACHINE)執(zhí)行,運行JAVABEAN最小的需求是JDK1.1或者以上的版本

14、。JAVABEAN傳統(tǒng)的應用在于可視化的領域,如AWT下的應用。自從JSP誕生后,JAVABEAN更多的應用在了非可視化領域,在服務器端應用方面表現出越來越強的生命力。1.3 JDBC技術簡介JDBC是一組API,定義用來訪問數據庫源的標準JAVA類庫,使用這種類庫可以使用一種標準的方法、方便地訪問數據庫資源。JDBC的目標是使應用程序開發(fā)人員使用JDBC可以連接任何提供JDBC驅動程序的數據庫系統(tǒng),這樣就使得程序員無須對特定的數據庫的特點有過多了解,從而大大簡化了和加快了開發(fā)過程。JDBC API 為訪問不同的數據庫提供了一種統(tǒng)一途徑,像ODBC一樣,JDBC為開發(fā)者屏蔽了一些細節(jié)問題。另外

15、,JDBC對數據庫的訪問也具有平臺無關性。1.4 TOMCAT技術簡介在已JAVA技術為的WEB開發(fā)領域中,TAMCAT是許多JAVA程序員相當喜愛的開放源代碼產品,附屬在APACHE SOFTWARE FOUNDATION 所主導的JAKART項目內。由于TAMCT是SERVLET與JSP技術的參考實現(REFERNCE IMPLEMENTATION),所以它不但可以當作獨立的WEB服務器,也可以結合其它的WEB服務器,只擔任SERVLET容器或JSP容器的角色。1.5運行環(huán)境為了保證BBS論壇管理系統(tǒng)運行的高效性和可靠性,服務器應具有較高的軟硬件配置,客戶端的要求不是很高。此應用程序可廣泛

16、運行于國際互聯網即Internet,也可適用于內部的局域網。其運行要求如下:軟件環(huán)境:客戶端: Windows95/98/2000/XP,Internet Explorer(IE)等。服務器端:Windows NT/Windows2000,Tomcat 5.0,JDK 1.5及其以上版本,IE等;數據庫:采用MYSQL,運行于服務器端。硬件環(huán)境:服務器 CPU:PIII 500以上 ,內存:512M以上??蛻魴C CPU:P200MMX以上,內存:32M以上。 2 需求分析2.1 編寫目的當今網絡技術逐漸滲入社會生活各個層面,以前網站上的論壇管理系統(tǒng)要用戶登陸以后才能進行訪問及互動。而隨著網絡互

17、聯技術的進步,現在網站投票需打開網頁就可進行論壇留言。論壇對象是很多的,各個層次都可進行論壇訪問,大到國家領導,小到一個普通干部,訪問和留言從到指定用戶進行表格到現在通過網絡直接點擊相應就可進行。網上論壇管理系統(tǒng)可解決游客訪問和留言,致使現在幾乎各個網站都有各種類型網站論壇管理系統(tǒng),用戶可選擇自己的看法。所以我提出了本課題的研究。2.2 任務目標2.2.1基本性能系統(tǒng)包括主要的功能:新用戶注冊,會員登錄,管理員刪除用戶,管理員刪除帖子和修改帖子,查詢主題,和查詢用戶這些功能,游客瀏覽留言,會員新增主題,會員留言回復,查詢主題這些功能,可以滿足一般的用戶需要。2.2.2開發(fā)目標這個系統(tǒng)預期的目的

18、是為了做成交互式的網頁,方便客戶端和瀏覽器端之間的交流。通過論壇,人們能夠相互交流溝通,把疑惑在論壇里公布,大家獻計獻策,共同學習,共同進步。2.2.3 應用目標網上論壇系統(tǒng)是一個會員登錄留言系統(tǒng)。網上游客能夠瀏覽論壇上的帖子,并且能夠注冊成為用戶。論壇注冊會員能夠發(fā)表帖子,讓大家積極參與討論。論壇管理員能夠便于管理論壇,包括瀏覽游客留言,審核留言,對于不健康或是不利于社會穩(wěn)定的留言能進行刪除操作。2.3選擇編程語言2.3.1 JSP與ASP的比較總的來講Java Server Page(JSP)技術和Microsoft 公司提供的Active Server Pages(ASP)技術在技術方面

19、有許多相似點:兩者都是基于WEB應用實現動態(tài)交互網頁制作提供技術環(huán)境支持。兩者能為程序開發(fā)人員提供實現應用程序的編制與自帶組建設計網頁從邏輯上分離的技術。而且兩者能替代CGI使網站建設與發(fā)展變得較為簡單與快捷。1).相同之處 都是運行于服務器端的腳本語言,兩者都是動態(tài)網頁生成技術,這兩項技術都是由HTML來決定網頁的版面,都是在HTML代碼中混合的某種代碼,有語言引擎解釋執(zhí)行程序代碼。HTML主要負責描述信息的顯示樣式,而程序代碼用來描述處理邏輯。2).不同之處JSP是由SUN公司推出的一項技術,是基于JavaServlet 以及整個JAVA體系的WEB開發(fā)技術,利用這項技術可以建立先進、安全

20、和跨平臺動態(tài)網站。ASP是MS公司推出技術只能在MS的平臺上運行,無法實現跨平臺,也無安全性保障。ASP下的編輯語言是VBScript 之類的腳本語言,而JSP使用的是JAVA。ASP與JSP還有一個更為本質的區(qū)別:兩種語言引擎用完全不一樣的方式來處理面中潛入的程序代碼。在ASP下,VBScript代碼被ASP引擎解釋執(zhí)行。在JSP中,代碼被編譯生產Servlet并有JAVA虛禮機執(zhí)行,這種也僅在對JSP的第一次請求時發(fā)生。2.3.2 JSP的特點與優(yōu)點綜合而言,JSP技術具有下面的特點:1)write once run anywhereJSP技術繼承了JAVA先天性的先進概念“write o

21、nce run anywhere”這種概念正越來越深影響著互連網行業(yè)的交互式、WEB設計的理念。JSP Pages 可以非常容易的開平臺跨WEB服務器軟件來設計和開放源代碼。2)支持多種動態(tài)網頁格式目前對使用JSP技術設計出來的網頁應該采取什么樣的格式還沒有一個明確標準。一般來說JSP技術可以支持HTML/DHTML的傳統(tǒng)瀏覽器文件格式,也可以支持應用與無線通訊設備例如移動電話、PDA等設備進行網頁瀏覽器的VML文件格式,還可以支持其它一些B2B應用的XML格式。和以往的其它WEB應用技術相比較JSP技術有它很鮮明的特點。3)JSP 標簽可擴沖性 盡管JSP與ASP都使用標簽與腳本技術來制造動

22、態(tài)WEB網頁,但JSP技術能夠使開發(fā)者擴展JSP標簽,使得應用JSP的開發(fā)者定制標簽庫所以網頁制作者可以充分利用與XML兼容的標簽技術,從而大大減少了對腳本語言的依賴。由于指定標簽庫技術使得網頁制作者降低了制作網頁和多個網頁擴充關鍵功能的復雜程度。4)JSP跨平臺的可重用性JSP的開發(fā)人員在開發(fā)過程中一直關注可重用性,JSP足見、企業(yè)JavaBean或制定的標簽都是跨平臺可重用的。企業(yè)JavaBean可以訪問傳統(tǒng)的數據庫并能并能已分布式系統(tǒng)模式工作于UNIX和WINDOWS平臺,JSP標簽可擴充功能為開發(fā)人員提供簡便的與XML兼容的接口,即共享網頁的打包功使其完全的工業(yè)標準化。這種基于組建的模

23、式能夠有效提高應用程序的開發(fā)效率。因為這種模式能夠使開發(fā)人員利用快捷的子組建快速創(chuàng)建模板應用程序。然后再整和一些附加功能將其打包成一個JAVABEAN組建。5)易于維護性基于JSP技術的應用程序比基于ASP的應用程序更易維護和管理。腳本語言都很好服務于小的應用程序但不能適宜大型的復雜的應用程序,因為JAVA是結構化的,它比較容易創(chuàng)建和維護龐大的組建化的應用程序。 3系統(tǒng)設計3.1系統(tǒng)設計思想3.1.1 網上論壇系統(tǒng)說明此網上論壇中三種不同角色游客、注冊用戶管理員分別可現: 游 客:查看帖子、注冊新用戶。 注冊用戶:查看帖子、發(fā)新帖子、回復信息、查詢主帖。 管理員:帖子管理、用戶管理、數據庫管理

24、。3.1.2 網上論壇系統(tǒng)總體分析通過上面的功能說明,我們可以將論壇的制作分為四大部分:(1) 會員注冊和登陸模塊:這個模塊的功能,就是新來網友可以填寫注冊資料 ,通過審核后便成為本論壇的正式會員,并可以以會員身份登陸論壇。(2) 文章顯示模塊:顯示所有會員最新發(fā)表的一些文章主題。(3) 發(fā)表文章模塊:為會員提供發(fā)表文章的地方,以及回復主題等。(4) 論壇與用戶管理模塊:版主以上職務可以進行對文章和用戶進行處理,查詢,修改,刪除等。了解了具體的功能需求后,就可以按模塊開始論壇的設計。當然,這些模塊只是在功能上對論壇結構的劃分,實際上并不能夠完全的把他們獨立出來進行設計。對于這種較小的應用,也沒

25、有必要進行完全的模塊化設計,在良好的規(guī)劃下直接寫程序代碼或許來的更為簡單一些。3.2 數據庫設計思想在建設網站系統(tǒng)之前,我們必須對系統(tǒng)所用到的數據進行大致分類和具體結構設計,既要做到清晰明了,又要能適應系統(tǒng)各項功能的調用,而不至于產生結構上的邏輯混亂,保證關鍵數據在意外情況下不會被破壞,可以說數據庫是系統(tǒng)的重中之重。數據庫設計要遵循一些規(guī)則,一個好的數據庫滿足一些嚴格的約束和要求。盡量分離各實體對應的表,一個實體對應一個表,分析該實體有哪些屬性,對應有些什么字段,以及各實體之間的聯系。實體、屬性與聯系是進行概念設計時要考慮的三個元素,也是一個好的數據庫設計的核心。從實際出發(fā),經過仔細地設計,得

26、到各表的設計如表3.13.3所示。 表3.1 帖子信息表article字段字段名類型寬度小數位索引可否為空id編號Aotu_increment一一是否pid父親編號INT11一一否Rootid孩子編號INT11一一否Title標題varchar50一一一Writer作者varchar20一一一cont內容varchar250一一一pdate發(fā)貼日期日期型一一一一表3.2 用戶信息表user字段字段名類型寬度小數位索引可否為空id會員編號Aotu_increment一一是一name 會員姓名varchar32一一一password會員密碼varchar14一一否sex會員性別varchar2一一

27、否email會員郵箱varchar20一一一表3.3管理員信息表adminuse字段字段名類型寬度小數位索引可否為空id會員編號Aotu_increment一一是一name 會員姓名varchar32一一一password會員密碼varchar14一一否3.3 各單元模塊設計3.3.1用戶注冊登陸功能此部分是實現用戶的注冊功能。通過填寫注冊資料,正確填寫后,點擊注冊按鈕后便可注冊成為正式的會員。如圖3.1所示: 圖3.1新用戶注冊用戶資料填寫正確就可以注冊了。而且對其用正則表達式做了一些限制。用戶名只能是3-12位單字字符,而且不允許注冊重復的用戶名。性別只能選擇男或女其中一個。密碼最多不能超

28、過12位,兩次密碼必須輸入一致,否則不可以注冊。E-mail必須輸入有效的郵箱地址,以便日后能使用到論文的各種功能。只要用戶按照出現提示信息輸入進去就可以了。用戶注冊成功后就可以使用會員所擁有的一切功能了。3.3.2會員發(fā)貼與回復功能此部分實現會員的發(fā)表新帖以及回帖等功能。發(fā)表帖子會員只針對會員開放,如果想發(fā)表新的主題,必須登陸如果沒有賬號必須注冊以后便可直接點擊發(fā)表帖子按鈕。進到發(fā)表帖子頁面后,首先要寫自己想發(fā)表的主題,然后填寫作者和正文。如果沒有登陸直接點擊發(fā)表主題,則會直接跳到用戶登陸頁面。發(fā)表主題如圖3.2所示:圖3.2 發(fā)表新貼回復主題界面 如圖 3.3所示:圖3.3 回復主題發(fā)表成

29、功回到顯示主題頁面 再點擊主題會看到主題貼的相關內容和回復內容。回復帖子只針對會員開放,游客不可以回復主題。回復內容比較全面,可有表情,也可以設置字體大小顏色,段落格式等。如果沒有登陸直接點擊回復則直接跳轉到登陸頁面。3.3.3管理員管理帖子與用戶管理功能 此部分主要是管理員對論壇的帖子和會員進行綜合管理,刪除、編輯、查詢、等等。普通會員是不可以進行此操作的。管理員登陸界面如圖3.4所示:圖3.4 管理員登陸首先用session判斷管理員是否登陸,如果沒有登陸直接在瀏覽器里面輸入管理界面的地址則不能對其內容進行操作。這樣保證了數據的安全性。管理員登陸以后可以對有些文章內容有地方不足時,可以對其

30、進行編輯修改,當然對于不好的帖子或者就是灌水的帖子,嚴重的可以直接刪除了。帖子都是按照發(fā)表時間和回復時間排列的,時間最新的帖子則排在最前面,時間越舊的就越靠后面。如果登陸成功則進入管理員管理頁面,如圖3.5所示:圖 3.5 后臺管理 4 編碼實現4.1 功能總體說明4.1.1 功能總體說明(1)前臺功能頁面登陸與注冊:register.jsp、uselogin.jsp、reg_failure.jsp、log_failure.jsp帖子展示:articleFlat.jsp 、articleDetailFlat.jsp發(fā)表主題帖:post.jsp回復: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ā)表新帖回復帖子

32、搜索主帖刪除帖子修改帖子主帖查詢會員刪除會員查詢刪除帖子修改帖子主帖查詢會員刪除會員查詢圖 4.1 主要功能流程圖4.2.1數據庫的連接出于安全性的考慮,我們將與數據庫的連接,單獨寫出來并進行編譯,也就是數據庫連接的javabean文件,編譯出來的.class文件是無法被修改的只能通過源文件進行修改,我們在JSP頁面中只用直接調用該方法即可,在本系統(tǒng)中我們將其命名為DBConMgr.java關鍵代碼如下:表4.1 數據庫的連接import java.sql.*;public class DBConMgr private String driverName=com.mysql.jdbc.Driv

33、er; /驅動程序名private String userName=root; /數據庫用戶名private String userPwd=123456; /密碼private String url= jdbc:mysql:/localhost:3306/bbs; /連接字符串private Connection conn=null; /數據庫連接對象public Statement sm=null; /數據庫語句對象 public void ConnectDB() try Class.forName( driverName); conn = DriverManager.getConnecti

34、on(url, userName , userPwd); sm=conn.createStatement(); System.out.println(數據庫連接成功!); catch(Exception e) e.printStackTrace(); System.out.println(數據庫連接失敗!); public void CloseDB() try if (sm != null) sm.close();conn.close(); catch (SQLException SqlE) SqlE.printStackTrace(); System.out.println(數據庫關閉失??!

35、); 4.2.2用戶登陸與注冊模塊的實現用戶登陸模塊是防止非法用戶登陸的第一道防線,通過它可以保護后臺數據庫的安全性,當用戶要進行發(fā)貼或回復時,首先要進入的就是身份驗證界面,只有在密碼正確的情況下才能進行以后的操作,如果輸入的密碼不正確,則不能進行發(fā)表新帖和回復。如果用戶以瀏覽者的身份進入網站,則只能進行一般的帖子瀏覽和搜索,而不能發(fā)表新帖和回復,在點擊發(fā)表新帖后,系統(tǒng)會判斷該用戶是否是登陸用戶,如果不是則進入登陸頁面,如果是第一次登陸,請先注冊。登陸的具體實現要通過一個全程變量,即Session變量來實現,用戶登錄的界面userlogin.jsp,從user表查得用戶提交的帳戶名和密碼正確后

36、,用一個全局變量,即Session變量保存這一消息該變量稱為session.setAttribute(uLogined, true);。具體的判斷過程為:表4.2用戶登陸代碼實現 boolean ulog = false; /判斷用戶是否登陸String u = (String)session.getAttribute(uLogined);if (u != null & u.trim().equals(true) ulog = true;若ulog為false,表明沒有經過登陸與否的驗證,則只能已游客的生份瀏覽和搜索帖子如果想留言和發(fā)表帖子,只有登錄或注冊用戶才可以。若ulog為true則表名

37、用戶已經登陸,而且可以用session得到用戶名(String)session.getAttribute(name),顯示在主頁上。如果用戶還不是會員則提示用戶進行注冊,用戶提交信息之后,系統(tǒng)開始判斷用戶的注冊信息是否有效,首先是用戶名是否為空,用戶輸入的兩次密碼是否一致,然后依次往后判斷用戶所填寫的各項信息是否符合要求,直到所有信息均正確無誤,系統(tǒng)將該用戶注冊信息寫入會員表即user表,并提示用戶注冊成功。就可以進行其它有效的操作了。系統(tǒng)對用戶的注冊信息的驗證實現如下:首先是用正則表達式對表單的控制表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();/填寫的內容都符合那么就會提交 表4.4 用戶注冊代碼實現4.2.3分頁顯示的功能實現這里是分

40、頁功能的實現,這里把每頁幾條記錄設為一個常量便于修改。表4.5 分頁顯示代碼實現%final int PAGE_SIZE = 4; / 每頁幾條記錄int pageNo = 1;String strPageNo = request.getParameter(pageNo);/當前頁if (strPageNo != null & !strPageNo.trim().equals() try pageNo = Integer.parseInt(strPageNo); catch (NumberFormatException e) pageNo = 1; /異常處理如果當前為空pageNo = 1i

41、f (pageNo = 0)/如果小于0 pageNo = 1pageNo = 1;int totalPages = 0;/總頁數List articles = new ArrayList();/定義一個數組鏈表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);/總記錄數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);/加如數組鏈表articlesDB.close(rsCount);DB.close(stmtCount);DB.close(rs);DB.close(stmt);DB.close(conn);%4.2.4 發(fā)表與回復功能模塊實現點擊

44、發(fā)表主題進入post.jsp,填寫標題、作者與內容提交到自身頁面表4.6 發(fā)表帖子功能代碼實現標題作者: 內容:input type=submit value=submit /回復功能關鍵代碼表 4.7 回復功能實現這里是javscript實現五秒之后自動跳轉表4.8 Javascript 實現延遲跳轉span id=time style=background:red5秒鐘后自動跳轉,如果不跳轉,請點擊下面鏈接 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);/回復成功跳轉到主頁面4.2.5后臺管理模塊的實現網上論壇系統(tǒng)除了能夠讓用戶實現前臺的瀏覽和回復等操作之外,還必須能夠使管理人員能夠對系統(tǒng)的各種信息進行維護,比如帖子的增加、刪除、修改,會員的搜索,刪除等等。管理功能是網上論壇系統(tǒng)相當重要的一部分功能。管理員可以通過主頁面進入系統(tǒng)后臺進行維護,點擊之后,首要的就是進行身份驗證,輸入正確的賬號,密碼之后,方能進入。出于安全性考慮,管理員賬號應盡量少分配,密碼

46、也要盡量復雜,經常更換。進入之后系統(tǒng)管理的主頁面采用了框架結構,左邊是一個菜單,右邊顯示具體信息。管理的主要功能有帖子的查詢、更新,刪除等,用戶管理,主要就是查詢用戶,刪除用戶。這一部分的實現也沒有新的方法,使用的依然是一些SQL語句來對相關數據進行查詢和刪除,修改。網上論壇作為一個在網上交流思想的論壇系統(tǒng),如何能讓用戶以最快的速度找到自己希望看到的帖子,也是需要非常重視的一個問題,此時搜索引擎也就必不可少了。本論壇系統(tǒng)也做了一個小模塊,以供用戶進行一些模糊查找,用戶不必輸入全部名稱,只需輸入一些關鍵詞,系統(tǒng)就可以將符合該查詢條件的所有帖子信息以網頁形式返回給用戶。該搜索功能在JSP頁面中實現

47、的關鍵代碼為:表4.9搜索功能代碼實現Connection conn = DB.getConn();Statement stmtCount = DB.createStmt(conn);String sqlCount = select count(*) from article where title like % + keyword + % ;/得到符合條件的總記錄數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 ;修改功能實現的關鍵代碼為:表4.10修改功能代碼實現刪除功能實現的關鍵代碼為表4.11刪除功能代碼實現%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)完成之后,對各個模塊的功能進行了詳細的測試,輸入數據和預測輸出數據相比,發(fā)現了一些問題。主要是在查詢過程中預計查詢結果和實際結果不一致,有時候達不到目的,對數據庫的操作表之間的關聯考慮得不夠周到,因此往往會出現一些小的錯誤。需要靠一步步的查找解決。各個模塊組裝完成后,又會出現一些問題。所以很容易造成數據混亂,必須對相應的數據關系理清楚,一些關鍵查詢統(tǒng)計的SQL語句必須反復斟酌才能放在程序中使用。 先注冊一個用戶名為USER的用戶(先前數據庫中無此用戶名的),注冊成功后,再注冊一個用戶名為USER的用戶,預期結果應該

52、是系統(tǒng)提示該用戶名已經存在。填寫完整的資料后點擊注冊,此時系統(tǒng)按照預期結果提示該用戶名已經被注冊了。測試結果,系統(tǒng)正常按照設計模式運行。將用戶名改為:幾個空格然后其他的不變提交之后我們會發(fā)現系統(tǒng)返回成功頁面,但問題是用戶名什么也沒有,空格也被作為合法的用戶名,這在實際應用中是不允許的,我們需要對其命名規(guī)則進行定義,具體修改請參看前面正則表達式對表單的控制。同樣的郵箱也存在規(guī)則未定義的問題,需要對其加以定義。在測試過程中,我經過測試,排除了系統(tǒng)的大部分錯誤。當然排除所有錯誤是不太可能的,我想應該還有些不易檢測到的錯誤還沒有被發(fā)現,需要在使用的過程中進一步的完善,數據庫的加密是一個重要的概念,在實際的應用過程中是一個尚待解決的問題,應該做好數據庫的完善工作,特別是備份和安全工作;另一方面由于時間倉促難免有錯誤和不完善的地方,希望老師能夠幫我指點和糾正。 總結完成這次設計任務總共用了六個星期時間,前三個星期用來收集資料、學習要用到的各項開發(fā)技術、進行論壇的系統(tǒng)分析,中間兩個星期用來設計系統(tǒng),后一個星期用來測試及修改。論文的撰寫一直貫穿其中。通過這次畢業(yè)設計,我從中學到了許多新的

溫馨提示

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

評論

0/150

提交評論