JSP基于WEB網(wǎng)上論壇設(shè)計(jì)與實(shí)現(xiàn)
時(shí)間:2023-09-14 13:48:01 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2023-09-14 13:48:01 來(lái)源:網(wǎng)站運(yùn)營(yíng)
JSP基于WEB網(wǎng)上論壇設(shè)計(jì)與實(shí)現(xiàn):
- 選題的依據(jù)及意義:
隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。學(xué)生學(xué)籍管理系統(tǒng)是一個(gè)教育單位不可缺少的部分,它的內(nèi)容對(duì)于學(xué)校的決策者和管理者來(lái)說(shuō)都至關(guān)重要,所以學(xué)生檔案管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄巍5恢币詠?lái)人們使用傳統(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點(diǎn),如:效率低、保密性差,另外時(shí)間一長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來(lái)了不少的困難。
作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)學(xué)生檔案信息進(jìn)行管理,具有著手工管理所無(wú)法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、 壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高學(xué)生檔案管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。 - 國(guó)內(nèi)外研究現(xiàn)狀及發(fā)展趨勢(shì)(含文獻(xiàn)綜述):
管理信息系統(tǒng)(MIS)是進(jìn)行信息的采集、存儲(chǔ)、加工、維護(hù)和使用的系統(tǒng)。它是隨著管理科學(xué)和技術(shù)科學(xué)的發(fā)展而形成的。MIS的發(fā)展與計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展是緊密相關(guān)的,隨著Internet/Intranet技術(shù)的廣泛應(yīng)用,MIS的體系結(jié)構(gòu)也發(fā)生很大的變化,從以往基于C/S結(jié)構(gòu)的數(shù)據(jù)訪問(wèn)及安全體系發(fā)展到當(dāng)前的基于B/S結(jié)構(gòu)體系。
目前,我國(guó)的大中專院校的學(xué)生成績(jī)管理水平普遍不高,有的還停留在紙介質(zhì)基礎(chǔ)上,這種管理手段已不能適應(yīng)時(shí)代的發(fā)展,因?yàn)樗速M(fèi)了了許多的人力和物力。在當(dāng)今信息時(shí)代這種傳統(tǒng)的管理方法必然被以計(jì)算機(jī)為基礎(chǔ)的信息管理系統(tǒng)所代替。如果本系統(tǒng)能被學(xué)校所采用,將會(huì)改變以前靠手工管理學(xué)生成績(jī)的狀況,可以樹(shù)立良好的辦學(xué)形象,提高工作效率。
鑒于上述管理信息系統(tǒng)的日趨成熟和收集信息的情況,該學(xué)籍管理系統(tǒng)充分運(yùn)用MIS的總體思想,綜合應(yīng)用了B/S模式、SQL Server、JSP等技術(shù),并具有學(xué)生對(duì)自己所需信息的操作和管理員對(duì)系統(tǒng)進(jìn)行管理等功能,很好的將圖書(shū)互換信息的顯示、收集、統(tǒng)計(jì)集合起來(lái),真正完好地達(dá)到服務(wù)于教學(xué)計(jì)劃。 - 本課題研究?jī)?nèi)容
本課題研究?jī)?nèi)容為學(xué)生學(xué)籍管理系統(tǒng),成績(jī)管理系統(tǒng)提供了強(qiáng)大的學(xué)生成績(jī)管理管理功能,方便管理員對(duì)學(xué)生成績(jī)等信息的添加、修改、刪除、查詢等操作。本系統(tǒng)開(kāi)發(fā)的總體任務(wù)是實(shí)現(xiàn)學(xué)生成績(jī)管理的系統(tǒng)化、規(guī)范化、自動(dòng)化、達(dá)到提高學(xué)生成績(jī)管理效率的目的。
系統(tǒng)綜合應(yīng)用了B/S模式、SQL Server、JSP等技術(shù)
(1)B/S結(jié)構(gòu),即Browser/Server(瀏覽器/服務(wù)器)結(jié)構(gòu),是隨著Internet技術(shù)的興起,對(duì)C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶界面完全通過(guò)瀏覽器實(shí)現(xiàn),一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn),形成所謂三層結(jié)構(gòu)。B/S結(jié)構(gòu)利用不斷成熟和普及的瀏覽器技術(shù)實(shí)現(xiàn)原來(lái)需要復(fù)雜專用軟件才能實(shí)現(xiàn)的強(qiáng)大功能,并節(jié)約了開(kāi)發(fā)成本,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。這種結(jié)構(gòu)更成為當(dāng)今應(yīng)用軟件的首選體系結(jié)構(gòu)。
(2)SQL Server是一個(gè)客戶機(jī)/服務(wù)器關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。它是使用事務(wù)SQL在客戶機(jī)和SQL服務(wù)器間傳送請(qǐng)求。
(3)JSP是一種實(shí)現(xiàn)普通靜態(tài)HTML和動(dòng)態(tài)HTML混合編碼的網(wǎng)頁(yè)技術(shù),具有跨平臺(tái)性、運(yùn)行效率高、上手容易等優(yōu)點(diǎn)。
在用JSP進(jìn)行WEB開(kāi)發(fā)時(shí),需要用到應(yīng)用服務(wù)器來(lái)進(jìn)行資源共享、網(wǎng)絡(luò)通信等進(jìn)行分布式應(yīng)用。在支持JSP的應(yīng)用服務(wù)器中又以Tomcat、Web Logic、Web Sphere三種在國(guó)內(nèi)應(yīng)用較多。其中Tomcat是Apache-Jakarta的一個(gè)子項(xiàng)目,是一個(gè)開(kāi)放式源碼、免費(fèi)支持JSP和Servlet技術(shù)的容器,同時(shí)又是一個(gè)WEB服務(wù)器軟件。
JDBC由SUN公司制定,它定義了Java與各種SQL數(shù)據(jù)庫(kù)之間的編程接口,JDBC API是一個(gè)統(tǒng)一的標(biāo)準(zhǔn)的應(yīng)用程序編程接口。JDBC與ODBC(Open Data Base Connectivity,開(kāi)放式數(shù)據(jù)庫(kù)連接)的作用非常類似,它在應(yīng)用程序和數(shù)據(jù)庫(kù)之間起到橋梁作用。JDBC有四種驅(qū)動(dòng)分別為:JDBC-ODBC Bridage、JDBC Native Bridage、JDBC-Network Bridage、Pure Java JDBC Drive。
本系統(tǒng)將用Tomcat做作服務(wù)器,采用JDBC-ODBC的方式連接數(shù)據(jù)庫(kù)。
學(xué)生學(xué)籍管理系統(tǒng)由兩部分組成:信息管理統(tǒng)計(jì)部分和學(xué)生更新信息部分,前者主要由系統(tǒng)管理員和操作人員使用,后者則主要是面對(duì)學(xué)生用戶。系統(tǒng)主要內(nèi)容如下:
(1)用戶的登錄以及用戶權(quán)限的設(shè)置。
(2)用戶對(duì)自己的個(gè)人信息的查詢以及管理員對(duì)所有人的個(gè)人信息的管理。 - 本課題研究方案
學(xué)生成績(jī)管理系統(tǒng)主要提供方便高效的管理功能以及網(wǎng)上的信息查閱平臺(tái),學(xué)生可以通過(guò)該系統(tǒng)查閱相關(guān)信息,管理員可以管理所有信息。該系統(tǒng)使用JSP編程語(yǔ)言,Microsoft SQL2000數(shù)據(jù)庫(kù)以及Apache Tomcat作為開(kāi)發(fā)平臺(tái),運(yùn)用軟件工程思想方法,對(duì)系統(tǒng)進(jìn)行快速有效開(kāi)發(fā), 對(duì)于本系統(tǒng),我們需要實(shí)現(xiàn)以下一些基本功能:
(1)學(xué)生查詢功能:為了方便學(xué)生查找成績(jī)等信息,將所有信息按照需要進(jìn)行分類。這樣學(xué)生就能很方便的找到自己需要的信息。
(2)添加功能:管理員可以通過(guò)填寫(xiě)表格的形式輸入學(xué)生成績(jī)等相關(guān)信息。系統(tǒng)可以自動(dòng)避免重復(fù)信息。
(3)修改功能:管理員可以對(duì)數(shù)據(jù)庫(kù)中的信息進(jìn)行修改。系統(tǒng)能夠通過(guò)管理員給出的條件查找出所要修改的信息,對(duì)修改后的信息進(jìn)行保存,并自動(dòng)查找是否是重復(fù)信息。
(4)刪除功能:管理員可以對(duì)數(shù)據(jù)進(jìn)行刪除操作。系統(tǒng)能夠通過(guò)管理員給出的條件查找出要?jiǎng)h除的信息,并提示是否確定刪除,如果確定刪除,則把相關(guān)信息從數(shù)據(jù)庫(kù)中刪除掉。
(5)管理員查詢功能:管理員可以通過(guò)條件選擇查詢所有信息,并進(jìn)行排序。
系統(tǒng)依據(jù)Apache Tomcat構(gòu)架的運(yùn)行平臺(tái),利用Dreamweaver 進(jìn)行整體框架的設(shè)計(jì),連接數(shù)據(jù)庫(kù),最后進(jìn)行全面的系統(tǒng)調(diào)試而完成。 - 研究目標(biāo)、主要特色及工作進(jìn)度:
研究目標(biāo):
(1)建立一個(gè)B/S層結(jié)構(gòu)的學(xué)生學(xué)籍管理系統(tǒng),實(shí)現(xiàn)管理員對(duì)學(xué)生信息的獲取、統(tǒng)計(jì)等各環(huán)節(jié)的計(jì)算機(jī)管理。
(2)跟蹤記錄學(xué)生個(gè)體學(xué)業(yè)原始成績(jī)和學(xué)年評(píng)語(yǔ)。
(3)查詢學(xué)生的基本情況、異動(dòng)情況,學(xué)生來(lái)源的流向分布,男女學(xué)生比例等統(tǒng)計(jì)。
(4)以同屆不同年級(jí)的同次考試或不同屆不同年級(jí)的不同次考試為常模參照,以有效分、標(biāo)準(zhǔn)分等對(duì)學(xué)生學(xué)業(yè)成績(jī)進(jìn)行科學(xué)的分析和評(píng)價(jià)。
(5)利用計(jì)算機(jī)對(duì)考試成績(jī)進(jìn)行成績(jī)分布頻率曲線分析,以了解全校學(xué)生成績(jī)的整體情況,為教育行政部門(mén)、教研部門(mén)提供決策和研究的依據(jù)。
主要特點(diǎn):
(1)系統(tǒng)分為學(xué)生用戶操作和管理員操作兩部分。學(xué)生的個(gè)人信息可以通過(guò)管理員對(duì)其進(jìn)行管理。
(2)界面友好,簡(jiǎn)單易用。
(3)系統(tǒng)操作簡(jiǎn)單,功能強(qiáng)大,易于維護(hù)。
進(jìn)度計(jì)劃:
序號(hào) | 各階段工作內(nèi)容 | 起訖日期 | 備注 |
---|
1 | 查閱資料,撰寫(xiě)開(kāi)題報(bào)告 | 2007/3/5-3/19 | |
2 | 系統(tǒng)分析與數(shù)據(jù)庫(kù)設(shè)計(jì),確定功能模塊 | 3/20-4/1 | 含論文材料收集歸納 |
3 | 系統(tǒng)具體設(shè)計(jì) | 4/2-4/11 | 含論文材料收集歸納 |
4 | 主程序設(shè)計(jì) | 4/12-4/30 | 含論文材料收集歸納 |
5 | 系統(tǒng)測(cè)試,編寫(xiě)論文初稿 | 5/1-5/7 | 含論文材料收集歸納 |
6 | 完善系統(tǒng) | 5/8-5/13 | 含論文材料收集歸納并修改完善系統(tǒng) |
7 | 完成畢業(yè)論文 | 5/14-5/20 | 在指導(dǎo)教師的指導(dǎo)修改完善論文 |
8 | 答辯準(zhǔn)備 | 5/21-5/25 | |
六、參考文獻(xiàn):
[1] 吳士力,汪孝宜 《JSP網(wǎng)絡(luò)系統(tǒng)開(kāi)發(fā)》 杭州:電子工業(yè)出版社
[2] 石志國(guó),董潔,薛為民 《JSP應(yīng)用教程》 杭州:清華大學(xué)出版社
[3] 丁寶康,董健全 《數(shù)據(jù)庫(kù)實(shí)用教程》 杭州:清華大學(xué)出版社
[4] 朱俊炎 WEB開(kāi)發(fā)技術(shù)[M] 2006.6
[5]岑玲 基于Browser/Server結(jié)構(gòu)的辦公自動(dòng)化系統(tǒng)[M]. 計(jì)算機(jī)與現(xiàn)代化 2001.2
基于JSP的BBS實(shí)現(xiàn)
專業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 學(xué)號(hào):7000803008 學(xué)生姓名:梁熾昌 指導(dǎo)教師:胡軍
摘 要
現(xiàn)今的社會(huì)是一個(gè)信息飛速發(fā)達(dá)的社會(huì),其中在信息的交流當(dāng)中,互聯(lián)網(wǎng)占據(jù)著一個(gè)非常重要的位置。人們可以通過(guò)在互聯(lián)網(wǎng)上收到最新的消息,也可以通過(guò)互聯(lián)網(wǎng)進(jìn)行信息的交流。而論壇就是大家進(jìn)行信息交流的其中一個(gè)渠道。
論壇的概念:論壇(BBS)是Bulletin-Board-System的縮寫(xiě),即電子公告欄。它是一種在Internet網(wǎng)上開(kāi)放的信息服務(wù)系統(tǒng),通過(guò)論壇用戶可以方便的實(shí)現(xiàn)信息的交換和文件的共享。
本文主要完成了基于JSP技術(shù)的信息交流論壇的設(shè)計(jì)和實(shí)現(xiàn),主要實(shí)現(xiàn)了客戶端和服務(wù)器端的動(dòng)態(tài)交互。該系統(tǒng)包含六個(gè)模塊:論壇用戶登陸注冊(cè)模塊,論壇賬戶信息模塊,論壇文章發(fā)布模塊,公告/制度模塊,版塊管理模塊,信息管理模塊。論文詳細(xì)描述了模塊的結(jié)構(gòu)、功能以及具體設(shè)計(jì)過(guò)程。系統(tǒng)采用了JSP技術(shù)以及JavaBeans組件技術(shù)和JDBC技術(shù)實(shí)現(xiàn)。
關(guān)鍵詞:JSP,BBS,MYSQL,JavaBeans,系統(tǒng)設(shè)計(jì)
Bulletin-Board-System realization based on JSP
Abstract
Nowadays is a flourishing society that information travels fast. Among the exchanges of information, the Internet occupies a very important position, through which people can receive the latest news, and can exchange with each other as well. And the forum is an outlet for everyone to exchange information, which can also make the exchange of information convenient.
The concept of the forum: The forum (BBS) is the abbreviation of the Bulletin- Board- System, namely the column of the electronics announcement. It is a service system that is open on Internet, through which, the forum customer can conveniently realizes the commutation of the information and the share of the documents.
In this text, it mainly completed the design and realizations of information exchanges forum based on the JSP technique. And it main carry out a dynamic state between the customer and the server. There are six molds piece: The forum customer debarkation registers the mold piece, the forum bank account information mold piece, the forum article releases the mold piece, announce/ the system mold piece, a management mold piece, information management mold piece. The thesis has described module structure、function detailed and has designed process concretely. System has adopted the JSP technology and the JavaBeans module technology and the JDBC technology have come true.
KeyWord: JSP, BBS, MYSQL, JavaBeans, System design
目 錄
摘 要I
AbstractII
緒 論1
第一章 系統(tǒng)概述2
1.1設(shè)計(jì)目標(biāo)2
1.2 研究方法2
1.3項(xiàng)目中涉及的技術(shù)2
1.3.1 JSP技術(shù)2
1.3.2 JavaBeans技術(shù)3
1.3.3 JDBC技術(shù)3
1.4設(shè)備要求4
第二章 需求分析5
2.1需求規(guī)格5
2.1.1系統(tǒng)組成5
2.1.2功能性需求5
2.1.3非功能性需求7
2.2開(kāi)發(fā)環(huán)境的選擇7
第三章 概要設(shè)計(jì)8
3.1總體設(shè)計(jì)8
3.2系統(tǒng)結(jié)構(gòu)與程序的關(guān)系10
3.3運(yùn)行模式10
3.4接口設(shè)計(jì)10
3.4.1用戶接口10
3.4.2外部接口10
3.4.3內(nèi)部接口11
3.5數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)11
3.5.1系統(tǒng)ER圖11
3.5.2邏輯結(jié)構(gòu)設(shè)計(jì)要點(diǎn)11
3.5.3物理結(jié)構(gòu)設(shè)計(jì)要點(diǎn)13
3.5.4數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系13
3.6功能模塊設(shè)計(jì)16
3.6.1總體設(shè)計(jì)16
3.6.2功能模塊設(shè)計(jì)16
3.7系統(tǒng)故障處理設(shè)計(jì)18
3.7.1出錯(cuò)信息18
3.7.2補(bǔ)救措施19
3.7.3系統(tǒng)維護(hù)設(shè)計(jì)19
第四章 詳細(xì)設(shè)計(jì)20
4.1用戶注冊(cè)登陸模塊20
4.1.1功能說(shuō)明20
4.1.2功能實(shí)現(xiàn)20
4.1.3程序運(yùn)行過(guò)程截圖23
4.2帳戶信息模塊24
4.2.1功能說(shuō)明24
4.2.2功能實(shí)現(xiàn)25
4.2.3程序運(yùn)行過(guò)程截圖28
4.3文章發(fā)布模塊28
4.3.1功能說(shuō)明28
4.3.2功能實(shí)現(xiàn)28
4.3.3程序運(yùn)行過(guò)程截圖29
4.4公告制度模塊29
4.4.1功能說(shuō)明29
4.4.2功能實(shí)現(xiàn)29
4.4.3程序運(yùn)行過(guò)程截圖31
4.5版塊管理模塊31
4.5.1功能說(shuō)明31
4.5.2功能實(shí)現(xiàn)31
4.5.3程序運(yùn)行過(guò)程截圖33
4.6信息管理模塊34
4.6.1功能說(shuō)明34
4.6.2功能實(shí)現(xiàn)34
4.6.3程序運(yùn)行過(guò)程截圖36
第五章 結(jié)論37
參考文獻(xiàn)(References)38
致謝39
緒 論
隨著互聯(lián)網(wǎng)日益深入社會(huì)生活,BBS開(kāi)發(fā)技術(shù)發(fā)展至今,從CGI,ASP,到PHP已經(jīng)日趨成熟,功能也更加豐富,但攜著Sun公司的Java技術(shù)所實(shí)現(xiàn)的“一次編寫(xiě),到處運(yùn)行”的優(yōu)勢(shì),繼承這一衣缽的JSP技術(shù)越來(lái)越受到人們的注視。BBS作為一種對(duì)外的展示窗口,進(jìn)行內(nèi)外信息交流,已成為大眾的廣泛需要。為了進(jìn)行更好的交流,用戶想就自己的專業(yè)和愛(ài)好能和其他的用戶進(jìn)行及時(shí)專業(yè)的交流,這就有了論壇,這樣以來(lái)我們就可以在網(wǎng)絡(luò)這個(gè)虛擬的空間中方便地實(shí)現(xiàn)交流。Internet上發(fā)布信息主要是通過(guò)網(wǎng)站來(lái)實(shí)現(xiàn)的,獲取信息是要在網(wǎng)站論壇中和Internet“海洋”中按照一定的檢索方式將所需要的信息的。因此論壇建設(shè)在Internet應(yīng)用上的地位顯而易見(jiàn),它已成為現(xiàn)代人勾通和獲取信息的重要組成部分,從而倍受人們的重視?,F(xiàn)在各個(gè)大學(xué)網(wǎng)站都有BBS論壇,在BBS上,同學(xué)與同學(xué)之間,老師之間可以非常輕松的進(jìn)行交流,有網(wǎng)絡(luò)的地方,不同的地區(qū)和國(guó)家的各種不同的人都可加入到BBS上進(jìn)行交流。這也節(jié)省了大量的教育資源,和充分的利用教育資源。
Java是未來(lái)的主流開(kāi)發(fā)技術(shù),具有很多優(yōu)勢(shì)。JSP則是Java在Internet/Intranet Web上的重要應(yīng)用技術(shù),得到了廣泛的支持和承認(rèn),它可以和各種Java技術(shù)完好地結(jié)合在一起,從而實(shí)現(xiàn)非常復(fù)雜的應(yīng)用。本網(wǎng)站使用JSP + JavaBeans和后臺(tái)數(shù)據(jù)庫(kù)MYSQL在WEB系統(tǒng)開(kāi)發(fā)的,從而創(chuàng)建一個(gè)更為穩(wěn)定,高效,安全的運(yùn)行環(huán)境。
本文主要討論了基于B/S模式的一種JSP論壇的設(shè)計(jì)與實(shí)現(xiàn),主要功能是實(shí)現(xiàn)客戶端和服務(wù)器端的動(dòng)態(tài)交互。其中有六個(gè)模塊:論壇用戶登陸注冊(cè)模塊,論壇帳戶信息模塊,論壇文章發(fā)布模塊,公告/制度模塊,版塊管理模塊,信息管理模塊。實(shí)現(xiàn)論壇的基本功能,具體功能的實(shí)現(xiàn)利用JavaBeans組件技術(shù)。
第一章 系統(tǒng)概述
1.1設(shè)計(jì)目標(biāo)
BBS是互聯(lián)網(wǎng)一種人與人之間交互的必備工具,特別是做網(wǎng)站必備。以前我們一直用留言本形式,但是隨著您的網(wǎng)站的大規(guī)?;?,越來(lái)越多的迫切需要一種可以易于維護(hù)和易于交流的平臺(tái),那就要用BBS。BBS可以通過(guò)WEB瀏覽器訪問(wèn),并且實(shí)現(xiàn)在線交流等諸多功能。網(wǎng)民們便逐步開(kāi)始接受這種使用方便快捷、功能日漸強(qiáng)大的系統(tǒng)。在它上面網(wǎng)民們可以發(fā)貼和發(fā)布各種各樣的信息,討論各式話題。隨著中國(guó)網(wǎng)絡(luò)的普及和計(jì)算機(jī)及其外設(shè)的大幅度降價(jià),Internet這個(gè)概念逐漸深入人心。中國(guó)網(wǎng)民的數(shù)量呈幾何級(jí)數(shù)量增長(zhǎng),BBS的普及程度也直追Email。每個(gè)網(wǎng)站幾乎都擁有自己的BBS或者BBS鏈接, BBS社區(qū)提供給用戶的服務(wù)是全面而且非常友好的,用戶在社區(qū)中可以根據(jù)自己的喜好設(shè)置不同的顯示風(fēng)格,根據(jù)自己的需求定制各種服務(wù)。
1.2 研究方法
本虛擬社區(qū)是采用JSP + JavaBeans + MYSQL開(kāi)發(fā)的。運(yùn)行平臺(tái):JDK 1.5 + Tomcat5.5 + MYSQL + Windows XP。
采用模塊化思想,分為3層:
a.?dāng)?shù)據(jù)存儲(chǔ)層:使用MYSQL來(lái)存放BBS的所有數(shù)據(jù),包括用戶信息,文章數(shù)據(jù)用戶消息,系統(tǒng)數(shù)據(jù),關(guān)鍵問(wèn)題,數(shù)據(jù)庫(kù)的規(guī)劃。
b. 系統(tǒng)功能層:完成BBS的基本功能,由多個(gè)并列模塊組成,向下調(diào)用MYSQL的數(shù)訪問(wèn)數(shù)據(jù)庫(kù),向上接受處理請(qǐng)求,將處理的結(jié)果返回上層,根據(jù)請(qǐng)求類型,返回成敗結(jié)果和其他數(shù)據(jù)。而且模塊高度靈活,可以方便的修改增加。
c. 服務(wù)層:直接和客戶機(jī)對(duì)話,根據(jù)客戶機(jī)的請(qǐng)求,調(diào)用功能模塊取得數(shù)據(jù),然后將數(shù)據(jù)發(fā)送回客戶端,根據(jù)客戶端的類型,分別開(kāi)發(fā)不同的服務(wù)模塊,并且盡可能合理進(jìn)行抽象,使對(duì)不同的服務(wù)層,能共用系統(tǒng)功能層的模塊。
1.3項(xiàng)目中涉及的技術(shù)
1.3.1 JSP技術(shù)
JSP(Java Server Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。 JSP技術(shù)是用JAVA語(yǔ)言作為腳本語(yǔ)言的,JSP網(wǎng)頁(yè)為整個(gè)服務(wù)器端的JAVA庫(kù)單元提供了一個(gè)接口來(lái)服務(wù)于HTTP的應(yīng)用程序。
在傳統(tǒng)的網(wǎng)頁(yè)HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP標(biāo)記(tag),就構(gòu)成了JSP網(wǎng)頁(yè)(*.jsp)。Web服務(wù)器在遇到訪問(wèn)JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以HTML格式返回給客戶。程序片段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)以及發(fā)送 email 等等,這就是建立動(dòng)態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,對(duì)客戶瀏覽器的要求最低,可以實(shí)現(xiàn)無(wú)Plugin,無(wú)ActiveX,無(wú)Java Applet,甚至無(wú)Frame。
1.3.2 JavaBeans技術(shù)
什么是JavaBeans?JavaBeans就是Java的可重用組件技術(shù)。最初,JavaBeans的目的是為了將可以重復(fù)使用的軟件代碼打包標(biāo)準(zhǔn)。特別是用與幫助廠家開(kāi)發(fā)在綜合開(kāi)發(fā)環(huán)境(IDE)下使用的java軟件部件。這些包括如Grid控件,用戶可以將該部件拖放到開(kāi)發(fā)環(huán)境中。從此,JavaBeans就可以擴(kuò)展為一個(gè)java web 應(yīng)用的標(biāo)準(zhǔn)部件,并且JavaBeans部件框架已經(jīng)擴(kuò)展為企業(yè)版的 Bean(EJB)。JavaBeans是描述JAVA的軟件組件模型,有點(diǎn)類似于Microsoft的COM組件概念。在JAVA模型中,通過(guò)JavaBeans可以無(wú)限擴(kuò)充JAVA程序的功能,通過(guò)JavaBeans的組合可以快速的生成新的應(yīng)用程序。對(duì)于程序員來(lái)說(shuō),最好的一點(diǎn)就是JavaBeans可以實(shí)現(xiàn)代碼的重復(fù)利用,另外對(duì)于程序的易維護(hù)性等等也有很重大的意義。ASP通過(guò)COM來(lái)擴(kuò)充復(fù)雜的功能,如文件上載、發(fā)送email以及將業(yè)務(wù)處理或復(fù)雜計(jì)算分離出來(lái)成為獨(dú)立可重復(fù)利用的模塊。JSP通過(guò)JavaBeans實(shí)現(xiàn)了同樣的功能擴(kuò)充。JSP對(duì)于在Web應(yīng)用中集成JavaBeans組件提供了完善的支持。這種支持不僅能縮短開(kāi)發(fā)時(shí)間(可以直接利用經(jīng)測(cè)試和可信任的已有組件,避免了重復(fù)開(kāi)發(fā)),也為JSP應(yīng)用帶來(lái)了更多的可伸縮性。JavaBeans組件可以用來(lái)執(zhí)行復(fù)雜的計(jì)算任務(wù),或負(fù)責(zé)與數(shù)據(jù)庫(kù)的交互以及數(shù)據(jù)提取等。在實(shí)際的JSP開(kāi)發(fā)過(guò)程中,讀者將會(huì)發(fā)現(xiàn),和傳統(tǒng)的ASP或PHP頁(yè)面相比,JSP頁(yè)面將會(huì)是非常簡(jiǎn)潔的,由于JavaBeans開(kāi)發(fā)起來(lái)簡(jiǎn)單,又可以利用Java語(yǔ)言的強(qiáng)大功能,許多動(dòng)態(tài)頁(yè)面處理過(guò)程實(shí)際上被封裝到了JavaBeans中。
1.3.3 JDBC技術(shù)
JDBC是一種可用于執(zhí)行SQL語(yǔ)句的Java API(Application Programming Interface,應(yīng)用程序設(shè)計(jì)接口)。它由一些Java語(yǔ)言寫(xiě)的類、界面組成。JDBC給數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)人員、數(shù)據(jù)庫(kù)前臺(tái)工具開(kāi)發(fā)人員提供了一種標(biāo)準(zhǔn)的應(yīng)用程序設(shè)計(jì)接口,使開(kāi)發(fā)人員可以用純Java語(yǔ)言編寫(xiě)完整的數(shù)據(jù)庫(kù)應(yīng)用程序。
Java 具有堅(jiān)固、安全、易于使用、易于理解和從網(wǎng)絡(luò)上自動(dòng)下載等特性,是編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序的杰出語(yǔ)言。所需要的只是 Java 應(yīng)用程序與各種不同數(shù)據(jù)庫(kù)之間進(jìn)行對(duì)話的方法。而 JDBC 正是作為此種用途的機(jī)制。
通過(guò)使用JDBC,開(kāi)發(fā)人員可以很方便地將SQL語(yǔ)句傳送給幾乎任何一種數(shù)據(jù)庫(kù)。也就是說(shuō),開(kāi)發(fā)人員可以不必寫(xiě)一個(gè)程序訪問(wèn)Sybase,寫(xiě)另一個(gè)程序訪問(wèn)Oracle,再寫(xiě)一個(gè)程序訪問(wèn)Microsoft的SQL Server。用JDBC寫(xiě)的程序能夠自動(dòng)地將SQL語(yǔ)句傳送給相應(yīng)的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)。不但如此,使用Java編寫(xiě)的應(yīng)用程序可以在任何支持Java的平臺(tái)上運(yùn)行,不必在不同的平臺(tái)上編寫(xiě)不同的應(yīng)用。Java和JDBC的結(jié)合可以讓開(kāi)發(fā)人員在開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用時(shí)真正實(shí)現(xiàn)“Write Once,Run Everywhere!”
JDBC 擴(kuò)展了 Java 的功能。例如,用 Java 和 JDBC API 可以發(fā)布含有 applet的網(wǎng)頁(yè),而該 applet 使用的信息可能來(lái)自遠(yuǎn)程數(shù)據(jù)庫(kù)。企業(yè)也可以用 JDBC 通過(guò)Intranet 將所有職員連到一個(gè)或多個(gè)內(nèi)部數(shù)據(jù)庫(kù)中(即使這些職員所用的計(jì)算機(jī)有 Windows、 Macintosh 和 UNIX 等各種不同的操作系統(tǒng))。隨著越來(lái)越多的程序員開(kāi)始使用 Java 編程語(yǔ)言,對(duì)從 Java中便捷地訪問(wèn)數(shù)據(jù)庫(kù)的要求也在日益增加。
1.4設(shè)備要求
主機(jī)類型:
服務(wù)器(IBM兼容機(jī))最低配置
CPU:P3-850MHz;
內(nèi)存:256MB
硬盤(pán):20GB
網(wǎng)卡:10/100MB自適應(yīng)
客戶機(jī)(IBM兼容機(jī))最低配置
CPU:P3-450MHz;
內(nèi)存:128MB
硬盤(pán):10GB
網(wǎng)卡:10/100MB自適應(yīng)
第二章 需求分析
2.1需求規(guī)格
2.1.1系統(tǒng)組成
系統(tǒng)可以分為以下幾個(gè)功能模塊:
- 論壇用戶登陸注冊(cè)模塊:包括用戶登陸,退出,注冊(cè)等功能。
- 論壇帳戶信息模塊:當(dāng)用戶登陸系統(tǒng)后,在個(gè)人中心,可以通過(guò)修改個(gè)人資料的鏈接來(lái)修改個(gè)人資料(其中用戶ID是不允許修改的),通過(guò)我的話題來(lái)查看和修改自己發(fā)布的文章。
3.論壇文章發(fā)布模塊:用戶登陸系統(tǒng)后可以查看其他所有用戶發(fā)的文章,并可以發(fā)布自己的話題,也可響應(yīng)回復(fù)其他用戶和自己發(fā)表的話題。
4.公告/制度模塊:論壇管理員可以通過(guò)后臺(tái)管理系統(tǒng)發(fā)布論壇公告,今日話題等功能,論壇的制度上可以設(shè)置對(duì)文章操作的得分,發(fā)帖數(shù),精華帖。
5. 版塊管理模塊:論壇管理員可以通過(guò)后臺(tái)管理系統(tǒng)控制論壇的版塊,管理員可以完成下列功能:任命斑竹,修改版塊等操作。
6.信息管理模塊。社區(qū)信息配置;添加管理員; 編輯管理員;設(shè)定等級(jí);配置權(quán)限;重新登錄;安全退出;用戶等級(jí)。
以上的功能完成了整個(gè)論壇的配置,用戶的管理,管理員的管理都可以通過(guò)對(duì)應(yīng)的鏈接來(lái)完成。
以下是該BBS系統(tǒng)軟件的功能模塊圖:
BBS軟件系統(tǒng)
注冊(cè)登陸
帳戶信息
文章發(fā)布
公告制度
版塊管理
信息管理
圖2.1 BBS系統(tǒng)軟件的功能模塊圖
2.1.2功能性需求
1.用戶注冊(cè)登陸模塊
表2-1 用戶注冊(cè)登陸模塊
模塊名稱:用戶注冊(cè)登陸 | 模塊標(biāo)識(shí):A1 |
---|
其中可能涉及到的操作有以下幾種: 用戶登錄:管理員及用戶可以根據(jù)用戶名及密碼登陸系統(tǒng)。 用戶注冊(cè):用戶可以獨(dú)立注冊(cè)論壇帳戶。修改數(shù)據(jù):管理員可以修正錯(cuò)誤數(shù)據(jù),比如用戶信息等。用戶退出:用戶退出時(shí),變成游客權(quán)限,只能瀏覽帖子。 |
2. 帳戶信息模塊
表2-2 帳戶信息模塊
模塊名稱:帳戶信息 | 模塊標(biāo)識(shí):A2 |
---|
該模塊主要在個(gè)人中心中,對(duì)用戶信息及發(fā)表文章進(jìn)行操作。其中可能涉及到的操作有以下幾種:添加,刪除,修改個(gè)人信息。查看,修改或刪除本用戶發(fā)表過(guò)的文章消息。更換照片,修改簽名,預(yù)覽簽名。 |
- 文章發(fā)布模塊
表2-3 文章發(fā)布模塊
模塊名稱:文章發(fā)布 | 模塊標(biāo)識(shí):A3 |
---|
該模塊主要完成整個(gè)BBS系統(tǒng)面向用戶的各種功能。其中可能涉及到的操作有以下幾種:1 發(fā)布論壇話題:用戶可以通過(guò)此功能發(fā)布論壇話題,也就是常說(shuō)的發(fā)帖。2 回復(fù)話題:用戶可以回復(fù)任何已存在的話題,同時(shí)可以加上自己的個(gè)性簽名。 |
4、公告/制度模塊
表2-4 公告/制度模塊
模塊名稱:公告/制度 | 模塊標(biāo)識(shí):A4 |
---|
論壇管理員(站長(zhǎng))可以通過(guò)后臺(tái)管理任命斑竹,擁有最高權(quán)限。斑竹只能在自己的版塊發(fā)布論壇公告,最新話題,可以對(duì)帖子置頂,刪除,鎖定等操作。 |
5.版塊管理模塊
表2-5 版塊管理模塊
模塊名稱:版塊管理模塊 | 模塊標(biāo)識(shí):A5 |
---|
論壇管理員可以通過(guò)后臺(tái)管理系統(tǒng)控制論壇的版塊,管理員可以完成下列功能:任命斑竹,修改版塊等操作。 |
6. 信息管理模塊
表2-6 信息管理模塊
模塊名稱:信息管理 | 模塊標(biāo)識(shí):A6 |
---|
信息管理模塊主要完成下面的功能:社區(qū)信息配置;添加管理員; 編輯管理員;設(shè)定等級(jí);改變權(quán)限;會(huì)員管理;安全退出;用戶等級(jí)。 |
2.1.3非功能性需求
本系統(tǒng)界面友好,使用方便,運(yùn)行穩(wěn)定。是一種典型的BBS系統(tǒng)。
2.2開(kāi)發(fā)環(huán)境的選擇
系統(tǒng)需求分析階段: Microsoft Windows XP
系統(tǒng)代碼開(kāi)發(fā)階段:Windows XP+ JDK1.5 + tomcat5.5 +MYSQL。
系統(tǒng)GUI/LOGO輔助設(shè)計(jì)工具:Photoshop8.0,Dreamware8.0。
第三章 概要設(shè)計(jì)
3.1總體設(shè)計(jì)
我們采用基于B/S結(jié)構(gòu)的三層應(yīng)用模型來(lái)實(shí)現(xiàn)BBS系統(tǒng)。Browser/Server計(jì)算方式是一種兩層結(jié)構(gòu)的體系。隨著技術(shù)的進(jìn)步以及需求的改變,更多的層次劃分出來(lái)。目前,在Internet應(yīng)用體系結(jié)構(gòu)中,事物處理被劃分為3層,即:Web Browser—Internet Server—Database Server。在這種體系結(jié)構(gòu)中,業(yè)務(wù)的表達(dá)通過(guò)簡(jiǎn)單的Web Browser來(lái)實(shí)現(xiàn),用戶通過(guò)Web Browser提交表單,把信息傳遞給Internet Server,Internet Server根據(jù)用戶的請(qǐng)求,分析出要求數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行的查詢,交給數(shù)據(jù)庫(kù)服務(wù)器去執(zhí)行,Database Server把查詢的結(jié)果反饋給Internet Server,在由Internet Server用標(biāo)準(zhǔn)的HTML語(yǔ)言反饋給Web Browser。
三層應(yīng)用模型同傳統(tǒng)的C/S(Client/Server)模型相比,提高了系統(tǒng)的可擴(kuò)展性、安全性和可重用性。它將應(yīng)用邏輯與用戶界面和數(shù)據(jù)訪問(wèn)相剝離,這樣便使系統(tǒng)的維護(hù)變得簡(jiǎn)單,同時(shí)可以通過(guò)采用組件技術(shù),降低數(shù)據(jù)庫(kù)服務(wù)器的負(fù)擔(dān),從而提高性能。
典型C/S計(jì)算的特點(diǎn):
- 服務(wù)器負(fù)責(zé)數(shù)據(jù)管理及程序處理;
- 客戶機(jī)負(fù)責(zé)界面描述和截面顯示;
- 客戶機(jī)向服務(wù)器提出處理要求;
- 服務(wù)器響應(yīng)后將處理結(jié)果返回客戶機(jī);
- 網(wǎng)絡(luò)數(shù)據(jù)傳輸小。
經(jīng)過(guò)分析,B/S結(jié)構(gòu)適合本系統(tǒng),它具有以下優(yōu)點(diǎn): - B/S技術(shù)所基于的標(biāo)準(zhǔn)是開(kāi)放、非專有的,是經(jīng)標(biāo)準(zhǔn)化組織指定而非單一廠商制定的。
- B/S技術(shù)成本較低,一般只需安裝、配備還在服務(wù)器上。在客戶機(jī)上的工作較少,故降。
低了開(kāi)發(fā)及管理成本。而C/S的應(yīng)用不論是安裝、配備還是升級(jí),都需要在所有的客戶機(jī)上實(shí)施。
B/S技術(shù)維護(hù)工作主要集中在服務(wù)器端,客戶端的維護(hù)工作量十分少。而C/S結(jié)構(gòu)中客戶機(jī)和服務(wù)器的維護(hù)工作量都較大。Web Browser技術(shù)簡(jiǎn)明易用,一旦用戶掌握了Web Browser的用法,也就掌握了使用系統(tǒng)上各種信息資源的鑰匙。
本虛擬社區(qū)是采用JSP + JavaBean + MYSQL開(kāi)發(fā)的一套網(wǎng)絡(luò)虛擬社區(qū)系統(tǒng)。通過(guò)BBS系統(tǒng)和別人討論計(jì)算機(jī)軟件、硬件、Internet、多媒體、以及程序設(shè)計(jì)等等各種有趣的話題。
圖3.1 網(wǎng)絡(luò)結(jié)構(gòu)圖
圖3.2 系統(tǒng)結(jié)構(gòu)圖
3.2系統(tǒng)結(jié)構(gòu)與程序的關(guān)系
表
3-1 各項(xiàng)功能需求模塊的實(shí)現(xiàn)同各塊程序的分配關(guān)系
3.3運(yùn)行模式
功能模塊 | 相關(guān)程序 |
---|
注冊(cè)登陸 | reg.jsp;login.jsp;online.jsp;shutdown.jsp;pcmain.jsp |
帳戶信息 | first.jsp;modify.jsp;repassword.jsp;modifype.jsp;showpenname |
文章發(fā)布 | send.jsp;reply.jsp;display.jsp |
公告制度 | actboardset.jsp;inform.jsp |
版塊管理 | adminmast.jsp;changeroot.jsp;addmast.jsp |
信息管理 | madmin.jsp;mdel.jsp;medit.jsp;msend.jsp;mshow.jsp |
圖3.3 本系統(tǒng)的各個(gè)模塊的運(yùn)行順序
3.4接口設(shè)計(jì)
3.4.1用戶接口
本系統(tǒng)采用的標(biāo)準(zhǔn)的HTML編寫(xiě),內(nèi)部套用JavaScript、CSS,風(fēng)格統(tǒng)一,用戶可通過(guò)一個(gè)窗體即可完成所有的輸入工作,本模塊不涉及大圖片、音頻和視頻等,這樣能保證輸出時(shí)的快速性。用戶可以直觀的查看數(shù)據(jù)和填寫(xiě)數(shù)據(jù),盡可能的簡(jiǎn)化操作,其主界面簡(jiǎn)便易于使用。
3.4.2外部接口
系統(tǒng)的數(shù)據(jù)庫(kù)連接主要采用JDBC的方式,這樣的連接方法簡(jiǎn)單,避免了過(guò)多的配置,數(shù)據(jù)庫(kù)的訪問(wèn)全部由操作系統(tǒng)內(nèi)部來(lái)完成。數(shù)據(jù)庫(kù)的接口采用JavaBean連接實(shí)現(xiàn)。使用MYSQL來(lái)存放BBS的所有數(shù)據(jù),包括用戶信息,文章數(shù)據(jù),用戶消息,系統(tǒng)數(shù)據(jù)等。
3.4.3內(nèi)部接口
JavaBean完成Jsp程序和數(shù)據(jù)庫(kù)的連接;方便對(duì)數(shù)據(jù)庫(kù)的讀寫(xiě),提高重用度,減少代碼量。
3.5數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)
3.5.1系統(tǒng)ER圖
根據(jù)UML系統(tǒng)模型,可以確定系統(tǒng)中的各種實(shí)體以及它們之間的關(guān)系。本系統(tǒng)的實(shí)體包括管理員數(shù)據(jù)實(shí)體(Numb1)、用戶數(shù)據(jù)實(shí)體(User)、帖子數(shù)據(jù)實(shí)體(btable)等。
M
瀏覽
瀏覽
帖 子
用戶
1
M
管理
管理
N
管理員
1
1
圖3.4 系統(tǒng)ER圖
3.5.2邏輯結(jié)構(gòu)設(shè)計(jì)要點(diǎn)
數(shù)據(jù)庫(kù)表結(jié)構(gòu)
1.Board表
表
3-2 Board表
字 段 | 類 型 | 長(zhǎng) 度 | 允 許 空 |
---|
Id | Int | 11 | |
Btable | varchar | 20 | |
Name | Varchar | 30 | |
Logo | Varchar | 100 | yes |
Inform | Varchar | 160 | yes |
Focus | Varchar | 200 | yes |
Boardmast | Varchar | 255 | |
2. Numb1表
表
3-3 Numb1表
字 段 | 類 型 | 長(zhǎng) 度 | 允 許 空 |
---|
Userid | Varchar | 20 | |
Pw | Varchar | 20 | |
Mail | Varchar | 40 | yes |
Tim | Datetime | | |
3. Onlcount表
表
3-4 Onlcount表
字 段 | 類 型 | 長(zhǎng) 度 | 允 許 空 |
---|
Id | Int | 11 | |
Page | Varchar | 80 | |
Time | Varchar | 10 | |
Userid | Varchar | 20 | |
Username | Varchar | 20 | |
Ip | Varchar | 15 | |
4.Online表
表
3-5 Online表
字 段 | 類 型 | 長(zhǎng) 度 | 允 許 空 |
---|
Userid | Varchar | 20 | |
Ontims | Int | 11 | yes |
Txt | Int | 11 | yes |
Point | Int | 10 | yes |
Penname1 | Varchar | 250 | yes |
Penname2 | Varchar | 250 | yes |
5.btable表
表
3-6 btable表
字 段 | 類 型 | 長(zhǎng) 度 | 允 許 空 |
---|
Id | Int | 11 | |
super | Int | 11 | |
Boardid | Int | 11 | |
title | Varchar | 40 | |
Txt | Text | | |
Userid | Varchar | 20 | |
Username | Varchar | 20 | |
Time | Datetime | | |
ip | Datetime | | |
editime | Varchar | 250 | yes |
6.User表
表
3-7 User表
字 段 | 類 型 | 長(zhǎng) 度 | 允 許 空 |
---|
userid | Varchar | 20 | |
Step | Int | 11 | |
Root | Varchar | 75 | |
Question | Varchar | 30 | yes |
Answer | Varchar | 30 | yes |
Face | Varchar | 50 | |
Name | Varchar | 20 | |
Sex | Varchar | 5 | yes |
Mail | Varchar | 5 | yes |
Qq | Varchar | 15 | yes |
Tel | Varchar | 15 | yes |
Job | Varchar | 20 | yes |
3.5.3物理結(jié)構(gòu)設(shè)計(jì)要點(diǎn)
系統(tǒng)數(shù)據(jù)庫(kù)采用MYSQL。今天的商業(yè)環(huán)境要求不同類型的數(shù)據(jù)庫(kù)解決方案。性能、可伸縮性及可靠性是基本要求,MYSQL 給數(shù)據(jù)管理與分析帶來(lái)了靈活性。從數(shù)據(jù)管理和分析角度看,MYSQL可以作為一個(gè)完備的數(shù)據(jù)庫(kù)和數(shù)據(jù)分析包。作為重要的基準(zhǔn)測(cè)試可伸縮性和速度獎(jiǎng)的記錄保持者,MYSQL 是一個(gè)具備完全功能支持的數(shù)據(jù)庫(kù)產(chǎn)品,提供了對(duì)可擴(kuò)展標(biāo)記語(yǔ)言 (XML) 的核心支持以及在 Internet 上和防火墻外進(jìn)行查詢的能力。
3.5.4數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系
服務(wù)器端程序采用JDBC來(lái)訪問(wèn)數(shù)據(jù)庫(kù):
----------------------------------------------------------------------------------------------------------------
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://"+"localhost"+"/"+numb1,"root","");
----------------------------------------------------------------------------------------------------------------
上面兩條Java語(yǔ)句完成數(shù)據(jù)庫(kù)的連接,而下面幾條語(yǔ)句則完成最基本的信息數(shù)據(jù)查詢操作。
----------------------------------------------------------------------------------------------------------------
package numb1.com;
import java.lang.*;
import java.sql.*;
public class db{
private Connection con;
private Statement st;
private ResultSet rs;
private String host="localhost";
private String user="root";
private String pw="";
private String db="numb1";
private String Dri="com.mysql.jdbc.Driver";
private String url="jdbc:mysql://"+host+"/"+db;
public String getStr(String s){
String str=s;
try{
byte b[]=str.getBytes("ISO-8859-1");
str=new String(b);
return str;
}
catch(Exception e){return null;}
}
public String gb2iso(String qs){
try{
if (qs == null) return "NULL";
else return new String(qs.getBytes("gb2312"),"iso-8859-1");
}
catch(Exception e){
System.out.print("gb2iso error:"+e.getMessage());
}
return "NULL";
}
public void close(){//關(guān)閉連接
try{
if(rs!=null)rs.close();
}catch(Exception e){
System.out.print("rs"+e.getMessage());
}
try{
if(st!=null)st.close();
}catch(Exception e){
System.out.print("st"+e.getMessage());
}
try{
if(con!=null)con.close();
}catch(Exception e){
System.out.print("con"+e.getMessage());
}
}
public ResultSet query(String sql)throws Exception{
try{
Class.forName(Dri).newInstance();
con=DriverManager.getConnection(url,user,pw);
st=con.createStatement();
rs=st.executeQuery(sql);
return rs;
}catch(SQLException e){
System.out.print(e.getMessage());
return null;
}
}
public void update(String sql)throws Exception{
try{
Class.forName(Dri).newInstance();
con=DriverManager.getConnection(url,user,pw);
st=con.createStatement();
st.executeUpdate(sql);
st.close();
con.close();
}catch(SQLException e){
System.out.print(e.getMessage());
}
}
}
通過(guò)上面的Java語(yǔ)句,服務(wù)器端就完成了對(duì)數(shù)據(jù)庫(kù)的連接,并且實(shí)現(xiàn)了對(duì)數(shù)據(jù)庫(kù)的查詢、更新等操作。
---------------------------------------------------------------------------
3.6功能模塊設(shè)計(jì)
3.6.1總體設(shè)計(jì)
BBS系統(tǒng)總體上分6個(gè)模塊,模塊之間相互連接,互相作用,從用戶的注冊(cè),登陸退出到發(fā)表文章,回復(fù)文章,對(duì)BBS系統(tǒng)的管理都可以通過(guò)簡(jiǎn)單的操作來(lái)完成。論壇系統(tǒng)設(shè)計(jì)簡(jiǎn)潔明了,沒(méi)有過(guò)多的附屬功能。
3.6.2功能模塊設(shè)計(jì)
- 用戶注冊(cè)登陸模塊
要完成論壇的各項(xiàng)操作,用戶必須登陸論壇系統(tǒng),如果沒(méi)有論壇帳戶,用戶注冊(cè)是必須的。用戶命令如果是退出,則清除用戶的狀態(tài)信息,并返回BBS 首頁(yè),如果是登錄則使用JDBC連接數(shù)據(jù)庫(kù),取得用戶輸入的帳號(hào)和密碼并查詢數(shù)據(jù)庫(kù),將得出的結(jié)果和用戶輸入的信息做比較,驗(yàn)證正確,顯示用戶已經(jīng)登陸到系統(tǒng),錯(cuò)誤將返回消息讓用戶從新輸入。如果用戶想注冊(cè)帳戶,則返回注冊(cè)頁(yè)面,用戶填寫(xiě)信息后,將檢測(cè)信息的正確性,如果帳號(hào)允許注冊(cè),則完成帳號(hào)的注冊(cè),將信息寫(xiě)入到數(shù)據(jù)庫(kù)中,如果帳戶已經(jīng)存在,則返回錯(cuò)誤信息,告訴用戶帳號(hào)存在,請(qǐng)用戶從新輸入,并完成注冊(cè),進(jìn)程結(jié)束。
圖3.5 用戶注冊(cè)登陸模塊
(2)帳戶信息模塊
當(dāng)用戶登陸系統(tǒng)后,在個(gè)人中心中,可以通過(guò)修改資料的鏈接來(lái)修改個(gè)人資料(其中帳戶名是不允許修改的),通過(guò)我的話題來(lái)查看和修改自己發(fā)布的文章。
圖3.6 帳戶信息模塊
(3) 文章發(fā)布模塊
用戶登陸系統(tǒng)后可以查看其他所有用戶發(fā)的文章,并可以發(fā)布自己的話題,也可響應(yīng)回復(fù)其他用戶和自己發(fā)表的話題。
圖3.7 文章發(fā)布模塊
(4) 公告制度模塊
論壇管理員可以通過(guò)后臺(tái)管理系統(tǒng)發(fā)布論壇公告,今日話題,并可以設(shè)置版面圖標(biāo)。
(5) 版塊管理模塊
論壇管理員可以通過(guò)后臺(tái)管理系統(tǒng)控制論壇的版塊,管理員可以完成下列功能:添加分類或版面,版面配置或刪除;并可以對(duì)已存在的版塊設(shè)置屬性。
(6) 信息管理模塊
信息管理模塊主要完成下面的功能。信息配置;添加管理員; 編輯管理員;設(shè)定等級(jí);配置權(quán)限;重新登錄;安全退出;用戶等級(jí);用戶列表。
以上的功能完成了整個(gè)論壇的配置,用戶的管理,管理員的管理都可以通過(guò)對(duì)應(yīng)的鏈接來(lái)完成。
3.7系統(tǒng)故障處理設(shè)計(jì)
3.7.1出錯(cuò)信息
表
3-8出錯(cuò)或故障情況一覽表
| 錯(cuò)誤類型 | 錯(cuò)誤代號(hào) | 異常類型 | 輸出信息 | 處理方法 |
---|
1 | 用戶帳號(hào)不存在 | ERR_01 | NULL | 無(wú)此帳號(hào) | 請(qǐng)用戶注冊(cè) |
2 | 用戶密碼錯(cuò)誤 | ERR_02 | Check Error | 密碼錯(cuò)誤 | 重新輸入 |
3 | 數(shù)據(jù)庫(kù)連接錯(cuò)誤 | ERR_03 | Connect | 無(wú)法連接數(shù)據(jù)庫(kù) | 告訴用戶錯(cuò)誤。 |
4 | 數(shù)據(jù)庫(kù)查詢錯(cuò)誤 | ERR_04 | Select | 查詢數(shù)據(jù)庫(kù)出錯(cuò) | 請(qǐng)客戶稍后重試 |
5 | 數(shù)據(jù)庫(kù)查詢錯(cuò)誤 | ERR_04 | Insert(創(chuàng)建帳號(hào)) | 無(wú)法創(chuàng)建帳戶 | 請(qǐng)客戶稍后重試 |
6 | 數(shù)據(jù)庫(kù)查詢錯(cuò)誤 | ERR_04 | Delete(刪除好友) | 無(wú)法刪除好友 | 請(qǐng)客戶稍后重試 |
7 | 數(shù)據(jù)庫(kù)查詢錯(cuò)誤 | ERR_04 | Updata(更新數(shù)據(jù)) | 無(wú)法更新數(shù)據(jù)庫(kù) | 請(qǐng)客戶稍后重試 |
8 | 用戶沒(méi)有權(quán)限 | ERR_05 | Permissions(權(quán)限) | 用戶沒(méi)有權(quán)限 | 告知用戶 |
3.7.2補(bǔ)救措施
當(dāng)出現(xiàn)帳號(hào),密碼等通常的錯(cuò)誤時(shí),用戶可以重新輸入信息,即可解決,或是重新啟動(dòng)客戶端,當(dāng)出現(xiàn)無(wú)法連接數(shù)據(jù)庫(kù)或者是查詢中的錯(cuò)誤,通常系統(tǒng)管理員重新啟動(dòng)服務(wù)即可解決,由于數(shù)據(jù)庫(kù)的連接錯(cuò)誤是全局的,所以重新啟動(dòng)服務(wù)是最佳的操作。
3.7.3系統(tǒng)維護(hù)設(shè)計(jì)
用于系統(tǒng)的檢查與維護(hù)的檢測(cè)點(diǎn)和專用模塊,在這個(gè)版本中沒(méi)有出,將會(huì)在后續(xù)開(kāi)發(fā)中增加,例如自動(dòng)重新啟動(dòng)服務(wù),自動(dòng)糾正數(shù)據(jù)的錯(cuò)誤。以及用戶數(shù)據(jù)的安裝問(wèn)題,密碼的加密問(wèn)題。
第四章 詳細(xì)設(shè)計(jì)
4.1用戶注冊(cè)登陸模塊
4.1.1功能說(shuō)明
要完成論壇的各項(xiàng)操作,用戶必須登陸論壇系統(tǒng),如果沒(méi)有論壇帳戶,用戶注冊(cè)是必須的。用戶命令如果是退出,則清除用戶的狀態(tài)信息,并返回BBS 首頁(yè),如果是登錄則使用JDBC連接數(shù)據(jù)庫(kù),取得用戶輸入的帳號(hào)和密碼并查詢數(shù)據(jù)庫(kù),將得出的結(jié)果和用戶輸入的信息做比較,驗(yàn)證正確,顯示用戶已經(jīng)登陸到系統(tǒng),錯(cuò)誤將返回消息讓用戶從新輸入。如果用戶想注冊(cè)帳戶,則返回注冊(cè)頁(yè)面,用戶填寫(xiě)信息后,將檢測(cè)信息的正確性,如果帳號(hào)允許注冊(cè),則完成帳號(hào)的注冊(cè),將信息寫(xiě)如到數(shù)據(jù)庫(kù)中,如果帳戶已經(jīng)存在,則返回錯(cuò)誤信息,告訴用戶帳號(hào)存在,請(qǐng)用戶從新輸入,并完成注冊(cè),進(jìn)程結(jié)束。
4.1.2功能實(shí)現(xiàn)
----------------------------------------------------------------------------------------------------------------
登陸頁(yè)面:login.jsp
部分代碼:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<jsp:useBean id="con" scope="page" class="numb1.com.db"/>
<jsp:useBean id="ht" scope="page" class="numb1.com.Dohtml"/>
<jsp:useBean id="onLine" scope="application" class="numb1.com.onLine"/>
<%@ include file = "include/config.jsp" %>
<%
String p=request.getParameter("page");p=ht.donull(p);
String bdid=request.getParameter("bdid");bdid=ht.donull(bdid);
String bbsid=request.getParameter("bbsid");bbsid=ht.donull(bbsid);
String name="";
String root="";
String sendredir="first.jsp";
String sql;
ResultSet rs;
if(p.indexOf("display")!=-1){
sendredir=p+".jsp?bdid="+bdid+"&bbsid="+bbsid;
}else if(p.indexOf("main")!=-1){
sendredir=p+".jsp?id="+bdid;
}
%>
<%
String id=(String)request.getParameter("id");id=ht.donull(id);
String mm=(String)request.getParameter("pw");mm=ht.donull(mm);
boolean test;
if(id.compareTo("")!=0 && mm.compareTo("")!=0){
if(online_enable == "on"){
test=onLine.Login(id,request.getRemoteAddr());
}else{
test=true;
}
if(test){
sql="select*from numb1 where userid='"+id+"' and pw='"+mm+"'";
rs=con.query(sql);rs.next();if(rs.getRow()!=0){
session.setAttribute("id",id);
sql="select step, name from user where userid='"+id+"'";
rs=con.query(sql);rs.next();
if(rs.getRow()!=0){
root=rs.getString(1);
name=con.getStr(rs.getString(2));
session.setAttribute("root",root);
session.setAttribute("name",name);
}
sql="select ontims from online where userid='"+id+"'";
rs=con.query(sql);rs.next();
int count=rs.getInt(1)+1;
String ip=request.getRemoteAddr();
sql="update online set ontims="+count+",lastip='"+ip+"',lastim=now() where userid='"+id+"'";
con.update(sql);
response.sendRedirect(sendredir);
上面代碼實(shí)現(xiàn)用戶登陸界面,對(duì)用戶信息進(jìn)行驗(yàn)證,如果用戶名和密碼沒(méi)有錯(cuò)誤,則進(jìn)入論壇系統(tǒng),可以擁有注冊(cè)用戶所有的權(quán)限。否則提示錯(cuò)誤信息。
----------------------------------------------------------------------------------------------------------------
注冊(cè)頁(yè)面reg.jsp
部分代碼:
<script language="JavaScript" type="text/JavaScript">
function check_form(theform)
{
if (theform.id.value.length<4)
{
alert("對(duì)不起,您的ID長(zhǎng)度不夠!");
theform.id.focus();
return false;
}
if (theform.mm1.value.length<4)
{
alert("對(duì)不起,您的密碼長(zhǎng)度不夠!");
theform.id.focus();
return false;
}
if (theform.mm1.value==""||theform.mm2.value==""||theform.mm1.value!=theform.mm2.value)
{
alert("您輸入密碼的方式不正確,請(qǐng)確認(rèn)后正確輸入!");
theform.mm1.focus();
return false;
}
if (theform.mail.value=="")
{
alert("請(qǐng)輸入您的E-mail,以便您的密碼遺失后取回密碼!");
theform.mail.focus();
return false;
}
if (theform.mail.value.indexOf('@') == -1||
theform.mail.value.indexOf('.') == -1||
theform.mail.value.charAt(0)==".")
{
alert("Email地址格式不正確!");
theform.mail.focus();
return false;
}//value
if (theform.name.value=="")
{
alert("請(qǐng)輸入您的昵稱!");
theform.name.focus();
return false;
}
}
function KeyFilter(){
if (!((event.keyCode>96 && event.keyCode<123)||(event.keyCode>47 && event.keyCode<58)||(event.keyCode=95)))
return false;
}
</script>
上面代碼實(shí)現(xiàn)對(duì)用戶信息的驗(yàn)證,提示新用戶需要注意的問(wèn)題,那些選項(xiàng)是必須填寫(xiě)的,那些是可選的,并過(guò)濾一些非法字符,使注冊(cè)功能更完善。
----------------------------------------------------------------------------------------------------------------
4.1.3程序運(yùn)行過(guò)程截圖
用戶登陸頁(yè)面login.jsp
圖4.1 用戶登陸頁(yè)面
用戶注冊(cè)頁(yè)面reg.jsp
圖4.2 用戶注冊(cè)頁(yè)面
4.2帳戶信息模塊
4.2.1功能說(shuō)明
當(dāng)用戶登陸系統(tǒng)后,在個(gè)人中心,可以通過(guò)修改資料的鏈接來(lái)修改個(gè)人資料(其中帳戶名是不允許修改的),通過(guò)我的主題來(lái)查看和修改自己發(fā)布的文章。
4.2.2功能實(shí)現(xiàn)
----------------------------------------------------------------------------------------------------------------
主題顯示:pcmain.jsp
部分代碼:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<jsp:useBean id="con" scope="page" class="numb1.com.db"/>
<jsp:useBean id="ht" scope="page" class="numb1.com.Dohtml"/>
<jsp:useBean id="onLine" scope="application" class="numb1.com.onLine"/>
<%@ include file = "include/config.jsp" %>
<%
String id=(String)session.getAttribute("id");id=ht.donull(id);
String root=(String)session.getAttribute("root");root=ht.donull(root);
String name=(String)session.getAttribute("name");name=ht.donull(name);
String bdid=request.getParameter("id");
String stringpage=request.getParameter("page");//stringpage為未處理的字符串型的頁(yè)碼數(shù)
String table="";
String bdname="";
String logo="";
String information="";
String focus="";
String main="main.jsp";
String display="display.jsp";
String reer="";
String sql;
int retimes,readtimes;
int x=0;//計(jì)數(shù)器
int count=0;
int showrow=36;//每頁(yè)顯示條數(shù)
int pages=1;//當(dāng)前頁(yè)數(shù)
int startrow; //本頁(yè)開(kāi)始條數(shù)
int allcount=0;
//本頁(yè)文件名
String f_name=request.getRequestURI().substring(request.getRequestURI().lastIndexOf("/")+1,request.getRequestURI().lastIndexOf("."));
if(root.compareTo("")==0){root="0";}
int step=Integer.parseInt(root);
pages=ht.getInteger(stringpage,1);
if(!ht.isNumber(bdid)){
out.print("<meta http-equiv=/"refresh/" content=/"1;URL=first.jsp/"><center><font color=#FF0000><strong>參數(shù)錯(cuò)誤</strong></font></center>");
}else{
sql = "SELECT btable, name, logo, inform, focus, page FROM board WHERE id="+bdid;
ResultSet board=con.query(sql);board.next();
if(board.getRow()==0){
out.print("<meta http-equiv=/"refresh/" content=/"1;URL=index.jsp/"><center><font color=#FF0000><strong>該版不存在,參數(shù)錯(cuò)誤或該版以被刪除</strong></font></center>");
}else{
table=board.getString(1);
bdname=con.getStr(board.getString(2));
logo=con.getStr(board.getString(3));
information=con.getStr(board.getString(4));
focus=con.getStr(board.getString(5));
main=board.getString(6)+main;
display=board.getString(6)+display;
java.io.File f1=new java.io.File(absDir+relDir+main);
java.io.File f2=new java.io.File(absDir+relDir+display);
if(!f1.isFile()){main="main.jsp";}
if(!f2.isFile()){display="display.jsp";}
//驗(yàn)證頁(yè)面
if((main.compareTo(_self)!=0)){
response.sendRedirect(main+"?id="+bdid);
}else{
//計(jì)算本版總貼數(shù)
if(table.compareTo("")==0){table="btable1";}
sql="SELECT COUNT(id) FROM "+table+" WHERE boardid="+bdid;
ResultSet bcount=con.query(sql);bcount.next();
if(bcount.getRow()!=0){
allcount=bcount.getInt(1);
}
//計(jì)算頁(yè)數(shù)
sql="SELECT id, title, clas, super, recommendation, locked, userid, username, lastid, lastname, readtimes, retimes, lastretime FROM "+table+" WHERE boardid="+bdid+" AND up='n' ORDER BY lastretime DESC" ;
ResultSet rs=con.query(sql);
rs.last();
count=rs.getRow();
int pcount=count/showrow;
if(count%showrow>0){pcount=pcount+1;}
if(pcount<2)pcount=1;
if(pages<2)pages=1;
if(pages>pcount)pages=pcount;
startrow=(pages-1)*showrow+1;
if(online_enable == "on"){
String uId,uName,ip=request.getRemoteAddr();
if(id.compareTo("")==0){
uId="guest";
uName="guest";
}else{
uId=id;
uName=name;
}
onLine.addUser(uId,uName,(_self+"?id="+bdid),ip,onTime);
}
%>
本頁(yè)面實(shí)現(xiàn)對(duì)文章的分頁(yè)顯示功能,驗(yàn)證頁(yè)面,對(duì)各個(gè)版塊的主題進(jìn)行顯示和處理,可以提高用戶的瀏覽速度,結(jié)構(gòu)更整潔。
----------------------------------------------------------------------------------------------------------------
4.2.3程序運(yùn)行過(guò)程截圖
主題顯示:pcmain.jsp
圖4.3 主題顯示
4.3文章發(fā)布模塊
4.3.1功能說(shuō)明
用戶登陸系統(tǒng)后可以查看其他所有用戶發(fā)的文章,并可以發(fā)布自己的話題,也可響應(yīng)回復(fù)其他用戶和自己發(fā)表的話題。
4.3.2功能實(shí)現(xiàn)
----------------------------------------------------------------------------------------------------------------
文章發(fā)表:send.jsp
部分代碼:
<%
String bdid=request.getParameter("id");
String id=(String)session.getAttribute("id");
String bdname="";
String main="main.jsp";
if(id==null){response.sendRedirect("login.jsp");}else{
String sql="select name, page from board where id="+bdid;
ResultSet rs=con.query(sql);rs.next();
if(rs.getRow()!=0){
bdname=con.getStr(rs.getString(1));
main=rs.getString(2)+main;
}
con.close();
%>
本頁(yè)面提供用戶的發(fā)帖功能,用戶可以根據(jù)自己的需要發(fā)表帖子,可以選擇自己的類型,比如普通,原創(chuàng),轉(zhuǎn)帖等類型,有簽名功能,還可以使用多彩文本,給用戶提供更完美的選擇。
---------------------------------------------------------------------------------------------------------------
4.3.3程序運(yùn)行過(guò)程截圖
文章發(fā)表:send.jsp
圖4.4 文章發(fā)表
4.4公告制度模塊
4.4.1功能說(shuō)明
論壇管理員可以通過(guò)后臺(tái)管理系統(tǒng)發(fā)布論壇公告,今日話題。
論壇的制度上可以設(shè)置對(duì)文章操作的客戶積分,發(fā)帖數(shù),精華帖等功能。
4.4.2功能實(shí)現(xiàn)
公告信息:boardset.jsp
部分代碼:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<jsp:useBean id="con" scope="page" class="numb1.com.db"/>
<jsp:useBean id="ht" scope="page" class="numb1.com.Dohtml"/>
<%
String id=(String)session.getAttribute("id");id=ht.donull(id);
String root=(String)session.getAttribute("root");root=ht.donull(root);
String bdid=request.getParameter("bdid");
String table="";
String logo="";
String bdname="";
String inform="";
String focus="";
String bdmast="";
boolean test=false;
if(root.compareTo("")==0){root="0";}
int step=Integer.parseInt(root);
String sql="select btable,name,logo,inform,focus,boardmast from board where id="+bdid;
ResultSet rs=con.query(sql);rs.next();
if(rs.getRow()!=0){
table=rs.getString(1);
bdname=con.getStr(rs.getString(2));
logo=rs.getString(3);
inform=con.getStr(rs.getString(4));
focus=con.getStr(rs.getString(5));
bdmast=con.getStr(rs.getString(6));
String mast[]=ht.split(bdmast,"*");
for(int i=0;i<mast.length-1;i+=2){
if(mast[i].compareTo(id)==0){
test=true;
}
}
}con.close();
if(step>2 || test){
%>
本頁(yè)面是給管理員提供了對(duì)版塊更好的管理,可以通過(guò)發(fā)布公告給本論壇的用戶最新的通知,還有發(fā)表今日話題,能更快的對(duì)論壇進(jìn)行有效的管理。
---------------------------------------------------------------------------------------------------------------
4.4.3程序運(yùn)行過(guò)程截圖
公告信息:boardset.jsp
圖4.5 公告信息
4.5版塊管理模塊
4.5.1功能說(shuō)明
論壇管理員可以通過(guò)后臺(tái)管理系統(tǒng)開(kāi)控制論壇的版塊,管理員可以完成下列功能:添加分類或版面,版面配置或刪除.
4.5.2功能實(shí)現(xiàn)
--------------------------------------------------------------------------------------------------------------
權(quán)限列表:rootlist.jsp
部分代碼:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<jsp:useBean id="con" scope="page" class="numb1.com.db"/>
<jsp:useBean id="ht" scope="page" class="numb1.com.Dohtml"/>
<%
String root=(String)session.getAttribute("root");root=ht.donull(root);
String user_id=request.getParameter("id");user_id=ht.donull(user_id);
String user_name="";
String user_ontimes="";
String user_txts="";
String user_retxts="";
String user_point="";
String user_popu="";
String user_sup="";
String user_recom="";
String duty="";
int user_step=0;
boolean test=true;
if(root.compareTo("")==0){root="0";}
int step=Integer.parseInt(root);
if(step<4){
out.print("<meta http-equiv=/"refresh/" content=/"3;URL=../index.jsp/"><center><font color=#FF0000><strong>對(duì)不起,您無(wú)權(quán)進(jìn)入該頁(yè)面!</strong></font></center>");
}else{
String user="select step,root,name from user where userid='"+user_id+"'";
ResultSet use_rs=con.query(user);use_rs.next();
if(use_rs.getRow()==0){
test=false;
}else{
user_step=use_rs.getInt(1);
String user_root[]=ht.split(con.getStr(ht.donull(use_rs.getString(2))),"*");
if(user_root.length>1) duty="<a href=../main.jsp?id="+user_root[0]+">"+user_root[1]+"</a>";
user_name=con.getStr(use_rs.getString(3));
}
con.close();
String online="select ontims,txt,re,point,popu,suptxt,recomtxt from online where userid='"+user_id+"'";
ResultSet onl_rs=con.query(online);onl_rs.next();
if(onl_rs.getRow()==0){
test=false;
}else{
user_ontimes=onl_rs.getString(1);
user_txts=onl_rs.getString(2);
user_retxts=onl_rs.getString(3);
user_point=onl_rs.getString(4);
user_popu=onl_rs.getString(5);
user_sup=onl_rs.getString(6);
user_recom=onl_rs.getString(7);
}
con.close();
if(!test){
out.print("<meta http-equiv=/"refresh/" content=/"2;URL=../index.jsp/"><center><font color=#FF0000><strong>該會(huì)員不存在!</strong></font></center>");
}else{
%>
論壇管理員可以通過(guò)后臺(tái)管理系統(tǒng)控制論壇的版塊,管理員可以完成下列功能:任命斑竹,取消斑竹,改變權(quán)限等功能。
---------------------------------------------------------------------------------------------------------------
4.5.3程序運(yùn)行過(guò)程截圖
權(quán)限列表:rootlist.jsp
圖4.6 權(quán)限列表
4.6信息管理模塊
4.6.1功能說(shuō)明
信息管理模塊主要完成下面的功能。
留言管理;添加管理員; 編輯管理員;設(shè)定等級(jí);配置權(quán)限;重新登錄;安全退出;用戶等級(jí)。
以上的功能完成了整個(gè)論壇的配置,用戶的管理,管理員的管理都可以通過(guò)對(duì)應(yīng)的鏈接來(lái)完成。
4.6.2功能實(shí)現(xiàn)
---------------------------------------------------------------------------------------------------------------
留言管理:msend.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>發(fā)送短消息</title>
<style type="text/css">
<!--
.style2 {color: #FFFFFF}
td{font-size:13px;color:#868686}
th{font-size:15px}
-->
</style>
</head>
<body><br>
<br>
<%
String acid=request.getParameter("id");
%><form name="form1" method="post" action="actsend.jsp">
<table width="480" border="0" align="center" cellspacing="1" bgcolor="#cccccc">
<tr bgcolor="#7188e0">
<th colspan="2"><span class="style2">發(fā) 送 留 言</span></th>
</tr>
<tr bgcolor="#f8f8f8">
<td width="79"><div align="right">收信人ID:</div></td>
<td width="364"><% if(acid == null){ %> <input name="acid" type="text" id="acid" size="20" style="BORDER: #aaaaaa 1px solid;color:#686868;"><% }else{%>
<input name="acid" type="hidden" id="acid" value="<%=acid%>"><% out.print(acid);}%></td>
</tr>
<tr bgcolor="#f8f8f8">
<td><div align="right">留言主題:</div></td>
<td> <input name="title" type="text" id="title" size="30" style="BORDER: #aaaaaa 1px solid;color:#686868;">
</td>
</tr>
<tr bgcolor="#f8f8f8">
<td><div align="right">留言內(nèi)容:<br>
≤100漢字 </div></td>
<td> <textarea name="text" cols="45" rows="5" id="text" style="BORDER: #aaaaaa 1px solid; background:#f8f8f8; color:#686868; overflow:auto;"></textarea></td>
</tr>
<tr bgcolor="#f8f8f8">
<th colspan="2"> <input name="imageField" type="image" src="../img/next1.gif" onMouseOver="this.src='../img/next2.gif'" onMouseout="this.src='../img/next1.gif'" width="60" height="22" border="0"> <a href="javascript:history.back()"><img src="../img/close1.gif" width="60" height="22" border="0" onMouseOver="this.src='../img/close2.gif'" onMouseout="this.src='../img/close1.gif'"></a></th>
</tr>
</table>
</form>
</body>
</html>
本頁(yè)面主要實(shí)現(xiàn)對(duì)注冊(cè)用戶之間的留言管理,可以方便的在用戶之間留言,這樣增加了消息的隱蔽性,其他用戶是接收不到的。
---------------------------------------------------------------------------------------------------------------
4.6.3程序運(yùn)行過(guò)程截圖
留言管理:msend.jsp
圖4.7 留言管理
第五章 結(jié)論
在該系統(tǒng)的開(kāi)發(fā)過(guò)程中采用了當(dāng)今流行的多種熱門(mén)技術(shù),在開(kāi)發(fā)過(guò)程中嚴(yán)格遵守正規(guī)軟件系統(tǒng)開(kāi)發(fā)的流程,本系統(tǒng)在開(kāi)發(fā)過(guò)程中利用JSP和JavaBean相結(jié)合的技術(shù)充分體現(xiàn)了java這一語(yǔ)言一次開(kāi)發(fā)處處運(yùn)行的特點(diǎn)。開(kāi)發(fā)中嚴(yán)格遵守軟件工程中技術(shù)和說(shuō)明文檔的書(shū)寫(xiě)和備份,為系統(tǒng)測(cè)試和維護(hù)提供一個(gè)良好的書(shū)面說(shuō)明。
本系統(tǒng)實(shí)現(xiàn)了大部分論壇所擁有的功能。使用了JSP和JavaBean相結(jié)合的這門(mén)技術(shù)使系統(tǒng)的可移植性得到很大的提高,在系統(tǒng)將來(lái)使用范圍進(jìn)一步擴(kuò)大的情況下本系統(tǒng)可以在原有的基礎(chǔ)上作升級(jí)和拓展。
參考文獻(xiàn)(References)
[1]彭木根. 數(shù)據(jù)倉(cāng)庫(kù)技術(shù)與實(shí)現(xiàn)[M]. 電子工業(yè)出版社,2002-6
[2]Lou Agosta. 數(shù)據(jù)倉(cāng)庫(kù)技術(shù)指南[M]. 人民郵電出版社,2000-11
[3]Efrem G.Mallach. Decision Support and Data Warehouse Systems. 清華大學(xué)出版社,2001-1
[4]Marty Hall著,鄧英才譯. Servlet與JSP核心技術(shù). 人民郵電出版社,2001-10
[5]Michael Abbey, Michael J. Corey, lan Abramson 著,王蘭成譯. Oracle 8i初學(xué)者指南. 機(jī)械工業(yè)出版社,2001-4
[6]耿祥義. JAVA課程設(shè)計(jì). 清華大學(xué)出版社, 2001-6
[7]飛思科技產(chǎn)品研發(fā)中心編著. JSP應(yīng)用開(kāi)發(fā)詳解. 電子工業(yè)出版社,2002-1
[8]飛思科技產(chǎn)品研發(fā)中心編著. JAVA TCP/IP應(yīng)用開(kāi)發(fā)詳解. 電子工業(yè)出版社,2002-1
[9]網(wǎng)冠科技編著. JavaScript時(shí)尚編程百例. 機(jī)械工業(yè)出版社,2001.
[10]Hans Bergsten著.何健輝,許俊娟譯. JSP設(shè)計(jì). 中國(guó)電力出版社,2004-11
[11]Hans Bergsten. Java Server Pages. 3rd Edition. O'Reilly Publisher, December 2003.
致 謝
在本系統(tǒng)的開(kāi)發(fā)過(guò)程中得到了多方面的幫助和協(xié)作,在此感謝學(xué)校領(lǐng)導(dǎo)給予的重視和指導(dǎo)老師胡軍多方面幫助,同時(shí)感謝所有在項(xiàng)目開(kāi)發(fā)過(guò)程中提供幫助的人員。
感謝我的導(dǎo)師胡軍老師,他嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣;你循循善誘的教導(dǎo)和不拘一格的思路給予我無(wú)盡的啟迪。這篇論文的設(shè)計(jì)細(xì)節(jié)和數(shù)據(jù),都離不開(kāi)你的細(xì)心指導(dǎo)。你嚴(yán)肅的科學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精益求精的工作作風(fēng),深深地感染和激勵(lì)著我。幫助我能夠很快的融入這個(gè)新的設(shè)計(jì)。感謝我的室友們,來(lái)自各個(gè)地區(qū),相聚到這個(gè)陌生的城市里,是你們和我共同維系著彼此之間兄弟般的感情,維系著寢室那份家的融洽。我們?cè)谝黄鸬娜兆?,我?huì)記一輩子的。
在論文即將完成之際,我的心情無(wú)法平靜,從開(kāi)始進(jìn)入課題到論文的順利完成,有多少可敬的師長(zhǎng)、同學(xué)、朋友給了我無(wú)言的幫助,在這里請(qǐng)接受我誠(chéng)摯的謝意!
關(guān)鍵詞:論壇,設(shè)計(jì),實(shí)現(xiàn)