論文 基于Java的論壇管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁
論文 基于Java的論壇管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第2頁
論文 基于Java的論壇管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第3頁
論文 基于Java的論壇管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第4頁
論文 基于Java的論壇管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

摘要本課題是基于Java的論壇管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)。該論壇的骨干框架使用動(dòng)態(tài)服務(wù)網(wǎng)頁(JSP)技術(shù)建設(shè)論壇,系統(tǒng)數(shù)據(jù)庫使用ACCESS2003。該論壇的主要內(nèi)容:用戶注冊、會(huì)員注冊、會(huì)員發(fā)帖、版主管理、管理員管理。該論壇功能較齊全,在這里可以自由地發(fā)表自己的觀點(diǎn)和對(duì)論壇的主題發(fā)表意見,我們還可以對(duì)網(wǎng)友的問題及時(shí)地解決,獲取對(duì)自己有用的知識(shí)。該論壇還有一些特殊的功能,如在線人員顯示、強(qiáng)大的搜索功能。關(guān)鍵詞:論壇,動(dòng)態(tài)服務(wù)網(wǎng)頁,數(shù)據(jù)庫AbstractThetaskisaforummanagementsystem,itisbasedonjavadesignandimplementationoftheframeworkoftheForumbackboneservicesusingdynamicpage(JSP)technologiesinbuildingtheforum,usingthedatabasesystemACCESS2003.TheForum’smainelements:userregistration,postmembers,moderatorsmanagement,administratortomanage.Thisforumfunctioniscomplete,mayfreelyexpressownviewpointinhereandexpresstheopiniontotheforumsubject,wealsomaypromptlysolvetonetfriend'squestion,gaintotheoneselfusefulknowledge.Thisforumalsohassomespecialfunctions,liketheon-linepersonneldemonstrates,theformidablesearchfunction.Keywords:BBS,ActiveServerPages,Database目錄摘要 IAbstract II第1章緒論 11.1概述 11.2系統(tǒng)背景與現(xiàn)狀 2第2章開發(fā)環(huán)境和開發(fā)工具介紹 32.1JSP技術(shù)介紹 32.2Javabean介紹 42.2Access2003介紹 52.3Tomcat介紹 62.4運(yùn)行環(huán)境 8第3章需求分析 93.1編寫目的 93.2任務(wù)目標(biāo) 9第4章系統(tǒng)總體設(shè)計(jì) 104.1系統(tǒng)設(shè)計(jì)思想 104.1.1網(wǎng)上論壇系統(tǒng)說明 104.1.2網(wǎng)上論壇系統(tǒng)總體分析 104.2數(shù)據(jù)庫設(shè)計(jì)思想 104.2.1數(shù)據(jù)庫的選擇 104.2.2數(shù)據(jù)庫設(shè)計(jì) 11第5章詳細(xì)設(shè)計(jì) 125.1用戶注冊功能 125.1.1操作流程圖 125.1.2人機(jī)界面 135.2會(huì)員發(fā)帖功能 135.2.1操作流程圖 135.2.2人機(jī)界面 145.3版主管理帖子功能 155.3.1操作流程圖 155.3.2人機(jī)界面 165.4管理員管理論壇功能 175.4.1操作流程圖 175.4.2人機(jī)界面 18第6章系統(tǒng)的維護(hù)設(shè)計(jì) 196.1安全設(shè)計(jì) 196.2容錯(cuò)性設(shè)計(jì) 19第7章結(jié)束語 20致謝 21參考文獻(xiàn) 22附錄主要程序代碼 23第1章緒論1.1概述Internet是目前世界上最大的計(jì)算機(jī)互聯(lián)網(wǎng)絡(luò),它遍布全球,將世界各地各種規(guī)模的網(wǎng)絡(luò)連接成一個(gè)整體。作為Internet上一種先進(jìn)的,易于被人們所接受的信息檢索手段,WorldWideWeb(簡稱WWW)發(fā)展十分迅速,成為目前世界上最大的信息資源寶庫。據(jù)估計(jì),目前Internet上已有上百萬個(gè)Web站點(diǎn),其內(nèi)容范圍跨越了教育科研、文化事業(yè)、金融、商業(yè)、新聞出版、娛樂、體育等各個(gè)領(lǐng)域,其用戶群十分龐大,因此,建設(shè)一個(gè)好的Web站點(diǎn)對(duì)于一個(gè)機(jī)構(gòu)的發(fā)展十分重要。近年來,隨著網(wǎng)絡(luò)用戶要求的不斷提高及計(jì)算機(jī)科學(xué)的迅速發(fā)展,特別是數(shù)據(jù)庫技術(shù)在Internet中的廣泛應(yīng)用,Web站點(diǎn)向用戶提供的服務(wù)將越來越豐富,越來越人性化。我們發(fā)現(xiàn)這樣一個(gè)事實(shí),一個(gè)用戶在訪問一個(gè)網(wǎng)站時(shí)一般來講只對(duì)該網(wǎng)站的部分內(nèi)容感性趣,而且這種興趣會(huì)持續(xù)一段時(shí)間。這點(diǎn)啟發(fā)了我們,如果能根據(jù)用戶的喜好為不同的用戶顯示其個(gè)性化的頁面,即著重顯示該用戶感興趣的內(nèi)容,將為用戶節(jié)約大量的檢索時(shí)間,而且這樣的網(wǎng)頁顯然是更具有吸引力的。一些站點(diǎn)已經(jīng)在這方面作出了一定的嘗試,通常采用的方法是,在用戶登陸時(shí)為其提供一系列的選項(xiàng),使用戶能夠?qū)φ军c(diǎn)進(jìn)行一些自主的設(shè)置。這樣做能夠使站點(diǎn)呈現(xiàn)一定程度的個(gè)性化,但是對(duì)用戶來講,還是比較煩瑣,而且在用戶了解一個(gè)站點(diǎn)前讓其對(duì)站點(diǎn)進(jìn)行設(shè)置,其結(jié)果未免有些粗糙。于是我們構(gòu)想了這樣一種方案,對(duì)用戶登陸后的動(dòng)作進(jìn)行跟蹤,分析,發(fā)掘用戶點(diǎn)擊的規(guī)律,即用戶先后點(diǎn)擊的關(guān)聯(lián)規(guī)則,這樣,在用戶點(diǎn)擊一個(gè)主題(鏈接)之后,系統(tǒng)能夠自動(dòng)生成一頁面,其中包含了該主題下用戶經(jīng)常關(guān)注的內(nèi)容(若干鏈接),這樣便在無須用戶作出任何額外工作的情況下實(shí)現(xiàn)了為用戶量身訂做的個(gè)性化頁面。要實(shí)現(xiàn)這樣的功能,離不開后臺(tái)數(shù)據(jù)庫的支持。用戶驗(yàn)證信息,收集到的用戶點(diǎn)擊信息,主題層次信息,分析得出的關(guān)聯(lián)規(guī)則表等大量的數(shù)據(jù)都由數(shù)據(jù)庫管理系統(tǒng)管理。本文中數(shù)據(jù)庫服務(wù)器端采用了MicrosoftAccess數(shù)據(jù)庫作為ODBC(OpenDataBaseConnectivity)數(shù)據(jù)源,使Web與數(shù)據(jù)庫緊密聯(lián)系起來。本文作者主要完成Web服務(wù)器端的用戶管理、帖子管理、版面管理、數(shù)據(jù)庫管理、瀏覽和查找功能等設(shè)計(jì)、實(shí)現(xiàn)與完善工作。1.2系統(tǒng)背景與現(xiàn)狀BBS起源于20世紀(jì)80年代初。最初論壇只是用于發(fā)布公告信息,討論問題。后來隨著網(wǎng)絡(luò)的普及,論壇的功能越來越豐富,受到廣大網(wǎng)民的喜歡。因此,學(xué)校的網(wǎng)站建設(shè)對(duì)論壇也重視起來,許多的學(xué)校也紛紛在自己的網(wǎng)站上開辟論壇,作為師生之間交流的園地。同時(shí)在線支持和在線服務(wù)也在論壇中開展起來。目前,網(wǎng)絡(luò)應(yīng)用軟件運(yùn)行的模式主要有二類:Client/server模式和Browser/Web模式。前者主要的缺點(diǎn)是維護(hù)、升級(jí)較麻煩,后者是近幾年伴隨Internet迅速發(fā)展起來的一種技術(shù),它與客戶/服務(wù)器方式類似,客戶端是一個(gè)標(biāo)準(zhǔn)的瀏覽器,服務(wù)器端是WebServer,而WebServer與數(shù)據(jù)庫和應(yīng)用服務(wù)器的緊密結(jié)合,使得這種模式的應(yīng)用范圍不斷擴(kuò)大,它已不僅僅用于網(wǎng)上查詢,有很多部門的業(yè)務(wù)系統(tǒng)、企業(yè)的MIS系統(tǒng)紛紛采用這種模式,它的主要優(yōu)點(diǎn)是便于擴(kuò)充應(yīng)用、升級(jí)維護(hù)簡便?;谏鲜隹紤],用Browser/Web模式來設(shè)計(jì)論壇管理系統(tǒng)比較合適,服務(wù)器端我采用Access數(shù)據(jù)庫系統(tǒng)和JSP組件來構(gòu)成考試的應(yīng)用服務(wù)系統(tǒng);客戶端采用瀏覽器來完成考試全過程,同時(shí)可進(jìn)行遠(yuǎn)程系統(tǒng)維護(hù)和管理。第2章開發(fā)環(huán)境和開發(fā)工具介紹該論壇管理系統(tǒng)主要采用JSP、HTML、Access數(shù)據(jù)庫、Javabean、tomcat等技術(shù)和工具,整體設(shè)計(jì)遵循軟件工程的方法,經(jīng)過需求分析、總體設(shè)計(jì)、文檔和代碼的編制、模塊測試和系統(tǒng)實(shí)現(xiàn)幾個(gè)階段。下面就對(duì)這幾種技術(shù)和方法做一個(gè)概述2.1JSP技術(shù)介紹在Sun正式發(fā)布JSP(JavaServerPages)之后,這種新的Web應(yīng)用開發(fā)技術(shù)很快引起了人們的關(guān)注。JSP為創(chuàng)建高度動(dòng)態(tài)的Web應(yīng)用提供了一個(gè)獨(dú)特的開發(fā)環(huán)境。按照Sun的說法,JSP能夠適應(yīng)市場上包括ApacheWebServer、IIS4.0在內(nèi)的85%的服務(wù)器產(chǎn)品。即使您對(duì)ASP"一往情深",我們認(rèn)為,關(guān)注JSP的發(fā)展仍舊很有必要。(1)JSP與ASP的簡單比較:JSP與Microsoft的ASP技術(shù)非常相似。兩者都提供在HTML代碼中混合某種程序代碼、由語言引擎解釋執(zhí)行程序代碼的能力。在ASP或JSP環(huán)境下,HTML代碼主要負(fù)責(zé)描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的HTML頁面只依賴于Web服務(wù)器,而ASP和JSP頁面需要附加的語言引擎分析和執(zhí)行程序代碼。程序代碼的執(zhí)行結(jié)果被重新嵌入到HTML代碼中,然后一起發(fā)送給瀏覽器。ASP和JSP都是面向Web服務(wù)器的技術(shù),客戶端瀏覽器不需要任何附加的軟件支持。ASP的編程語言是VBScript之類的腳本語言,JSP使用的是Java,這是兩者最明顯的區(qū)別。此外,ASP與JSP還有一個(gè)更為本質(zhì)的區(qū)別:兩種語言引擎用完全不同的方式處理頁面中嵌入的程序代碼。在ASP下,VBScript代碼被ASP引擎解釋執(zhí)行;在JSP下,代碼被編譯成Servlet并由Java虛擬機(jī)執(zhí)行,這種編譯操作僅在對(duì)JSP頁面的第一次請(qǐng)求時(shí)發(fā)生;(2)運(yùn)行環(huán)境:sun公司的JSP頁://javasoft/products/jsp/index.html,從這里還可以下載JSP規(guī)范,這些規(guī)范定義了供應(yīng)商在創(chuàng)建JSP引擎時(shí)所必須遵從的一些規(guī)則。執(zhí)行JSP代碼需要在服務(wù)器上安裝JSP引擎。此處我們使用的是Sun的JavaServerWebDevelopmentKit(JSWDK)。為便于學(xué)習(xí),這個(gè)軟件包提供了大量可供修改的示例。安裝JSWDK之后,只需執(zhí)行startserver命令即可啟動(dòng)服務(wù)器。在默認(rèn)配置下服務(wù)器在端口8080監(jiān)聽,使用://localhost:8080即可打開缺省頁面。在運(yùn)行JSP示例頁面之前,請(qǐng)注意一下安裝JSWDK的目錄,特別是"work"子目錄下的內(nèi)容。執(zhí)行示例頁面時(shí),可以在這里看到JSP頁面如何被轉(zhuǎn)換成Java源文件,然后又被編譯成class文件(即Servlet)。JSWDK軟件包中的示例頁面分為兩類,它們或者是JSP文件,或者是包含一個(gè)表單的HTML文件,這些表單均由JSP代碼處理。與ASP一樣,JSP中的Java代碼均在服務(wù)器端執(zhí)行。因此,在瀏覽器中使用"查看源文件"菜單是無法看到JSP源代碼的,只能看到結(jié)果HTML代碼。所有示例的源代碼均通過一個(gè)單獨(dú)的"examples"頁面提供。2.2Javabean介紹JavaBean是一種Java語言寫成的可重用組件。為寫成JavaBean,類必須是具體的和公共的,并且具有無參數(shù)的構(gòu)造器。JavaBeans通過提供符合一致性設(shè)計(jì)模式的公共方法將內(nèi)部域暴露稱為屬性。眾所周知,屬性名稱符合這種模式,其他Java類可以通過自省機(jī)制發(fā)現(xiàn)和操作這些JavaBean屬性。用戶可以使用JavaBean將功能、處理、值、數(shù)據(jù)庫訪問和其他任何可以用java代碼創(chuàng)造的對(duì)象進(jìn)行打包,并且其他的開發(fā)者可以通過內(nèi)部的JSP頁面、Servlet、其他JavaBean、applet程序或者應(yīng)用來使用這些對(duì)象。用戶可以認(rèn)為JavaBean提供了一種隨時(shí)隨地的復(fù)制和粘貼的功能,而不用關(guān)心任何改變。JavaBean是Sun微系統(tǒng)的一個(gè)面向?qū)ο蟮木幊探涌?,它可以讓你建可重用?yīng)用程序或能在網(wǎng)絡(luò)中任何主流操作系統(tǒng)平臺(tái)上配置的程序塊,稱作組件。像Javaapplet一樣,JavaBeans組件(或“Beans”)能夠給予萬維網(wǎng)頁面交互的能力,例如:計(jì)算感興趣的比率或是根據(jù)用戶或?yàn)g覽器的特性改變頁面內(nèi)容。從用戶的觀點(diǎn)來看,一個(gè)組件可以是一個(gè)與你交互的按鈕或是一個(gè)當(dāng)你按下按鈕它便開始的小計(jì)算程序。從一個(gè)開發(fā)者的觀點(diǎn)來看,那個(gè)按鈕組件和計(jì)算器組件是分別被創(chuàng)建的,并且他們可以一起使用或是在不同的應(yīng)用程序或情況下和不同的組件產(chǎn)生不同的組合來使用。當(dāng)組件或Beans在使用過程中,Bean的性質(zhì)(比如,一個(gè)窗口的背景色)對(duì)于其他Bean來說是可見的,并且,之前沒“碰到”過的Bean也可以動(dòng)態(tài)地獲悉彼此的特性并從而進(jìn)行交互。Bean是隨Sun的Bean開發(fā)包(BDK)開發(fā)出來的,并且能在任何主流操作系統(tǒng)平臺(tái)的許多應(yīng)用程序環(huán)境(人們所說的“容器”,container)中運(yùn)行,包括瀏覽器,文字處理軟件,以及一些其他應(yīng)用。要想用JavaBeans建一個(gè)組件,你必須用Sun的Java編程語言來寫程序,并且在程序中包括描述組件特性的JavaBeans語句,這些組件特性例如:用戶接口的特性,以及觸發(fā)一個(gè)bean和在同一個(gè)容器中或網(wǎng)絡(luò)其他地方的其他的bean交流的事件。Bean也有持續(xù)性,持續(xù)性就是一種把一個(gè)組件的狀態(tài)存在一個(gè)安全處的機(jī)制。有了這種持續(xù)性,它能使,比如說,一個(gè)組件(bean)“記住”某個(gè)特定用戶在早些時(shí)候的用戶對(duì)話中所輸入的數(shù)據(jù)。JavaBeans給Java應(yīng)用程序提供了OpenDoc和ActiveX接口已提供的這種復(fù)合文檔的能力。2.2Access2003介紹Access2003就是關(guān)系數(shù)據(jù)庫開發(fā)工具,數(shù)據(jù)庫能匯集各種信息以供查詢,存儲(chǔ)和檢索。那么什么叫數(shù)據(jù)庫呢?數(shù)據(jù)庫(Database)是由一些有意義和有關(guān)系的數(shù)據(jù)(data)所組合而成。一個(gè)數(shù)據(jù)庫中,包含了許多條記錄(Record),而每條記錄是由多個(gè)字段(Field)所組成,不同的字段存放這不同的數(shù)據(jù)。所以數(shù)據(jù)庫的嚴(yán)格定義是一組相關(guān)記錄的集合,而字段則是最基本的數(shù)據(jù)項(xiàng),也是數(shù)據(jù)庫中最小的單位。在計(jì)算機(jī)中用來幫我們管理數(shù)據(jù)庫的系統(tǒng),我們稱之為數(shù)據(jù)庫管理管理系統(tǒng)(DatabaseManagementSystemDBMS)。數(shù)據(jù)庫管理系統(tǒng)是架構(gòu)在一個(gè)或多個(gè)數(shù)據(jù)庫之上,并針對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行管理運(yùn)用。Access的優(yōu)點(diǎn)在于它能使用數(shù)據(jù)表示圖或自定義窗體收集信息,數(shù)據(jù)表示圖提供了一種類似于Excel的電子表格,可以使數(shù)據(jù)庫一目了然。另外,Access允許創(chuàng)建自定義報(bào)表用于打印或輸出數(shù)據(jù)庫中的信息。Access也提供了數(shù)據(jù)存儲(chǔ)庫,可以使用桌面數(shù)據(jù)庫文件把數(shù)據(jù)庫文件置于網(wǎng)絡(luò)文件服務(wù)器,與其他網(wǎng)絡(luò)用戶共享數(shù)據(jù)庫。如上所述,Access作為關(guān)系數(shù)據(jù)庫開發(fā)具備了許多優(yōu)點(diǎn),可以在一個(gè)數(shù)據(jù)包中同時(shí)擁有桌面數(shù)據(jù)庫的便利和關(guān)系數(shù)據(jù)庫的強(qiáng)大功能。2.3Tomcat介紹Tomcat是一個(gè)免費(fèi)的開源的Serlvet容器,它是Apache基金會(huì)的Jakarta項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache,Sun和其它一些公司及個(gè)人共同開發(fā)而成。由于有了Sun的參與和支持,最新的Servlet和Jsp規(guī)范總能在Tomcat中得到體現(xiàn)。Tomcat被JavaWorld雜志的編輯選為2001年度最具創(chuàng)新的java產(chǎn)品,可見其在業(yè)界的地位。Tomcat最新版本是6.0x。本系統(tǒng)采用的是Tomcatx與3.x的架構(gòu)不同,而是重新設(shè)計(jì)的。Tomcat4.0x中采用了新的Servlet容器:Catalina,完整的實(shí)現(xiàn)了Servlet2.3和Jsp1.2規(guī)范。Tomcat提供了各種平臺(tái)的版本供下載,可以從://上下載其源代碼版或者二進(jìn)制版。由于Java的跨平臺(tái)特性,基于Java的Tomcat也具有跨平臺(tái)性。與傳統(tǒng)的桌面應(yīng)用程序不同,Tomcat中的應(yīng)用程序是一個(gè)WAR(WebArchive)文件。WAR是Sun提出的一種Web應(yīng)用程序格式,與JAR類似,也是許多文件的一個(gè)壓縮包。這個(gè)包中的文件按一定目錄結(jié)構(gòu)來組織:通常其根目錄下包含有Html和Jsp文件或者包含這兩種文件的目錄,另外還會(huì)有一個(gè)WEB-INF目錄,這個(gè)目錄很重要。通常在WEB-INF目錄下有一個(gè)web.xml文件和一個(gè)classes目錄,web.xml是這個(gè)應(yīng)用的配置文件,而classes目錄下則包含編譯好的Servlet類和Jsp或Servlet所依賴的其它類(如JavaBean)。通常這些所依賴的類也可以打包成JAR放到WEB-INF下的lib目錄下,當(dāng)然也可以放到系統(tǒng)CLASSPATH中,但那樣移植和管理起來不方便。在Tomcat中,應(yīng)用程序的部署很簡單,你只需將你的WAR放到Tomcat的webapp目錄下,Tomcat會(huì)自動(dòng)檢測到這個(gè)文件,并將其解壓。你在瀏覽器中訪問這個(gè)應(yīng)用的Jsp時(shí),通常第一次會(huì)很慢,因?yàn)門omcat要將Jsp轉(zhuǎn)化為Servlet文件,然后編譯。編譯以后,訪問將會(huì)很快。另外Tomcat也提供了一個(gè)應(yīng)用:manager,訪問這個(gè)應(yīng)用需要用戶名和密碼,用戶名和密碼存儲(chǔ)在一個(gè)xml文件中。通過這個(gè)應(yīng)用,輔助于FTP,你可以在遠(yuǎn)程通過Web部署和撤銷應(yīng)用。當(dāng)然本地也可以。Tomcat不僅僅是一個(gè)Servlet容器,它也具有傳統(tǒng)的Web服務(wù)器的功能:處理Html頁面。但是與Apache相比,它的處理靜態(tài)Html的能力就不如Apache。我們可以將Tomcat和Apache集成到一塊,讓Apache處理靜態(tài)Html,而Tomcat處理Jsp和Servlet。這種集成只需要修改一下Apache和Tomcat的配置文件即可。另外,Tomcat提供Realm支持。Realm類似于Unix里面的group。在Unix中,一個(gè)group對(duì)應(yīng)著系統(tǒng)的一定資源,某個(gè)group不能訪問不屬于它的資源。Tomcat用Realm來對(duì)不同的應(yīng)用(類似系統(tǒng)資源)賦給不同的用戶(類似group)。沒有權(quán)限的用戶則不能訪問這個(gè)應(yīng)用。Tomcat提供三種Realm,1:JDBCRealm,這個(gè)Realm將用戶信息存在數(shù)據(jù)庫里,通過JDBC獲得用戶信息來進(jìn)行驗(yàn)證。2:JNDIRealm,用戶信息存在基于LDAP的服務(wù)器里,通過JNDI獲取用戶信息。3:MemoryRealm,用戶信息存在一個(gè)xml文件里面,上面講的manager應(yīng)用驗(yàn)證用戶時(shí)即使用此種Realm。通過Realm我們可以方便地對(duì)訪問某個(gè)應(yīng)用的客戶進(jìn)行驗(yàn)證。在Tomcat5中,你還可以利用Servlet2.3提供的事件監(jiān)聽器功能,來對(duì)你的應(yīng)用或者Session實(shí)行監(jiān)聽。Tomcat也提供其它的一些特征,如與SSL集成到一塊,實(shí)現(xiàn)安全傳輸。還有Tomcat也提供JNDI支持,這與那些J2EE應(yīng)用服務(wù)器提供的是一致的。說到這里我們要介紹一下通常所說的應(yīng)用服務(wù)器(如WebLogic)與Tomcat有何區(qū)別。應(yīng)用服務(wù)器提供更多的J2EE特征,如EJB,JMS,JAAS等,同時(shí)也支持Jsp和Servlet。而Tomcat則功能沒有那么強(qiáng)大,它不提供EJB等支持。但如果與JBoss(一個(gè)開源的應(yīng)用服務(wù)器)集成到一塊,則可以實(shí)現(xiàn)J2EE的全部功能。既然應(yīng)用服務(wù)器具有Tomcat的功能,那么Tomcat有沒有存在的必要呢?事實(shí)上,我們的很多中小應(yīng)用不需要采用EJB等技術(shù),Jsp和Servlet已經(jīng)足夠,這時(shí)如果用應(yīng)用服務(wù)器就有些浪費(fèi)了。而Tomcat短小精悍,配置方便,能滿足我們的需求,這種情況下我們自然會(huì)選擇Tomcat?;赥omcat的開發(fā)其實(shí)主要是Jsp和Servlet的開發(fā),開發(fā)Jsp和Servlet非常簡單,你可以用普通的文本編輯器或者IDE,然后將其打包成WAR即可。我們這里要提到另外一個(gè)工具Ant,Ant也是Jakarta中的一個(gè)子項(xiàng)目,它所實(shí)現(xiàn)的功能類似于Unix中的make。你需要寫一個(gè)build.xml文件,然后運(yùn)行Ant就可以完成xml文件中定義的工作,這個(gè)工具對(duì)于一個(gè)大的應(yīng)用來說非常好,我們只需在xml中寫很少的東西就可以將其編譯并打包成WAR。事實(shí)上,在很多應(yīng)用服務(wù)器的發(fā)布中都包含了Ant。另外,在Jsp1.2中,可以利用標(biāo)簽庫實(shí)現(xiàn)Java代碼與Html文件的分離,使Jsp的維護(hù)更方便。Tomcat也可以與其它一些軟件集成起來實(shí)現(xiàn)更多的功能。如與上面提到的JBoss集成起來開發(fā)EJB,與Cocoon(Apache的另外一個(gè)項(xiàng)目)集成起來開發(fā)基于Xml的應(yīng)用,與OpenJMS集成起來開發(fā)JMS應(yīng)用,除了我們提到的這幾種,可以與Tomcat集成的軟件還有很多。Tomcat確實(shí)是一個(gè)很好的工具,不僅僅因?yàn)槠涿赓M(fèi),功能強(qiáng)大,更因?yàn)槠溟_放性。如今,開源軟件越來越收到人們的重視,Linux就是一個(gè)成功的典型。人們不再限于只使用軟件,而且已經(jīng)關(guān)心起軟件的具體實(shí)現(xiàn)。我們有理由相信Tomcat會(huì)走得更遠(yuǎn)。2.4運(yùn)行環(huán)境為了保證成績管理系統(tǒng)運(yùn)行的效率和可靠性,服務(wù)器應(yīng)具有較高的軟硬件配置,客戶端的要求不是很高。此應(yīng)用程序可廣泛運(yùn)行于國際互聯(lián)網(wǎng)即Internet,也可適用于內(nèi)部的局域網(wǎng)。其運(yùn)行要求如下:軟件環(huán)境:客戶端:Windows95/98/2000/XP,InternetExplorer(IE)等。服務(wù)器端:WindowsNT/Windows2000,InternetInformationServer(IIS)4.0及其以上版本,IE等;或者Windows98,PersonalWebServer(PWS),IE等。數(shù)據(jù)庫:采用Access,運(yùn)行于服務(wù)器端。硬件環(huán)境:服務(wù)器CPU:PIII500以上,內(nèi)存:512M以上。客戶機(jī)CPU:P200MMX以上,內(nèi)存:32M以上。第3章需求分析3.1編寫目的在網(wǎng)絡(luò)技術(shù)逐漸滲入社會(huì)生活各個(gè)層面的今天,以前網(wǎng)站上的論壇管理系統(tǒng)要用戶登陸以后才能進(jìn)行相關(guān)訪問及互動(dòng)。而隨著網(wǎng)絡(luò)互聯(lián)技術(shù)的進(jìn)步,現(xiàn)在網(wǎng)站投票只需打開網(wǎng)頁就可進(jìn)行論壇留言。論壇對(duì)象是很多的,各個(gè)層次都可進(jìn)行論壇訪問,大至國家領(lǐng)導(dǎo),小至一個(gè)普通干部,訪問和留言從到指定用戶進(jìn)行表格到現(xiàn)在通過網(wǎng)絡(luò)直接點(diǎn)擊相應(yīng)就可進(jìn)行。網(wǎng)上論壇管理系統(tǒng)可解決游客訪問及留言,致使現(xiàn)在幾乎各個(gè)網(wǎng)站都有各種類型網(wǎng)站論壇管理系統(tǒng),用戶可選擇自己的看法。所以我提出了本課題的研究。3.2任務(wù)目標(biāo)本論壇的主要目標(biāo)是給來訪人員一個(gè)發(fā)表意見、講座意見并回復(fù)意見的窗口,易于維護(hù)管理也是設(shè)計(jì)的主要目標(biāo)之一。因此設(shè)計(jì)系統(tǒng)的需求功能應(yīng)該包括以下幾個(gè)方面:(1)會(huì)員注冊:提供新會(huì)員注冊的功能,包括提供錄入信息的界面,檢查注冊信息的有效性,并將注冊會(huì)員信息保存在對(duì)應(yīng)數(shù)據(jù)庫的數(shù)據(jù)表中;(2)發(fā)表文章:提供會(huì)員發(fā)表文章的功能,未注冊用戶不允許使用該功能;(3)文章查詢:對(duì)注冊會(huì)員和未注冊會(huì)員提供文章查詢以及閱讀的功能,即提供對(duì)應(yīng)文章標(biāo)題信息,以及查看詳細(xì)內(nèi)容及回復(fù)文章的超鏈接;(4)會(huì)員管理:當(dāng)網(wǎng)上論壇的會(huì)員完成注冊后,系統(tǒng)會(huì)在數(shù)據(jù)庫中加入會(huì)員的資料。包括會(huì)員名稱、會(huì)員密碼、會(huì)員E-mail等相關(guān)信息資料。同時(shí),按照會(huì)員的不同身份,可以將特殊會(huì)員設(shè)置為版主,使他具備刪除本討論區(qū)中對(duì)應(yīng)文章等特殊操作的權(quán)利。管理員可以依據(jù)數(shù)據(jù)庫中注冊的特殊身份登錄到論壇后臺(tái)對(duì)會(huì)員信息進(jìn)行管理;(5)論壇分類管理:根據(jù)不同的討論內(nèi)容,管理員將整個(gè)討論區(qū)劃分成不同的區(qū)域,會(huì)員可以選擇進(jìn)入不同的討論區(qū),允許管理者對(duì)分類進(jìn)行調(diào)整,同時(shí)提供不同討論區(qū)中包括文章數(shù)量等的統(tǒng)計(jì)功能;(6)轉(zhuǎn)移帖子:管理員可以將會(huì)員發(fā)表的帖子隨意轉(zhuǎn)移;(7)置頂帖子:管理員可以將會(huì)員發(fā)表的帖子置頂;(8)指定精華帖:管理員可以將會(huì)員發(fā)表的帖子指定為精華帖。第4章系統(tǒng)總體設(shè)計(jì)4.1系統(tǒng)設(shè)計(jì)思想4.1.1網(wǎng)上論壇系統(tǒng)說明此網(wǎng)上論壇可以實(shí)現(xiàn):

游客:查看帖子、注冊新會(huì)員。注冊會(huì)員:查看帖子、發(fā)新帖子、在線發(fā)布信息、回復(fù)信息、修改個(gè)人資料、在線短消息。

管理員:發(fā)布公告、帖子管理、論壇設(shè)置、版面管理、用戶管理、友情連接、數(shù)據(jù)庫備份。4.1.2網(wǎng)上論壇系統(tǒng)總體分析通過上面的功能說明,我們可以將論壇的制作分為四大部分:(1)會(huì)員注冊和登陸模塊:這個(gè)模塊的功能,就是新來網(wǎng)友可以填寫注冊資料,通過審核后便成為本論壇的正式會(huì)員,并可以以會(huì)員身份登陸論壇;(2)版塊及文章顯示模塊:顯示論壇的各大版塊和所有會(huì)員最新發(fā)表的一些文章主題;(3)發(fā)表文章模塊:為會(huì)員提供發(fā)表文章的地方,以及回復(fù)主題等;(4)論壇管理模塊:版主以上職務(wù)可以進(jìn)行對(duì)文章處理,置頂,加精華,刪除等,還有就是管理員對(duì)論壇進(jìn)行綜合管理。了解了具體的功能需求后,就可以按模塊的開始論壇的設(shè)計(jì)了。當(dāng)然,這些模塊的只是在功能上對(duì)論壇結(jié)構(gòu)的劃分,實(shí)際上并不能夠完全的把他們獨(dú)立出來進(jìn)行設(shè)計(jì)。對(duì)于這種較小的應(yīng)用,也沒有必要進(jìn)行完全的模塊化設(shè)計(jì),在良好的規(guī)劃下直接寫程序代碼或許來的更為簡單一些。4.2數(shù)據(jù)庫設(shè)計(jì)思想4.2.1數(shù)據(jù)庫的選擇Access的優(yōu)點(diǎn)在于它能使用數(shù)據(jù)表示圖或自定義窗體收集信息,數(shù)據(jù)表示圖提供了一種類似于Excel的電子表格,可以使數(shù)據(jù)庫一目了然。另外,Acces允許創(chuàng)建自定義報(bào)表用于打印或輸出數(shù)據(jù)庫中的信息。Access也提供了數(shù)據(jù)存儲(chǔ)庫,可以使用桌面數(shù)據(jù)庫文件把數(shù)據(jù)庫文件置于網(wǎng)絡(luò)文件服務(wù)器,與其他網(wǎng)絡(luò)用戶共享數(shù)據(jù)庫。如上所述,Access作為關(guān)系數(shù)據(jù)庫開發(fā)具備了許多優(yōu)點(diǎn),可以在一個(gè)數(shù)據(jù)包中同時(shí)擁有桌面數(shù)據(jù)庫的便利和關(guān)系數(shù)據(jù)庫的強(qiáng)大功能。4.2.2數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫中的部分?jǐn)?shù)據(jù)表如表4-1與表4-2所示:表4-1.論壇板塊基本信息描述表字段名稱類型長度是否允許為空是否主鍵描述boardidint4否是板塊自動(dòng)編號(hào)boardnamevarchar16否否板塊名稱boardmastervarchar16否否版主名masterpwdvarchar16否否版主密碼masterwordvarchar1024否否版主格言mastermailvarchar16否否版主E-mailboardhitsvarchar16否否板塊點(diǎn)擊率boardtopicsvarchar16否否板塊主題數(shù)表4-2.管理員基本信息描述表字段名稱類型長度是否允許為空是否主鍵描述idint4否是自動(dòng)編號(hào)adminnamevarchar16否否管理員姓名adminpwdvarchar16否否管理員密碼第5章詳細(xì)設(shè)計(jì)5.1用戶注冊功能5.1.1操作流程圖此部分是實(shí)現(xiàn)用戶的注冊功能。用戶先閱讀注冊協(xié)議,同意協(xié)議后,通過填寫注冊資料,正確填寫后,點(diǎn)擊注冊按鈕后便可注冊成為正式的會(huì)員。注冊資料分必填資料和選填資料,用戶只要把必填資料填寫正確就可以注冊了。用戶名最多不能超過16個(gè)字符,而且不允許注冊重復(fù)的用戶名,密碼最多不能超過16位,兩次密碼必須輸入一致,否則不可以注冊。E-mail必須輸入有效的郵箱地址,以便日后能使用到論文的各種功能。驗(yàn)證碼是系統(tǒng)隨即產(chǎn)生的,只要用戶按照出現(xiàn)的數(shù)字輸入進(jìn)去就可以了。選填資料注冊時(shí)可以不用填寫,等注冊成功后,可以在修改用戶資料里隨便修改。本論壇支持自定義外部頭像,而且還支持簽名等。用戶注冊成功后就可以使用會(huì)員所擁有的一切功能了。如圖5-1所示:可以登陸可以登陸游客注冊是否會(huì)員是否通過重新注冊可以登陸是否會(huì)員開始圖5-1注冊操作流程圖5.1.2人機(jī)界面如圖5-2所示:圖5-2注冊人界面5.2會(huì)員發(fā)帖功能5.2.1操作流程圖此部分實(shí)現(xiàn)會(huì)員的發(fā)帖以及回帖等功能。登陸的會(huì)員可以在允許會(huì)員發(fā)帖的版塊進(jìn)行發(fā)帖,還可以在普通版塊進(jìn)行回復(fù)主題帖子。游客只能瀏覽帖子,不能發(fā)表帖子和回復(fù)帖子。會(huì)員在開放的版塊里如果想發(fā)表新的主題,便可直接點(diǎn)擊發(fā)表帖子按鈕。進(jìn)到發(fā)表帖子頁面后,首先要寫自己想發(fā)表的主題,主題字?jǐn)?shù)不能超過100漢字,主題可以選擇話題類型,例如分享、原創(chuàng)、灌水、推薦、轉(zhuǎn)貼等等。接下來可以選擇帖子的表情,這個(gè)是放在帖子的前面。如果會(huì)員想上傳圖片等,就要選擇文件上傳了,大小每個(gè)不能超過200K,每天限制上傳3個(gè)。正文不能超過15000字,字體、字號(hào)、字體顏色可以自己設(shè)置,正文還可以插入視頻等。本論壇還為發(fā)帖者提供很多正問內(nèi)容的表情,從而豐富了文章的活力。特殊內(nèi)容是變相保護(hù)會(huì)員的發(fā)帖權(quán)益,發(fā)帖人可以設(shè)置內(nèi)容為等級(jí)可見,即會(huì)員必須到達(dá)指定的等級(jí)才可以閱讀;回復(fù)可見,即會(huì)員必須回復(fù)該主題才可以閱讀;積分可見,即會(huì)員必須達(dá)到指定的積分才能閱讀;登陸可見,即游客和沒登陸的會(huì)員是不能閱讀的,必須會(huì)員登陸后方可閱讀等等。正文還可以設(shè)置投票選項(xiàng),用于調(diào)查一下大家對(duì)某某的一些見解。或是統(tǒng)計(jì)一下某某數(shù)據(jù)等等。正文寫完后可以先點(diǎn)擊預(yù)覽,覺得不滿意可以在不滿意的地方再修改一下,直到滿意后,便可點(diǎn)擊發(fā)表了?;貜?fù)帖子只針對(duì)會(huì)員開放,游客不可以回復(fù)主題?;貜?fù)帖子有兩種方式:一是快速回復(fù),即簡單的回復(fù)幾句話,不能設(shè)置字體,沒有表情,也不能上傳文件等。二是高級(jí)回復(fù),即回復(fù)內(nèi)容比較全面,可以上傳文件,可有表情,也可以設(shè)置字體大小顏色,段落格式。還可以象發(fā)表主題那樣設(shè)置特殊內(nèi)容回復(fù)可見,等級(jí)可見,積分可見等。如圖5-3所示:登陸或注冊登陸或注冊是否通過發(fā)布帖子是否會(huì)員重新發(fā)表發(fā)表成功是否登陸開始圖5-3發(fā)帖操作流程圖5.2.2人機(jī)界面如圖5-4所示:圖5-4會(huì)員發(fā)帖界面5.3版主管理帖子功能5.3.1操作流程圖此部分主要是版主對(duì)論壇的帖子進(jìn)行綜合管理,刪除、編輯、鎖定、置頂、加精華等等。普通會(huì)員是不可以進(jìn)行此操作的。版主只可以管理自己版塊的帖子,對(duì)別的版塊帖子不能管理。超級(jí)版主和管理員可以管理所有版塊的帖子。版主可以把通知或版規(guī)等性質(zhì)帖子置頂,以便引起大家注意。再不需要的時(shí)候可以取消置頂。對(duì)一些寫的非常好的文章版主可以為其加精華,這樣讓大家多多關(guān)注好的文章,以便鼓勵(lì)發(fā)帖者多多發(fā)表好的文章上來大家一起分享。當(dāng)然對(duì)于不好的帖子或者就是灌水的帖子,嚴(yán)重的可以直接刪除了,情節(jié)較輕的則可以將其鎖定。對(duì)有些文章內(nèi)容有地方不足時(shí),版主可以對(duì)其進(jìn)行編輯修改。版塊里的帖子除了置頂?shù)奶?,別的帖子都是按照發(fā)表時(shí)間和回復(fù)時(shí)間排列的,時(shí)間最新的帖子則排在最前面,時(shí)間越舊排的就越靠后面。有的文章內(nèi)容比較好,或是值得大家注意一下,但又沒必要置頂更沒必要加精華,這樣版主就可以使用提升功能,使其排在后面的帖子上升到普通帖子的最前面。這種提升和置頂?shù)膮^(qū)別在于置頂?shù)奶右恢迸旁谧钌厦?,無論別的帖子更新時(shí)間比它多新,都沒有。普通帖子更新時(shí)間最新也是排在它的后面。而提升的帖子呢,提升后是排在普通的帖子最前面了,但別的帖子只要在它被提升后更新了,那么別的帖子就會(huì)跑到這個(gè)提升帖子的前面了,依此類推。還有一項(xiàng)功能就是轉(zhuǎn)移帖子,這是超級(jí)版主以上的職務(wù)才有此權(quán)限。對(duì)于某版塊里用戶的發(fā)的帖子不符合該版塊的內(nèi)容范圍呢,而是屬于另一個(gè)版塊內(nèi)容的,這時(shí)就可以把此帖子轉(zhuǎn)移到符合其內(nèi)容的版塊里。如圖5-5所示:退出管理退出管理是否通過管理帖子是否會(huì)員重新管理管理成功是否版主開始圖5-5管理操作流程圖5.3.2人機(jī)界面如圖5-6所示:圖5-6版主管理界面5.4管理員管理論壇功能5.4.1操作流程圖此部分是實(shí)現(xiàn)管理員對(duì)論壇的后臺(tái)管理,發(fā)布公告、添加刪除版塊、備份數(shù)據(jù)、任命撤消版主等等。首先對(duì)于前臺(tái)的管理,大部分就是對(duì)帖子的管理,版主所有的權(quán)限管理員都有;其次就是對(duì)后臺(tái)的專署管理,后臺(tái)管理分5大模塊。一是論壇常規(guī)設(shè)置,其中包括常規(guī)信息設(shè)置、公告管理、風(fēng)格設(shè)置、友情連接管理、IP封鎖與解除。二是論壇管理,其中包括論壇版面設(shè)置、版主設(shè)置、超級(jí)版主設(shè)置、管理員設(shè)置、后臺(tái)密碼修改。三是用戶管理,其中包括用戶刪除與恢復(fù)、更改用戶密碼、修改用戶資料、用戶特殊設(shè)置、批量刪除用戶。四是帖子與留言管理,其中包括帖子批量刪除、帖子批量移動(dòng)、論壇留言管理、群發(fā)留言、帖子數(shù)據(jù)表管理、論壇回收站。五是其他操作,其中包括論壇整理、數(shù)據(jù)庫、上傳文件管理、執(zhí)行SQL語句。退出管理退出管理是否通過管理論壇是否會(huì)員重新管理管理成功是否管理員開始圖5-7管理操作流程圖5.4.2人機(jī)界面如圖5-8所示:圖5-8管理員登入界面第6章系統(tǒng)的維護(hù)設(shè)計(jì)6.1安全設(shè)計(jì)本系統(tǒng)的安全主要介紹數(shù)據(jù)的安全,系統(tǒng)的安全性設(shè)計(jì)主要包括以下兩個(gè)方面:網(wǎng)絡(luò)級(jí)安全設(shè)計(jì):本系統(tǒng)主要應(yīng)用于INTERNET上,但它的數(shù)據(jù)庫是獨(dú)立的,是系統(tǒng)中部分?jǐn)?shù)據(jù)庫的拷貝。操作系統(tǒng)級(jí):本系統(tǒng)的操作系統(tǒng)為Windows2000及以上版本,系統(tǒng)集成了Windows2000的安全機(jī)制,對(duì)訪問進(jìn)行嚴(yán)格控制。6.2容錯(cuò)性設(shè)計(jì)本系統(tǒng)主要從錯(cuò)誤隔離和恢復(fù)、數(shù)據(jù)容錯(cuò)來保證系統(tǒng)的容錯(cuò)性。(1)錯(cuò)誤隔離和恢復(fù):當(dāng)系統(tǒng)發(fā)生錯(cuò)誤后,能夠?qū)㈠e(cuò)誤隔離,防止蔓延到其他地方,并迅速將發(fā)生的錯(cuò)誤恢復(fù);(2)數(shù)據(jù)容錯(cuò):系統(tǒng)中的數(shù)據(jù)由一臺(tái)專用的數(shù)據(jù)服務(wù)器進(jìn)行管理,數(shù)據(jù)采用鏡像技術(shù),以保證數(shù)據(jù)的完整性和容錯(cuò)性。第7章結(jié)束語BBS(BulletinBoardService,公告牌服務(wù))是Internet上的一種信息服務(wù)系統(tǒng)。它提供一塊公共電子白板,每個(gè)用戶都可以在上面書寫,可發(fā)布信息或提出看法。隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,論壇已經(jīng)成為網(wǎng)絡(luò)上不可缺少的交流方式之一,深受網(wǎng)民的喜愛。整個(gè)論壇系統(tǒng)使用Browser/Web模式來設(shè)計(jì),服務(wù)器端采用Access數(shù)據(jù)庫系統(tǒng)和JSP組件來構(gòu)成論壇系統(tǒng);客戶端采用瀏覽器來完成系統(tǒng)維護(hù)和管理。(1)該論壇所實(shí)現(xiàn)的功能:用戶注冊、發(fā)帖、回復(fù)、發(fā)短消息、圖片上傳、帖子加精華;(2)論壇待完善問題:管理員發(fā)貼審核系統(tǒng)、郵件發(fā)送等。經(jīng)過這二個(gè)多月的畢業(yè)設(shè)計(jì)和對(duì)相關(guān)資料的收集,讓我清楚的感到隨著網(wǎng)絡(luò)科技的不斷發(fā)展和網(wǎng)絡(luò)的廣泛應(yīng)用,使我們的生活離不開它了。網(wǎng)絡(luò)它以自己的獨(dú)特的優(yōu)點(diǎn)征服了我們。在教育越來越受重視的21世紀(jì),隨著學(xué)生學(xué)習(xí)類型的不斷增加和交流方式的不斷提高,技術(shù)方面的工作量將會(huì)越來越大,在這樣的情況下有一個(gè)實(shí)用的平臺(tái)讓老師和學(xué)生從中受益是有其必然性的,如果能做出一個(gè)完善的論壇交流系統(tǒng)就會(huì)使學(xué)生能更好的去學(xué)習(xí)。在這次的畢業(yè)設(shè)計(jì)中雖然時(shí)間緊迫但我學(xué)會(huì)了很多,也感到自身知識(shí)的貧乏,希望在日后的努力中能做出更完善的系統(tǒng)。致謝從二月份接受課題到現(xiàn)在完成畢業(yè)設(shè)計(jì)論文,衷心的感謝我的指導(dǎo)老師給予了精心的指導(dǎo)和熱情的幫助,尤其在課題設(shè)計(jì)的前期準(zhǔn)備階段和本人的數(shù)據(jù)庫的設(shè)計(jì)階段,導(dǎo)師提出許多寶貴的設(shè)計(jì)意見,在最后的測試修改階段老師在百忙之中抽出時(shí)間為我們提供了必要的幫助,這樣使得我們得以順利的完成畢業(yè)設(shè)計(jì)開發(fā)工作,在短暫的幾個(gè)月的相處時(shí)間里,老師淵博的知識(shí),敏銳的思路和實(shí)事求是的工作作風(fēng)給我留下了深刻的印象,這將使得我終身受益,謹(jǐn)此向老師表示衷心的感謝和崇高的敬意。在短暫的4年大學(xué)時(shí)光里,同學(xué)和朋友們也給了我無私的幫助與支持,在此我對(duì)所有學(xué)習(xí)和生活上幫助過我的同學(xué)們表示深深的謝意!參考文獻(xiàn)[1]HerbertSchildt.java2參考大全[M].第五版.北京:電子工業(yè)出版社,2003.1:202-342[2]陳有生,章宏利.Java回調(diào)機(jī)制[J].計(jì)算機(jī)學(xué)報(bào).2007,10(5):34-68[3]王珊,陳紅.數(shù)據(jù)庫系統(tǒng)原理教程[M].第二版.北京:清華大學(xué)出版社,1998.7:84-150[4]王世民,朱建方,孔凡航.數(shù)據(jù)結(jié)構(gòu)與算法分析(Java版)[M].北京:清華大學(xué)出版社,2005.7:173-241[5]Schutta,nathnanielAsleson,Ryan.ProAjaxandJavaframeworkseng[J].程序員學(xué)報(bào).2006,12(6):41-91[6]Kuniyawamu,Kurniawan.Strutsdesignandprogrammingatutorialeng[M].西安:人民郵電出版社,2001.4:11-30[7]丁宇新,程虎.Java虛擬機(jī)中無用單元的精確回收[J].計(jì)算機(jī)學(xué)報(bào).1999,11(8):24-56[8]楊易,四維科技.JSP網(wǎng)絡(luò)編程技術(shù)與實(shí)例[M].西安:人民郵電出版社,2005.10:97-140[9]霍震甲,鐘明亮.軟件與算法[C].徐能文.計(jì)算機(jī)科學(xué)技術(shù)進(jìn)展—第二屆江蘇計(jì)算機(jī)大會(huì)論文集.南京:電子工業(yè)出版社.2005.3:104-208[10]毛一心.Access2003應(yīng)用及實(shí)例集錦[M].北京:人民郵電出版社,2000.5:23-78[11]MarkAllenWeniss.Structures&AlgorithmAnalysisinJava[J].電腦愛好者.2004,1(21):30-125[12]王剛,王征.應(yīng)用Structs框架的Web工程[J].計(jì)算機(jī)學(xué)報(bào).2005,2(3):204-251[13]肖維斌,馬繼海.MVC模式的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)科學(xué).2007,6(12):203-162附錄主要程序代碼packagetwm;importjava.io.PrintStream;//importjava.sql.ResultSet;importjava.sql.SQLException;importtwm.bbsreg;importtwm.bbsuser;publicclassbbs{bbsregdbconn;bbsuserbbsuser;ResultSetrs;StringstrSQL;booleanyesorno;inti;intbbsid;intparentid;intboardid;intchild;intbbshits;intbbslength;Stringusername;Stringuseremail;Stringuserip;Stringexpression;Stringusersign;Stringbbstopic;Stringbbscontent;Stringbbshot;publicbbs()//{dbconn=newbbsreg();bbsuser=newbbsuser();rs=null;bbsid=0;parentid=0;boardid=0;child=0;username="";useremail="";userip="";expression="";usersign="";bbstopic="";bbscontent="";bbshits=0;bbslength=0;bbshot="";}publicvoidaddNewBbs(){strSQL="INSERTINTObbs(parentid,boardid,child,username,useremail,userip,expression,usersign,bbstopic,bbscontent,bbshits,length)VALUES("+parentid+","+boardid+","+child+",'"+username+"','"+useremail+"','"+userip+"','"+expression+"','"+usersign+"','"+bbstopic+"','"+bbscontent+"',"+bbshits+","+bbslength+")";dbconn.executeUpdate(strSQL);}publicvoidchangeBbsChild(intj,intk){strSQL="updatebbssetchild=child+"+k+"wherebbsid="+j;dbconn.executeUpdate(strSQL);}publicvoidchangeBbsHits(intj,intk){strSQL="updatebbssetbbshits=bbshits+"+k+"wherebbsid="+j;dbconn.executeUpdate(strSQL);}publicvoiddelBbs(intj){rs=null;if(getBbsInfo(j)){if(parentid==0){strSQL="deletefrombbswhereparentid="+bbsid;dbconn.executeUpdate(strSQL);strSQL="updateboardsetboardtopics=boardtopics-1whereboardid="+boardid;dbconn.executeUpdate(strSQL);}else{strSQL="updatebbssetchild=child-1wherebbsid="+parentid;dbconn.executeUpdate(strSQL);}bbsuser.changeUserClass(username,-3);strSQL="deletefrombbswherebbsid="+bbsid;dbconn.executeUpdate(strSQL);}}publicintcountBbs(){strSQL="SELECTCOUNT(*)ASaaFROMbbs";i=0;try{rs=dbconn.executeQuery(strSQL);if(rs.next())i=rs.getInt("aa");rs.close();}catch(SQLExceptionsqlexception){System.err.println("aq.executeQuery:"+sqlexception.getMessage());System.err.println("countBbs.STRSQL::"+strSQL);}returni;}publicintgetBbsBoardid(){returnboardid;}publicintgetBbsChild(){returnchild;}publicStringgetBbsContent(){returnbbscontent;}publicStringgetBbsExpression(){returnexpression;}publicintgetBbsHits(){returnbbshits;}publicStringgetBbsHot(){returnbbshot;}publicbooleangetBbsInfo(intj){rs=null;strSQL="select*frombbswherebbsid="+j;try{rs=dbconn.executeQuery(strSQL);if(rs.next()){yesorno=true;bbsid=rs.getInt("bbsid");parentid=rs.getInt("parentid");boardid=rs.getInt("boardid");child=rs.getInt("child");username=rs.getString("username");useremail=rs.getString("useremail");userip=rs.getString("userip");expression=rs.getString("expression");usersign=rs.getString("usersign");bbstopic=rs.getString("bbstopic");bbscontent=rs.getString("bbscontent");bbshits=rs.getInt("bbshits");bbslength=rs.getInt("length");bbshot=rs.getString("bbshot");}else{yesorno=false;}rs.close();}catch(SQLExceptionsqlexception){System.err.println("aq.executeQuery:"+sqlexception.getMessage());System.err.println("aq.STRSQL::"+strSQL);}returnyesorno;}publicintgetBbsLength(){returnbbslength;}publicintgetBbsParentid(){returnparentid;}publicStringgetBbsTopic(){returnbbstopic;}publicStringgetBbsUseremail(){returnuseremail;}publicStringgetBbsUserip(){returnuserip;}publicStringgetBbsUsername(){returnusername;}publicStringgetBbsUsersign(){returnusersign;}publicintgetRecordsCount(intj,intk,Strings){rs=null;i=0;switch(j){case0:strSQL="SELECTCOUNT(*)ASaaFROMbbsWHEREparentid=0andboardid="+k;break;case8:strSQL="SELECTCOUNT(*)ASaaFROMbbsWHEREparentid=0andboardid="+k;break;case1:strSQL="SELECTCOUNT(*)ASaaFROMbbswhereparentid=0andboardid="+k+"and(bbstopiclike'%"+s+"%')";break;case2:strSQL="SELECTCOUNT(*)ASaaFROMbbswhereboardid="+k+"and(usernamelike'%"+s+"%')";break;case3:strSQL="SELECTCOUNT(*)ASaaFROMbbswhereboardid="+k+"and(dateandtimelike'#"+s+"#')";break;case4:strSQL="SELECTCOUNT(*)ASaaFROMbbswherebbshot='ok'andboardid="+k;break;case5:case6:case7:default:strSQL="SELECTCOUNT(*)ASaaFROMbbsWHEREparentid=0andboardid="+k;break;}try{rs=dbconn.executeQuery(strSQL);if(rs.next())i=rs.getInt("aa");}catch(SQLExceptionsqlexception){System.err.println("aq.executeQuery:"+sqlexception.getMessage());System.err.println("aq.STRSQL:!#:"+strSQL);}returni;}publicintgetRecordsStart(intj,intk,intl,inti1,Strings){rs=null;i=0;intj1=0;if(l==0)j1=0;elsej1=(l-1)*k+1;switch(j){case8:strSQL="SELECTTOP"+j1+"*FROMbbsWHEREparentid=0andboardid="+i1+"ORDERBYdateandtimeDESC";break;case0:strSQL="SELECTTOP"+j1+"*FROMbbsWHEREparentid=0andboardid="+i1+"ORDERBYdateandtimeDESC";break;case1:strSQL="SELECTTOP"+j1+"*FROMbbsWHEREparentid=0andboardid="+i1+"and(bbstopiclike'%"+s+"%')ORDERBYdateandtimeDESC";break;case2:strSQL="SELECTTOP"+j1+"*FROMbbswhereboardid="+i1+"and(usernamelike'%"+s+"%')orderbydateandtimedesc";break;case3:strSQL="SELECTTOP"+j1+"*FROMbbswhereboardid="+i1+"and(dateandtime>=#"+s+"#)orderbydateandtimedesc";break;case4:strSQL="SELECTTOP"+j1+"*FROMbbswherebbshot='ok'andboardid="+i1+"orderbydateandtimedesc";break;case5:case6:case7:default:strSQL="SELECTTOP"+j1+"*FROMbbsWHEREparentid=0andboardid="+i1+"ORDERBYdateandtimeDESC";break;}try{for(rs=dbconn.executeQuery(strSQL);rs.next();)i=rs.getInt("bbsid");rs.close();}catch(SQLExceptionsqlexception){System.err.println("aq.executeQuery:"+sqlexception.getMessage());System.err.println("aq.STRSQL:!#$$:"+strSQL);}returni;}publicResultSetlistBbs(intj,intk,intl,inti1,Str

溫馨提示

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

評(píng)論

0/150

提交評(píng)論