版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 2014 屆畢業(yè)設(shè)計(jì)說(shuō)明書(shū)</p><p> 基于B/S的QQ聊天軟件的設(shè)計(jì)與實(shí)現(xiàn)</p><p> 院 部: 計(jì)算機(jī)與信息科學(xué)學(xué)院 </p><p> 學(xué)生姓名: </p><p> 指導(dǎo)教師: 職稱 </p><
2、;p> 指導(dǎo)教師: 職稱 </p><p> 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) </p><p> 班 級(jí): </p><p> 完成時(shí)間: 2014-5 </p><p><b> 摘 要<
3、;/b></p><p> 在當(dāng)今社會(huì),隨著網(wǎng)絡(luò)的逐漸普及,互聯(lián)網(wǎng)已經(jīng)成為人們生活中必不可少的一部分,人們能夠從互連網(wǎng)上獲取所需要的信息并且通過(guò)互聯(lián)網(wǎng)與朋友親人交流,隨著網(wǎng)絡(luò)應(yīng)用越來(lái)越廣泛,如何快速獲取所需要的信息已經(jīng)成為時(shí)下必須要解決的問(wèn)題。要開(kāi)發(fā)一個(gè)聊天室,首先,在我們腦海中,要有這個(gè)聊天室的初步的整體概況。在諸多的公共聊天室中,其核心功能無(wú)非都是注冊(cè)登錄、群聊私聊、找回密碼、退出,而管理員的核心功能
4、大多數(shù)是登錄、用戶資料管理、在線用戶管理、聊天記錄管理等功能。在聊天頁(yè)面中,瀏覽器不斷的對(duì)文本或數(shù)據(jù)庫(kù)進(jìn)行刷新、讀取,并進(jìn)行實(shí)時(shí)更新在線的用戶。</p><p> 本聊天室系統(tǒng)由JSP技術(shù)與MySQL數(shù)據(jù)庫(kù)相結(jié)合基于B/S模式開(kāi)發(fā)完成,以Struts2框架作為主要的技術(shù)框架,以MyEclipse8.5作為開(kāi)發(fā)工具,以apache-tomcat-6.0.28做為服務(wù)器。本聊天室系統(tǒng)的主要有普通用戶和管理員兩個(gè)角色
5、,普通用戶主要有注冊(cè)登錄、找回密碼、群聊私聊、字體設(shè)置、背景顏色設(shè)置、在線音樂(lè)試聽(tīng)、退出這幾個(gè)功能;管理員的主要功能有登錄、在線用戶管理、用戶資料管理、過(guò)濾字段管理、聊天記錄管理、音樂(lè)管理。</p><p> 關(guān)鍵詞:B/S;數(shù)據(jù)庫(kù);聊天室;MySQL</p><p><b> ABSTRACT</b></p><p> In today
6、's society, with the growing popularity of the Internet, the Internet has become an essential part of people's life, people can find needed information from the Internet and communication through the Internet wit
7、h the friend's close relatives, along with the network application more and more widely, how to quickly get the information they need to have become nowadays must solve the problem.To develop a chat room, first of al
8、l, in our mind, to have the general situation of the preliminary</p><p> This chat room system combined by the JSP technology and MySQL database based on B/S pattern development is complete, with the Struts
9、2 framework, as the main technical framework, to MyEclipse8.5 as a development tool, with apache tomcat -- 6.0.28 as a server.This chat room system mainly has two roles ordinary users and administrators and ordinary user
10、s are registered login, retrieve password, group of private chat, font, background color Settings, online music audition, exit this a few functions</p><p> Key word: b/s; database; chatroom; mysql</p>
11、;<p><b> 目 錄</b></p><p><b> 1 概述1</b></p><p> 1.1 研究開(kāi)發(fā)背景1</p><p> 1.2 選題的意義2</p><p> 1.3 國(guó)內(nèi)外研究現(xiàn)狀3</p><p> 1
12、.4 本文組織結(jié)構(gòu)3</p><p> 2 開(kāi)發(fā)工具及技術(shù)介紹5</p><p> 2.1 開(kāi)發(fā)環(huán)境5</p><p> 2.2 系統(tǒng)開(kāi)發(fā)工具5</p><p> 2.3 B/S結(jié)構(gòu)的簡(jiǎn)介5</p><p> 2.4 MySQL簡(jiǎn)介6</p><p> 3
13、系統(tǒng)需求分析7</p><p> 3.1 綜合需求7</p><p> 3.2 系統(tǒng)可行性分析7</p><p> 3.2.1 技術(shù)及開(kāi)發(fā)方法可行性7</p><p> 3.2.2 管理可行性7</p><p> 3.2.3 經(jīng)濟(jì)可行性8</p><p> 3.
14、3 功能需求8</p><p> 3.3.1 用例分析8</p><p> 3.3.2 場(chǎng)景分析9</p><p> 4 系統(tǒng)設(shè)計(jì)11</p><p> 4.1 系統(tǒng)總體設(shè)計(jì)11</p><p> 4.2 系統(tǒng)功能模塊11</p><p> 4.2.1 前臺(tái)
15、頁(yè)面的模塊12</p><p> 4.2.2 后臺(tái)頁(yè)面的功能模塊12</p><p> 4.2.3 系統(tǒng)流程圖13</p><p> 5 數(shù)據(jù)庫(kù)設(shè)計(jì)15</p><p> 5.1 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)15</p><p> 5.2 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)16</p><p&
16、gt; 5.3 數(shù)據(jù)庫(kù)物理結(jié)構(gòu)設(shè)計(jì)17</p><p> 6 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)19</p><p> 6.1 用戶注冊(cè)19</p><p> 6.2 用戶登陸19</p><p> 6.3 找回密碼21</p><p> 6.4 聊天室22</p><p>
17、 6.5 后臺(tái)管理24</p><p> 7 系統(tǒng)測(cè)試27</p><p> 7.1 系統(tǒng)測(cè)試27</p><p> 7.2 功能測(cè)試27</p><p><b> 總 結(jié)30</b></p><p><b> 參考文獻(xiàn)31</b><
18、;/p><p><b> 致 謝32</b></p><p><b> 1 概述</b></p><p> 在網(wǎng)絡(luò)世界中,聊天室(Chat Room)是一個(gè)最常見(jiàn)的服務(wù),它最早起源于BBS站點(diǎn),聊天室作為一個(gè)在漫漫長(zhǎng)夜打發(fā)消遣時(shí)間的最佳軟件,除了能夠用于聊天消遣時(shí)間以外,還擁有語(yǔ)音聊天、視頻聊天、共享圖片、文件
19、等功能?,F(xiàn)在隨著網(wǎng)絡(luò)的發(fā)展,聊天室發(fā)展的速度已經(jīng)非常迅速了,現(xiàn)在的聊天室技術(shù),都已經(jīng)運(yùn)用到了“網(wǎng)絡(luò)會(huì)議”上,現(xiàn)在有很多的會(huì)議在網(wǎng)上視頻聊天會(huì)議[9]。</p><p> 在市面上,聊天室的應(yīng)用軟件出現(xiàn)得比較早,比如說(shuō),Microsoft Chat,一個(gè)在界面及功能方面都已經(jīng)非常完善的“聊天室”的應(yīng)用軟件,它是一套獨(dú)立于瀏覽器之外的,即與瀏覽器無(wú)關(guān)的,需要下載客戶端安裝使用的套裝軟件,在使用它之前還需要先熟悉其中
20、的操作界面,才能夠使用這個(gè)軟件,這對(duì)于新時(shí)代匆匆忙忙,并沒(méi)有太多時(shí)間去學(xué)習(xí)的網(wǎng)友來(lái)說(shuō),是一個(gè)非常不方便的缺陷。因此,開(kāi)發(fā)出來(lái)一個(gè)操作簡(jiǎn)單,方便,不需要下載客戶端安裝使用的聊天軟件已經(jīng)成為廣大網(wǎng)民的迫切需求。所以,根據(jù)網(wǎng)民的需求,越來(lái)越多的公司和網(wǎng)站開(kāi)始開(kāi)發(fā)基于瀏覽器的,不需要下載客戶端安裝使用,不需要熟悉界面操作的聊天室,以便造福更多的網(wǎng)友[12]。</p><p> 1.1 研究開(kāi)發(fā)背景</p>
21、<p> 由于電子科技的迅速發(fā)展,網(wǎng)絡(luò)時(shí)代到來(lái),人們通訊方式也不斷的發(fā)生改變,從以前的寫(xiě)信到后來(lái)的呼機(jī),到現(xiàn)在的手機(jī),不斷地往高科技方向發(fā)展。然而人們的聊天的方式也在發(fā)生改變,因此聊天室也隨之慢慢的發(fā)展起來(lái)了,慢慢受到人們喜愛(ài),現(xiàn)在我們QQ中就有各種各樣的群,有的娛樂(lè)、有的技術(shù)交流、有的用來(lái)工作,總之應(yīng)用非常廣。聊天室的開(kāi)發(fā)是有必要的,其發(fā)展的前景也是非常大的。</p><p> 聊天室現(xiàn)在用于
22、娛樂(lè)方面還是比較少的,主要還是用于商業(yè)方面,就目前聊天室的市場(chǎng)結(jié)構(gòu)來(lái)看, 現(xiàn)在大多數(shù)的網(wǎng)站幾乎都擁有一個(gè)完全屬于自己的聊天室,現(xiàn)在的聊天室,運(yùn)作起來(lái)是非常的簡(jiǎn)單,當(dāng)然也有非常復(fù)雜的,如像QQ和YY那種聊天的工具。在國(guó)外,現(xiàn)在就一個(gè)普通的商務(wù)網(wǎng)上或者娛樂(lè)網(wǎng)站都有屬于自己的聊天工具。聊天室的之所以這么普及主要有兩個(gè)原因:一、由于現(xiàn)在這方面的技術(shù)已經(jīng)是相當(dāng)?shù)某墒?,開(kāi)發(fā)這種軟件的成本高;二、聊天這種軟件不管是運(yùn)作起來(lái)還使用起來(lái)都是比較方便的。所
23、有很受人們的歡迎,現(xiàn)在都有很多專門做這種軟件的公司了。在我國(guó),聊天室市場(chǎng)集中度還不是很高, 其中只有一些大型的商業(yè)網(wǎng)站或者一些專門娛樂(lè)性的網(wǎng)站才有,所有在我國(guó)的市場(chǎng)還是相當(dāng)?shù)拇蟆?lt;/p><p> 在我國(guó),由于現(xiàn)在的電腦的價(jià)格非常的便宜,人們的生活水平的提高,對(duì)網(wǎng)絡(luò)的需要越來(lái)越大,除了在網(wǎng)上玩游戲、談生意、購(gòu)物、查閱資料以外,還有就是用于聊天娛樂(lè),當(dāng)我們身處在一個(gè)群體當(dāng)中的時(shí)候,不管是在工作還是在學(xué)習(xí)中也好,我
24、們都會(huì)建立起一個(gè)屬于自己的聊天室,它的聊天功能是聊天室中運(yùn)用最廣的功能,這是網(wǎng)上最受歡迎和最普通以中聊天方式。聊天具有應(yīng)用廣泛、開(kāi)發(fā)簡(jiǎn)單、 操作方便、功能齊全、信息傳遞、簡(jiǎn)單快捷等的特獨(dú)有性,因?yàn)樗怯梦淖謥?lái)傳播信息,所有用于聊天時(shí)候的信息交流比較方便,相當(dāng)于人與人面對(duì)面的交流,受到大多數(shù)人喜歡,因此有很多人喜歡在聊天室中聊天,還沒(méi)面對(duì)面那種羞澀[2]。</p><p> 1.2 選題的意義</p>
25、;<p> 現(xiàn)在的通訊系統(tǒng),除了我們生活中用于正常交流和聯(lián)系以外,在現(xiàn)在的商業(yè)中也慢慢的興起,運(yùn)用到網(wǎng)上交易中,聊天室為客戶與客戶之間的溝通提供了一個(gè)有效交流平臺(tái),使得與客戶之間的聊天沒(méi)有時(shí)間和空間的距離感。在時(shí)間上,這邊發(fā)一條信息到另外一邊所用的時(shí)間只需要不到1秒的時(shí)間,幾乎是立即得到響應(yīng),比發(fā)送一份郵件的信息傳遞速度快了幾百倍,非常的節(jié)省時(shí)間;在經(jīng)濟(jì)上,我們打電話是按時(shí)間分鐘來(lái)計(jì)費(fèi)的,如果是長(zhǎng)途電話的話更貴,而我們的
26、聊天室是通過(guò)互聯(lián)網(wǎng)來(lái)接通的,價(jià)格十分便宜。當(dāng)然我們不能否定郵件和電話,在用于不同的地方,它們又比聊天室好?;贐/S的聊天室是瀏覽器/服務(wù)的,與基于C/S架構(gòu)的騰訊QQ等聊天軟件相比起來(lái),這種B/S[7]架構(gòu)的聊天室,是不需要下載安裝,直接是在瀏覽器上運(yùn)行。因此,對(duì)于一個(gè)公司和企業(yè)來(lái)說(shuō),開(kāi)發(fā)一個(gè)用于網(wǎng)站、娛樂(lè)或者論壇來(lái)交流的聊天室,其中包括群聊和私聊,成為了現(xiàn)在眾多公司或集體的重要需求[14]。</p><p>
27、 這次開(kāi)發(fā)的基于B/S架構(gòu)的聊天室,是用現(xiàn)在流行JAVA[1]語(yǔ)言來(lái)開(kāi)發(fā)的,用MyEclipse8.5作為開(kāi)發(fā)平臺(tái),因?yàn)镸yEclipse8.5開(kāi)發(fā)B/S[6]架構(gòu)運(yùn)行在瀏覽器上的系統(tǒng)比較方便,并且用到的數(shù)據(jù)庫(kù)是當(dāng)前非常受歡迎的MySQL數(shù)據(jù),作為后臺(tái)數(shù)據(jù)庫(kù)存儲(chǔ)一些信息,建立一些表格?,F(xiàn)在的隨著WEB技術(shù)不斷加強(qiáng),B/S架構(gòu)的設(shè)計(jì)模式開(kāi)始流行起來(lái),因?yàn)锽/S架構(gòu)的是網(wǎng)頁(yè)版的,作為客戶端只需要在瀏覽器上操作,沒(méi)有下載安裝客戶端的說(shuō)法。B
28、/S模式將實(shí)現(xiàn)系統(tǒng)核心功能的代碼全部都放著到服務(wù)器上,只有該系統(tǒng)的服務(wù)器夠強(qiáng)大就可以無(wú)限的運(yùn)行,如果客戶端崩潰,也只是在瀏覽器上而已,只需要重新打開(kāi)一個(gè)頁(yè)面就可以了,從某種一定程度上,這個(gè)系統(tǒng)只需要開(kāi)發(fā)一個(gè)強(qiáng)大的服務(wù)器,從而簡(jiǎn)化了系統(tǒng)的開(kāi)發(fā)和維護(hù)?;贐/S架構(gòu)的聊天室系統(tǒng),與那些C/S[8]模式聊天室相比較,最大的優(yōu)點(diǎn):只要你有瀏覽器,就可以隨時(shí)隨地進(jìn)行聊天,而不需要下載安裝客戶端,從而實(shí)現(xiàn)了客戶端零安裝、零維護(hù)的需求,提高了其中的效
29、率[6]。</p><p> 1.3 國(guó)內(nèi)外研究現(xiàn)狀</p><p> 隨著互聯(lián)網(wǎng)的發(fā)展以及普及,網(wǎng)絡(luò)聊天軟件逐漸成為網(wǎng)絡(luò)用戶必備的聯(lián)絡(luò)工具,它為廣大網(wǎng)民提供了一種方便快捷的溝通方式,而網(wǎng)絡(luò)聊天室作為出現(xiàn)最早,也是操作簡(jiǎn)單的網(wǎng)上聊天方式,受到了眾多網(wǎng)民的追捧。</p><p> 在國(guó)內(nèi),1999年2月,深圳騰訊公司正式發(fā)布OICQ99 beta build
30、0210,開(kāi)通騰訊網(wǎng)絡(luò)聊天服務(wù)。2000年5月,騰訊QQ在線人數(shù)已經(jīng)突破10萬(wàn)。2001年2月l0日,騰訊QQ在線人數(shù)已經(jīng)突破100萬(wàn)。2004年4月份,騰訊QQ在線人數(shù)的最高記錄已經(jīng)突破了600萬(wàn),現(xiàn)在騰訊公司正在把網(wǎng)絡(luò)聊天系統(tǒng)往移動(dòng)聊天方向擴(kuò)展,如今已經(jīng)將網(wǎng)絡(luò)聊天與手機(jī)短信息(SMS)成功結(jié)合起來(lái)。如今網(wǎng)絡(luò)聊天軟件涉及和影響的范圍越來(lái)越廣,其競(jìng)爭(zhēng)也越來(lái)越激烈。</p><p> 在國(guó)外,MSN——借助和Wi
31、ndows操作系統(tǒng)的綁定似乎已是使用最廣泛的聊天軟件。使用MSN,可以通過(guò)文本、語(yǔ)音、視頻與朋友、親人聊天,還可以與朋友、親人傳輸文件,共享圖片等。</p><p> 但是,這些聊天軟件都是基于C/S架構(gòu)的,都需要通過(guò)下載客戶端進(jìn)行安裝使用,在更新方面也需要下載更新,而且用戶名、密碼和聊天記錄等都是存在本地機(jī)器上的,在安全性和方便性方面都有所欠缺。</p><p> Browser/
32、Server(瀏覽器/服務(wù)器)結(jié)構(gòu),是隨互聯(lián)網(wǎng)技術(shù)伴生的,是對(duì)C/S架構(gòu)的進(jìn)行改進(jìn)的一種結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶不需要通過(guò)下載客戶端安裝使用和更新,只需要有瀏覽器就可以實(shí)現(xiàn),而且可以隨時(shí)隨地地使用,不會(huì)受到時(shí)間與地域的影響。與C/S相比,B/S 的優(yōu)勢(shì)是B/S是建立在廣域網(wǎng)之上的, 一般情況下只要有操作系統(tǒng)和瀏覽器就可以了,不需要有專門的網(wǎng)絡(luò)硬件環(huán)境,而C/S則是建立在專用網(wǎng)絡(luò)上的,必須是小范圍網(wǎng)絡(luò)環(huán)境,所以,B/S架構(gòu)的聊天室開(kāi)發(fā)起來(lái)
33、比C/S架構(gòu)的要簡(jiǎn)單,容易。而且B/S架構(gòu)的聊天室實(shí)現(xiàn)了系統(tǒng)的無(wú)縫升級(jí),系統(tǒng)維護(hù)開(kāi)銷小。最主要的是B/S架構(gòu)的聊天室是基于瀏覽器的,與操作平臺(tái)無(wú)關(guān),所以不需要考慮兼容性問(wèn)題[6]。</p><p> 1.4 本文組織結(jié)構(gòu)</p><p> 本文圍繞著開(kāi)發(fā)一個(gè)基于B/S的QQ聊天軟件,描述了完成開(kāi)發(fā)這個(gè)系統(tǒng)的主要流程,本文分為以下幾部分:</p><p> 介
34、紹的是基于B/S的QQ聊天軟件的研發(fā)背景、選題意義和國(guó)內(nèi)外現(xiàn)狀;</p><p> 介紹的是QQ聊天軟件要使用的開(kāi)發(fā)環(huán)境、開(kāi)發(fā)工具以及要使用到的技術(shù);</p><p> 介紹的是QQ聊天軟件的需求分析;</p><p> 介紹的是系統(tǒng)的設(shè)計(jì)與及系統(tǒng)需要有的功能模塊;</p><p> 介紹的是數(shù)據(jù)庫(kù)的設(shè)計(jì)與創(chuàng)建;</p>
35、<p> 介紹的是系統(tǒng)的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn);</p><p> 主要是對(duì)本系統(tǒng)進(jìn)行測(cè)試,證明系統(tǒng)的可行性。</p><p> 2 開(kāi)發(fā)工具及技術(shù)介紹</p><p><b> 2.1 開(kāi)發(fā)環(huán)境</b></p><p> 系統(tǒng)名:基于B/S的QQ聊天軟件的設(shè)計(jì)與實(shí)現(xiàn)</p><p&
36、gt; 操作系統(tǒng):windows7 32位</p><p> 硬件支持:CPU 英特爾Core i5-480M(雙核)</p><p><b> 內(nèi)存 6GB</b></p><p> 顯卡 ATI/AMD Radeon HD 64x0M/74x0M</p><p> 2.2 系統(tǒng)開(kāi)發(fā)工具&
37、lt;/p><p> 開(kāi)發(fā)工具: MyEclipse 8.5 </p><p> 服務(wù)器:apache-tomcat-6.0.28</p><p><b> 數(shù)據(jù)庫(kù):MySQL</b></p><p> 2.3 B/S結(jié)構(gòu)的簡(jiǎn)介</p><p> 在傳統(tǒng)的兩層的C/S結(jié)構(gòu)中,隨著技術(shù)慢慢的
38、發(fā)展出現(xiàn)了它的局限性,C/S結(jié)構(gòu)模式比較適合于那種系統(tǒng)規(guī)模比較小、用戶也比較少、而且數(shù)據(jù)庫(kù)還是單一的情況下,并且運(yùn)行的網(wǎng)絡(luò)環(huán)境必須是安全的和快速 (例如局域網(wǎng) )。由于網(wǎng)絡(luò)技術(shù)的發(fā)展之快,所運(yùn)行的應(yīng)用系統(tǒng)的規(guī)模在慢慢的擴(kuò)大 ,其中的復(fù)雜性越來(lái)越高,在現(xiàn)在多用戶、多數(shù)據(jù)庫(kù)、多接口的系統(tǒng)中,并且網(wǎng)絡(luò)環(huán)境下也是非安全的(例如:Internet)的網(wǎng)絡(luò)環(huán)境中,傳統(tǒng)的兩層C/S結(jié)構(gòu)的應(yīng)用模型無(wú)法滿足現(xiàn)狀,跟不上時(shí)代步伐,而且這種模式是單一的服務(wù)器
39、,主要以局域網(wǎng)為中心的 ,因此想要把傳統(tǒng)的模式擴(kuò)展至大型企業(yè)的廣域網(wǎng)或強(qiáng)大的Intranet中是不可能的,因此B/S體系結(jié)構(gòu)三層客戶/服務(wù)器模式隨之興起,成為當(dāng)今最受歡迎的一種體系結(jié)構(gòu)[8]。</p><p> 三層客戶/服務(wù)器模式是稱之為B/S體系結(jié)構(gòu),是在以前傳統(tǒng)兩層的C/S結(jié)構(gòu)模式的集成上,增加了一級(jí)成為了現(xiàn)在流行的三層客戶/服務(wù)器模式。B/S體系結(jié)構(gòu)在邏輯上將應(yīng)用功能分為3層,分別是顯示層、業(yè)務(wù)層、數(shù)據(jù)
40、層??蛻麸@示層是服務(wù)有客戶端的,為客戶的圖形界面功能提供相對(duì)應(yīng)的應(yīng)用服務(wù)的,從而幫助客戶迅速快捷的定位于應(yīng)用服務(wù)。業(yè)務(wù)邏輯層是在顯示層和數(shù)據(jù)層之間,是為企業(yè)實(shí)現(xiàn)該企業(yè)的業(yè)務(wù)邏輯提,專門的設(shè)計(jì)供的一個(gè)明確有效的層次,具有一定的邏輯性,在這個(gè)層次中,封裝了與系統(tǒng)相關(guān)聯(lián)的應(yīng)用模型,同時(shí)把顯示層和數(shù)據(jù)庫(kù)代碼部分的數(shù)據(jù)層區(qū)分開(kāi)來(lái) 數(shù)據(jù)層是三層模式中最底層的結(jié)構(gòu),這個(gè)層的主要目的是用來(lái)定義、維護(hù)、訪問(wèn)和更新數(shù)據(jù),簡(jiǎn)單的說(shuō),就是管理數(shù)據(jù)庫(kù)的,同時(shí)管理
41、和滿足應(yīng)用服務(wù)對(duì)數(shù)據(jù)庫(kù)發(fā)送的一系列請(qǐng)求,維護(hù)數(shù)據(jù)庫(kù)得管理。這種三層體系結(jié)構(gòu)關(guān)系如圖1所示: </p><p> 圖1 B/S三層架構(gòu)示意圖 </p><p> 2.4 MySQL簡(jiǎn)介 </p><p> MySQL數(shù)據(jù)庫(kù)是一個(gè)精巧的SQL數(shù)據(jù)庫(kù)管理系統(tǒng),這個(gè)數(shù)據(jù)庫(kù)相對(duì)其他那些數(shù)據(jù)庫(kù)來(lái)說(shuō),是非常小的。MySQL數(shù)據(jù)庫(kù)很容易安裝,它是在DOC命令的窗口運(yùn)行
42、的,但是它是具有強(qiáng)大的數(shù)據(jù)開(kāi)發(fā)和維護(hù)功能、源代碼開(kāi)發(fā)的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),還有就是這個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)具有非常強(qiáng)靈活性和豐富的應(yīng)用編程接口以及精巧的系統(tǒng)結(jié)構(gòu)性。同時(shí)運(yùn)用起來(lái)不占什么內(nèi)存,還有他它快速,健壯和易用的特性,同時(shí)所用到經(jīng)濟(jì)成本也是非常的地,所以現(xiàn)在那些小型的企業(yè)的數(shù)據(jù)庫(kù)基本上都采用這種數(shù)據(jù)庫(kù)管理系統(tǒng),其中的主要原因上面以及介紹了。所以在現(xiàn)在的那些小型的項(xiàng)目中,基本都會(huì)選擇這種數(shù)據(jù)。SQL是一種標(biāo)準(zhǔn)化的語(yǔ)言,它不僅在MySQL數(shù)
43、據(jù)庫(kù)能運(yùn)行還能在SQL Server中運(yùn)行,所以MySQL數(shù)據(jù)庫(kù)的SQL語(yǔ)言是可以在其他數(shù)據(jù)中使用。同時(shí)MySQL還能夠足夠快和靈活存儲(chǔ)記錄文件和圖像等屬性,可見(jiàn)這個(gè)數(shù)據(jù)庫(kù)得功能之強(qiáng)大[11]。</p><p> MySQL數(shù)據(jù)庫(kù)軟件有幾個(gè)版本,分別是標(biāo)準(zhǔn)版、企業(yè)版和集群版3個(gè)版本。MySQL數(shù)據(jù)庫(kù)的主要特點(diǎn)是體積小、速度快和成本低3個(gè)特點(diǎn),其中在成本低MySQL數(shù)據(jù)庫(kù)優(yōu)勢(shì)下,它的局限性已經(jīng)不是什么問(wèn)題了,而且
44、它能滿足現(xiàn)在的那些中小型的系統(tǒng)或者網(wǎng)站,所以,使得一般中小型網(wǎng)站的開(kāi)發(fā)都會(huì)選擇MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。同時(shí)MySQL數(shù)據(jù)庫(kù)相比其他的數(shù)據(jù)而言,在相同的運(yùn)行環(huán)境中,可能維護(hù)起來(lái)會(huì)比較的容易些,所以在數(shù)據(jù)維護(hù)方面的,所需要的人力和財(cái)力會(huì)減少很多,減少了企業(yè)的開(kāi)支[16]。</p><p><b> 3 系統(tǒng)需求分析</b></p><p><b> 3.
45、1 綜合需求</b></p><p> 通過(guò)調(diào)查可以得知,在本系統(tǒng)中,用戶的類型有兩種:普通用戶和管理員。普通用戶可以通過(guò)注冊(cè)用戶名,進(jìn)入聊天系統(tǒng),在聊天室中可以給所有人發(fā)送群聊信息,也可以和聊天室中的某個(gè)在線用戶進(jìn)行私聊。管理員在注冊(cè)成為普通用戶以后也可以進(jìn)入前臺(tái)的聊天頁(yè)面,跟普通用戶一樣,進(jìn)行聊天。管理員除了具有普通用戶的功能外,還可以通過(guò)管理員的身份進(jìn)入后臺(tái)管理系統(tǒng),對(duì)系統(tǒng)進(jìn)行管理和維護(hù)。&
46、lt;/p><p> 聊天室的最大特點(diǎn)就是能夠?qū)α奶靸?nèi)容進(jìn)行實(shí)時(shí)刷新,能夠?qū)崟r(shí)顯示聊天內(nèi)容。即在同一個(gè)聊天室的使用者,可以在短時(shí)間內(nèi)立刻看到其他聊天者的發(fā)言,并且能夠通過(guò)實(shí)時(shí)刷新看到在線人數(shù)列表。</p><p> 本系統(tǒng)有普通用戶和管理員兩個(gè)角色。在系統(tǒng)中,普通用戶實(shí)現(xiàn)的功能有用戶注冊(cè)、用戶登錄、找回密碼、進(jìn)入聊天室聊天、試聽(tīng)音樂(lè)等功能。聊天時(shí),用戶可以設(shè)置字體的大小、顏色等,實(shí)時(shí)顯示聊
47、天信息,并且實(shí)時(shí)顯示在線聊天的人員列表,好友狀態(tài),用戶還可以手動(dòng)更換背景顏色。同時(shí),系統(tǒng)還有支持用戶在線播放音樂(lè)的功能。管理員除了可以以普通用戶的身份實(shí)現(xiàn)普通用戶的功能以外,還可以以管理員的身份實(shí)現(xiàn)管理員的功能。管理員實(shí)現(xiàn)的功能有剔除普通用戶、過(guò)濾非法聊天內(nèi)容、用戶資料管理、在線用戶管理、導(dǎo)出聊天記錄、上傳音樂(lè)文件等功能。本系統(tǒng)旨在實(shí)現(xiàn)在線實(shí)時(shí)聊天功能,為用戶提供方便快捷的交流方式,這在具體體現(xiàn),將會(huì)在系統(tǒng)實(shí)現(xiàn)中體現(xiàn)和擴(kuò)展。 </
48、p><p> 3.2 系統(tǒng)可行性分析</p><p> 可行性分析是根據(jù)初步的調(diào)查結(jié)果,對(duì)系統(tǒng)開(kāi)發(fā)做出可行與否的結(jié)論的過(guò)程??尚行苑治鰪募夹g(shù)可行性、經(jīng)濟(jì)可行性、管理可行性三方面進(jìn)行分析,論證該系統(tǒng)是否可行。</p><p> 3.2.1 技術(shù)及開(kāi)發(fā)方法可行性</p><p> 本系統(tǒng)的開(kāi)發(fā)采用Java[3]語(yǔ)言和JSP[10]相關(guān)技術(shù)
49、,JSP具有一處編譯,到處運(yùn)行的特性,而Java語(yǔ)言是面向?qū)ο蟮恼Z(yǔ)言,它具有與平臺(tái)無(wú)關(guān)的特性,所以系統(tǒng)能夠跨平臺(tái)使用,可運(yùn)行于Linux/Unix和Windows系列等各種操作系統(tǒng)平臺(tái)。</p><p> 3.2.2 管理可行性</p><p> 使用模塊化的設(shè)計(jì)方法,有助于系統(tǒng)開(kāi)發(fā)過(guò)程的管理,因?yàn)槟K化的設(shè)計(jì)方法就是科學(xué)合理的將整個(gè)程序劃分為N個(gè)功能模塊,各個(gè)功能模塊單獨(dú)設(shè)計(jì),互不
50、影響。這種設(shè)計(jì)方法有助于降低整個(gè)程序的設(shè)計(jì)難度及減少錯(cuò)誤程序的影響范圍,也使得各個(gè)功能模塊容易實(shí)現(xiàn),而且整個(gè)程序修改容易,不會(huì)因?yàn)槠渲幸粋€(gè)功能模塊出現(xiàn)錯(cuò)誤而影響整個(gè)系統(tǒng)。</p><p> 3.2.3 經(jīng)濟(jì)可行性</p><p> 經(jīng)過(guò)詳細(xì)周密的調(diào)查,借鑒成功的開(kāi)發(fā)案例,采用科學(xué)有效的開(kāi)發(fā)方式,可以降低開(kāi)發(fā)的成本,達(dá)到經(jīng)濟(jì)高效的目的。本系統(tǒng)在開(kāi)發(fā)方面主要使用了MyEclipse8.5
51、、apache-tomcat-6.0.28、MySQL等軟件,而這些軟件在網(wǎng)上均可以免費(fèi)下載,因此,在開(kāi)發(fā)成本方面可以說(shuō)是非常低,所以,該系統(tǒng)在經(jīng)濟(jì)方面可行。</p><p><b> 3.3 功能需求</b></p><p> 經(jīng)過(guò)詳細(xì)的調(diào)查,首先可以確定的是系統(tǒng)需要有“普通用戶”和“管理員”這兩個(gè)角色。</p><p> 3.3.1
52、 用例分析</p><p> 管理員主要負(fù)責(zé)對(duì)系統(tǒng)中用戶進(jìn)行管理和維護(hù),普通用戶主要負(fù)責(zé)對(duì)聊天界面進(jìn)行設(shè)置以及進(jìn)行聊天和聊天的設(shè)置,以上兩個(gè)實(shí)體的主要功能如下圖所示:</p><p><b> 表1 基本用例</b></p><p> 根據(jù)分析,系統(tǒng)中的兩個(gè)實(shí)體,“普通用戶”和“管理員”的用例圖如下圖所示:</p><
53、;p><b> 圖2 系統(tǒng)用例圖</b></p><p> 3.3.2 場(chǎng)景分析</p><p><b> ?。?)用戶注冊(cè)場(chǎng)景</b></p><p> 用戶輸入注冊(cè)要填寫(xiě)的內(nèi)容后,點(diǎn)擊注冊(cè)進(jìn)行驗(yàn)證,如果驗(yàn)證合法,則會(huì)對(duì)后臺(tái)數(shù)據(jù)庫(kù)做數(shù)據(jù)的插入操作,插入成功后,即注冊(cè)成功,跳轉(zhuǎn)到登錄頁(yè)面,否則繼續(xù)停留在注冊(cè)頁(yè)
54、面。</p><p> 用戶注冊(cè)的順序圖如圖3所示:</p><p> 圖3 用戶注冊(cè)順序圖 </p><p><b> ?。?)用戶登錄場(chǎng)景</b></p><p> 用戶輸入用戶名和密碼后,后臺(tái)數(shù)據(jù)對(duì)用戶輸入的數(shù)據(jù)進(jìn)行驗(yàn)證判斷,如果后臺(tái)數(shù)據(jù)庫(kù)存在該用戶,且密碼正確,則跳轉(zhuǎn)到聊天頁(yè)面,否則登錄失敗,繼續(xù)停留在
55、登錄頁(yè)面。</p><p> 用戶登錄的順序圖如圖4所示:</p><p> 圖4 用戶登錄順序圖 </p><p><b> 4 系統(tǒng)設(shè)計(jì)</b></p><p> 4.1 系統(tǒng)總體設(shè)計(jì)</p><p> 根據(jù)以上聊天系統(tǒng)的需求分析,本聊天系統(tǒng)可將模塊分為普通用戶登陸的前臺(tái)聊天子
56、系統(tǒng)模塊和后臺(tái)管理員管理子系統(tǒng)模塊。其中普通用戶模塊包括登錄模塊、聊天模塊、退出模塊,聊天模塊又包含各種聊天相關(guān)功能的子功能模塊和在線歌曲試聽(tīng)的子功能模塊,管理員模塊包括登錄模塊、管理模塊、退出模塊,其中管理模塊又包括管理系統(tǒng)用戶的各個(gè)功能子模塊和管理歌曲的各個(gè)功能子模塊。普通用戶和管理員的退出聊天室模塊機(jī)制是類似。</p><p> 系統(tǒng)總體模塊框架劃分如圖5所示:</p><p>
57、 圖5 系統(tǒng)總體模塊架構(gòu)</p><p> 4.2 系統(tǒng)功能模塊</p><p> 本系統(tǒng)在J2EE[4]平臺(tái)下使用B/S架構(gòu)進(jìn)行設(shè)計(jì), MySQL作為后臺(tái)數(shù)據(jù)庫(kù),實(shí)現(xiàn)管理員對(duì)聊天室的管理、用戶登陸聊天室聊天等功能的管理和實(shí)現(xiàn),包括前臺(tái)模塊和后臺(tái)管理模塊。</p><p> 本聊天室系統(tǒng)使用MyEclipse軟件開(kāi)發(fā),以Struts2[5]框架作為主要的技
58、術(shù)框架,以JSP技術(shù)編寫(xiě)頁(yè)面。作為一個(gè)只需要WEB[2]瀏覽器,不需要下載客戶端就能實(shí)現(xiàn)的聊天室,雖然不需要客戶端的存在,但是在前臺(tái)依然必須要具備基本的用戶注冊(cè)、登陸功能。</p><p> 4.2.1 前臺(tái)頁(yè)面的模塊</p><p> 在前臺(tái)模塊中,用戶只有通過(guò)注冊(cè)賬號(hào)后,擁有了賬號(hào)才能登陸,在登錄模塊中用戶輸入了注冊(cè)好的賬號(hào)與密碼,通過(guò)驗(yàn)證后,進(jìn)入到聊天模塊,在聊天模塊中,可以進(jìn)
59、行字體大小、顏色的設(shè)置,可以改變頁(yè)面的背景顏色,可以發(fā)送表情,除了這些以外,還有音樂(lè)試聽(tīng)模塊。</p><p> 前臺(tái)頁(yè)面的模塊又可以分為登陸模塊和聊天模塊。登陸模塊其中包括了用戶注冊(cè)賬號(hào),合法注冊(cè)用戶登陸賬號(hào),找回密碼,資料修改等等。</p><p><b> (1)用戶注冊(cè)模塊</b></p><p> 用戶將個(gè)人信息填寫(xiě)完整,點(diǎn)擊注
60、冊(cè)進(jìn)行驗(yàn)證,如果驗(yàn)證合法,對(duì)數(shù)據(jù)庫(kù)做插入操作,插入成功,則完成注冊(cè),完成注冊(cè)后頁(yè)面跳轉(zhuǎn)到登陸頁(yè)面,如果驗(yàn)證沒(méi)有通過(guò),則繼續(xù)停留在注冊(cè)頁(yè)面。</p><p><b> ?。?)登陸賬號(hào)模塊</b></p><p> 當(dāng)用戶輸入用戶名和密碼后,點(diǎn)擊登錄對(duì)輸入的信息進(jìn)行驗(yàn)證,即查看數(shù)據(jù)庫(kù)是否存在該用戶,若存在,則對(duì)密碼進(jìn)行核對(duì),若密碼正確,則登陸到聊天界面,否則停留在登錄
61、界面。</p><p><b> ?。?)找回密碼模塊</b></p><p> 當(dāng)用戶忘記密碼時(shí),通過(guò)注冊(cè)時(shí)填寫(xiě)的問(wèn)題以及問(wèn)題的答案找回密碼。點(diǎn)擊找回密碼,跳到下一步頁(yè)面,輸入要找回密碼的用戶的用戶名,點(diǎn)擊下一步,根據(jù)輸入的用戶名,查找到用戶注冊(cè)時(shí)輸入的密碼提示問(wèn)題,并填入密碼提示問(wèn)題的答案,點(diǎn)擊下一步,進(jìn)行驗(yàn)證,若輸入答案錯(cuò)誤,則跳到登錄頁(yè)面,若答案正確,則跳到
62、下一步的頁(yè)面,輸入新密碼,點(diǎn)擊下一步,完成密碼修改,跳到登錄頁(yè)面。</p><p> 聊天界面則包括一個(gè)用戶與另一個(gè)用戶之間的私聊,一個(gè)用戶與多用戶之間的群聊,設(shè)置修改字體、字號(hào)、顏色、變換背景色、音樂(lè)試聽(tīng)等功能。</p><p> 聊天室的前臺(tái)功能模塊劃分圖如圖6所示:</p><p> 4.2.2 后臺(tái)頁(yè)面的功能模塊</p><p&g
63、t; 在后臺(tái)頁(yè)面模塊中,管理員通過(guò)用戶名與密碼登錄到后臺(tái)管理頁(yè)面,在后臺(tái)管理模塊中,又可以分為在線用戶管理模塊、用戶資料管理模塊、過(guò)濾字段管理模塊、聊天記錄管理模塊、音樂(lè)管理模塊等幾個(gè)模塊。</p><p><b> ?。?)用戶資料管理</b></p><p> 對(duì)每一個(gè)已經(jīng)注冊(cè)了的用戶注冊(cè)時(shí)填寫(xiě)的資料進(jìn)行增刪改查的管理。</p><p>
64、;<b> ?。?)在線用戶管理</b></p><p> 通過(guò)查詢數(shù)據(jù)庫(kù),統(tǒng)計(jì)在線人數(shù)并在界面顯示出來(lái),并且對(duì)一些非法用戶可以實(shí)行踢除處理。</p><p><b> ?。?)過(guò)濾字段管理</b></p><p> 設(shè)置需要過(guò)濾的內(nèi)容,即設(shè)置在用戶聊天時(shí)不能發(fā)送的非法內(nèi)容,插入到數(shù)據(jù)庫(kù)中,經(jīng)由數(shù)據(jù)庫(kù)篩選非法聊天內(nèi)容并
65、自動(dòng)屏蔽優(yōu)化聊天室。</p><p><b> (4)聊天記錄管理</b></p><p> 通過(guò)查詢數(shù)據(jù)庫(kù)中的聊天記錄表,將聊天記錄顯示到界面上,需要導(dǎo)出聊天記錄時(shí),導(dǎo)出聊天記錄,方便備份聊天記錄。</p><p><b> ?。?)音樂(lè)管理</b></p><p> 上傳音樂(lè)文件,即在數(shù)據(jù)
66、庫(kù)中對(duì)音樂(lè)表進(jìn)行插入數(shù)據(jù)操作,查詢數(shù)據(jù)庫(kù)中的音樂(lè)文件,并顯示到界面,還能刪除上傳了的音樂(lè)文件。</p><p> 后臺(tái)頁(yè)面的模塊劃分圖如圖7所示:</p><p> 圖6 前臺(tái)頁(yè)面模塊劃分圖 圖7 后臺(tái)頁(yè)面模塊劃分圖</p><p> 4.2.3 系統(tǒng)流程圖</p><p> 經(jīng)過(guò)以上的需求分析和初步
67、的設(shè)計(jì),可以初步確定本系統(tǒng)有兩個(gè)角色,分別是普通用戶和管理員,前面已經(jīng)對(duì)本系統(tǒng)進(jìn)行了初步的設(shè)計(jì),初步確定了本系統(tǒng)的功能模塊,為了更方便、更清晰地展現(xiàn)本系統(tǒng)的功能,下面畫(huà)出了不同使用者不同權(quán)限的流程圖。</p><p> 普通用戶具有注冊(cè)登錄、音樂(lè)試聽(tīng)、聊天、設(shè)置背景顏色、退出權(quán)限,其中聊天功能中包括群聊、私聊、設(shè)置字體字號(hào)和顏色、發(fā)送表情等權(quán)限。</p><p> 普通用戶的系統(tǒng)流程圖
68、如圖8所示:</p><p> 管理員若以普通用戶的身份,則具有普通用戶的所有權(quán)限,若是以管理員的身份登錄,則具有登錄、用戶資料管理、過(guò)濾字段管理、在線用戶管理、聊天記錄管理、音樂(lè)管理等權(quán)限。</p><p> 管理員的系統(tǒng)流程圖如圖9所示:</p><p> 圖8 普通用戶系統(tǒng)流程圖 圖9 管理員系統(tǒng)流程圖</p&g
69、t;<p><b> 5 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p> 5.1 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)</p><p> 經(jīng)過(guò)分析,得出本系統(tǒng)有普通用戶和管理員兩個(gè)角色,本系統(tǒng)還有過(guò)濾字段、管理聊天記錄、音樂(lè)試聽(tīng)等功能,因此,本系統(tǒng)的實(shí)體有用戶、過(guò)濾條件、聊天記錄、音樂(lè),這些實(shí)體的實(shí)體屬性圖如下列圖所示:</p><p> 圖10
70、 用戶實(shí)體屬性圖</p><p> 圖11 過(guò)濾條件實(shí)體屬性圖</p><p> 圖12 聊天記錄實(shí)體屬性圖</p><p> 圖13 歌曲實(shí)體屬性圖</p><p> 經(jīng)過(guò)系統(tǒng)功能的初步確定和數(shù)據(jù)庫(kù)中實(shí)體的初步確定,得到了聊天的E-R圖如下圖所示:</p><p> 圖14 聊天E-R圖</
71、p><p> 5.2 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)</p><p> 聊天室作為網(wǎng)絡(luò)服務(wù)的一個(gè)重要應(yīng)用,它的數(shù)據(jù)庫(kù)在整個(gè)系統(tǒng)中占據(jù)著極其重要的作用,其數(shù)據(jù)庫(kù)在網(wǎng)站建設(shè)和網(wǎng)絡(luò)營(yíng)銷中發(fā)揮著非常重要的作用。普通的靜態(tài)網(wǎng)站是沒(méi)有數(shù)據(jù)庫(kù)的,而具有數(shù)據(jù)庫(kù)的網(wǎng)站網(wǎng)頁(yè)我們通常稱為動(dòng)態(tài)頁(yè)面,也就是說(shuō)擁有數(shù)據(jù)庫(kù)的網(wǎng)站頁(yè)面的內(nèi)容不是一成不變的,頁(yè)面上內(nèi)容或部分內(nèi)容是可以根據(jù)數(shù)據(jù)庫(kù)中數(shù)據(jù)的變化而改變的,是動(dòng)態(tài)生成的,這就
72、使得動(dòng)態(tài)網(wǎng)站內(nèi)容更靈活,維護(hù)更方便,更新更便捷。</p><p> 本系統(tǒng)采所需要的數(shù)據(jù)庫(kù)結(jié)構(gòu)如圖15所示。</p><p> 圖15 聊天室關(guān)系圖</p><p> 5.3 數(shù)據(jù)庫(kù)物理結(jié)構(gòu)設(shè)計(jì)</p><p> 數(shù)據(jù)庫(kù)的設(shè)計(jì)一般情況下是以一個(gè)已經(jīng)開(kāi)發(fā)出來(lái)的數(shù)據(jù)庫(kù)管理系統(tǒng)為基礎(chǔ)進(jìn)行設(shè)計(jì)的,我們平常開(kāi)發(fā)中比較常用的數(shù)據(jù)庫(kù)管理系統(tǒng)有M
73、ySQL、SQL Server[15]、Oracle等。在本系統(tǒng)開(kāi)發(fā)中,由于MySQL是一個(gè)開(kāi)源的、快速的、多用戶的SQL數(shù)據(jù)庫(kù)服務(wù)器,而且MySQL能在不同的平臺(tái)上工作,所以我采用了MySql數(shù)據(jù)庫(kù)管理系統(tǒng)作為基礎(chǔ)進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì),建立的數(shù)據(jù)庫(kù)名為chatsys的數(shù)據(jù)庫(kù)。</p><p> 根據(jù)QQ聊天軟件的需求,對(duì)應(yīng)的數(shù)據(jù)庫(kù)表的設(shè)計(jì)及其功能如下:</p><p> 用戶信息表:存放用
74、戶注冊(cè)時(shí)填寫(xiě)的用戶信息,如存放用戶名、密碼密碼提示問(wèn)題、密碼提示問(wèn)題答案等內(nèi)容;</p><p> 歌曲信息表:存放歌曲的信息,如歌曲名、歌曲歌手等;</p><p> 聊天記錄信息表:存放用戶在聊天過(guò)程中產(chǎn)生的聊天信息;</p><p> 過(guò)濾條件信息表:存放要過(guò)濾的字段,即存放用于過(guò)濾聊天信息的條件,用于屏蔽非法聊天信息;</p><p
75、> 用戶信息表如下表所示:</p><p> 表2 用戶表(user)</p><p> 過(guò)濾條件信息表如下表所示:</p><p> 表3 過(guò)濾條件表(cont)</p><p> 聊天記錄信息表如下表所示:</p><p> 表4 聊天表(record)</p><p>
76、 歌曲信息表如下表所示:</p><p> 表5 歌曲表(music)</p><p> 6 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)</p><p><b> 6.1 用戶注冊(cè)</b></p><p> 想要聊天室進(jìn)行聊天,就必須要擁有一個(gè)用于登錄的賬號(hào),如果沒(méi)有,就必須注冊(cè)一個(gè)賬號(hào),否則無(wú)法進(jìn)入聊天室。注冊(cè)時(shí),在注冊(cè)頁(yè)面輸入要
77、填寫(xiě)的信息,點(diǎn)擊注冊(cè),會(huì)對(duì)輸入的數(shù)據(jù)進(jìn)行驗(yàn)證,驗(yàn)證通過(guò)了,會(huì)在數(shù)據(jù)庫(kù)中插入該用戶輸入的信息,并將用戶名存到session中。注冊(cè)成功以后,頁(yè)面會(huì)自動(dòng)跳轉(zhuǎn)到登錄頁(yè)面,并且通過(guò)session取到注冊(cè)時(shí)用戶輸入的用戶名,并將用戶名顯示到登錄頁(yè)面登錄時(shí)要輸入的用戶名欄。</p><p> 用戶注冊(cè)的流程圖如圖16所示:</p><p> 注冊(cè)的核心代碼如下所示:</p><
78、p> public String execute() {</p><p> if(user!=null&&!user.getName().equals("")&&user.getName()!=null&&user.getPwd()!=null&&!user.getPwd().equals("")){
79、</p><p> userService.add(user);</p><p><b> }</b></p><p> return SUCCESS;</p><p><b> }</b></p><p><b> 6.2 用戶登陸</b>
80、</p><p> 在登錄界面中,需要輸入正確的用戶名和密碼才能夠登錄。在登錄頁(yè)面有兩種不同角色的登錄,一種是普通用戶登錄,一種是管理員登錄。普通用戶登錄時(shí),在登錄頁(yè)面輸入普通用戶用戶名和密碼,單擊“登錄”按鈕,系統(tǒng)將會(huì)對(duì)用戶輸入的用戶名和密碼進(jìn)行驗(yàn)證,通過(guò)查詢數(shù)據(jù)庫(kù),判斷輸入的賬號(hào)是否存在,若不存在,則繼續(xù)停留在登錄頁(yè)面,若存在,繼續(xù)判斷密碼是否正確,若正確,則進(jìn)入聊天室界面,同時(shí)系統(tǒng)將會(huì)通過(guò)查詢數(shù)據(jù)庫(kù)查找到
81、該用戶的isuse字段,將字段的值改成1(1代表在線狀態(tài),0代表離線狀態(tài))。當(dāng)用戶離開(kāi)聊天室時(shí),系統(tǒng)會(huì)自動(dòng)將該用戶表user中的isuse字段改成0。管理員登錄與普通用戶登錄差不多,不過(guò)管理員登錄后,會(huì)跳轉(zhuǎn)到后臺(tái)管理頁(yè)面。</p><p> 用戶登錄流程圖如圖17所示:</p><p> 圖16 用戶注冊(cè)流程圖 圖17 用戶登陸流程圖</p>
82、<p><b> 核心代碼如下所示:</b></p><p> public String execute() {</p><p> if (userService.login(user) != null) {</p><p> user = userService.login(user);</p><
83、p> HttpSession session = ServletActionContext.getRequest()</p><p> .getSession();</p><p> List<User> ulist=userService.findIsOnline();</p><p> session.getServletContext
84、().setAttribute("ulist", ulist);</p><p> if(user.isType()){</p><p> List<Cont> cont=contService.select();</p><p> ServletActionContext.getRequest().getSession().s
85、etAttribute("contlist", cont);</p><p> return "admin";</p><p><b> }</b></p><p> user.setIsuse(User.ON_LINE);</p><p> userService.upd
86、ate(user);</p><p> session.setAttribute("user", user);</p><p> List<Record> talking = (List<Record>) session.getServletContext().getAttribute("talking");</p&
87、gt;<p> if (talking == null) {</p><p> talking = recordService.getList();</p><p><b> }</b></p><p> Record coming = new Record();</p><p> coming.
88、setUser(user);</p><p> coming.setCont(user.getName()+"進(jìn)入了聊天室!");</p><p> talking.add(coming);</p><p> session.getServletContext().setAttribute("talking",talki
89、ng);</p><p> return SUCCESS;</p><p><b> };</b></p><p> return ERROR;</p><p><b> }</b></p><p><b> 6.3 找回密碼</b><
90、/p><p> 用戶忘記密碼時(shí),可以單擊“找回密碼”,跳到下一個(gè)頁(yè)面,輸入要找回密碼的用戶的用戶名,點(diǎn)擊下一步,系統(tǒng)會(huì)通過(guò)輸入的用戶名查詢?cè)撚脩裘欠翊嬖?,若不存在,則跳到登錄頁(yè)面,若存在,根據(jù)該用戶名找到該用戶在注冊(cè)時(shí)填寫(xiě)的密碼提示問(wèn)題,填入密碼提示問(wèn)題的答案,點(diǎn)擊下一步,系統(tǒng)會(huì)通過(guò)查詢數(shù)據(jù)庫(kù)驗(yàn)證輸入的密碼提示問(wèn)題答案是否正確,如果答案正確,則跳到下一個(gè)頁(yè)面,輸入新的密碼進(jìn)行密碼修改,點(diǎn)擊下一步修改密碼成功,跳轉(zhuǎn)
91、到登錄頁(yè)面;如果輸入的密碼提示問(wèn)題的答案錯(cuò)誤,則跳轉(zhuǎn)到登錄頁(yè)面。</p><p> 找回密碼的流程圖如圖18所示:</p><p> 圖18 找回密碼的流程圖 </p><p><b> 核心代碼如下所示:</b></p><p> public String execute() {</p><
92、;p> User olduser=userService.findByName(user);</p><p> if(olduser!=null){</p><p> user=olduser;</p><p> user.setAns("");</p><p> return SUCCESS;</p
93、><p><b> }</b></p><p> return ERROR; </p><p> } </p><p><b>
94、6.4 聊天室</b></p><p> 用戶登錄后進(jìn)入聊天室頁(yè)面,聊天室頁(yè)面的功能有群聊私聊、試聽(tīng)在線音樂(lè)、設(shè)置背景顏色。用戶在輸入聊天信息時(shí),能夠?qū)斎氲淖煮w進(jìn)行設(shè)置,設(shè)置字體的大小、顏色等,還能發(fā)送表情,同時(shí)可在聊天頁(yè)面手動(dòng)更改頁(yè)面的背景顏色。用戶在發(fā)送信息時(shí),系統(tǒng)會(huì)通過(guò)查詢數(shù)據(jù)庫(kù),檢查發(fā)送的內(nèi)容是否為非法的內(nèi)容,若為非法內(nèi)容,系統(tǒng)將會(huì)自動(dòng)將聊天的內(nèi)容屏蔽,并在聊天頁(yè)面顯示提示警告內(nèi)容,若不
95、是非法內(nèi)容,系統(tǒng)會(huì)將聊天的內(nèi)容顯示在界面。在聊天界面中,系統(tǒng)能夠進(jìn)行實(shí)時(shí)刷新,顯示用戶聊天發(fā)送的內(nèi)容,同時(shí)能夠?qū)崟r(shí)顯示在線用戶,并形成一個(gè)在線用戶列表顯示在界面中。除此之外,在聊天界面中,還有一個(gè)退出功能,點(diǎn)擊退出,將會(huì)退出聊天系統(tǒng),跳到登錄頁(yè)面,同時(shí)將數(shù)據(jù)庫(kù)中的user表中的isuse字段該成0(0代表用戶處于離線狀態(tài),1代表用戶處于在線狀態(tài))。</p><p> 普通用戶聊天室頁(yè)面的運(yùn)行效果如圖19所示:&
96、lt;/p><p> 圖19 普通用戶聊天頁(yè)面</p><p> 點(diǎn)擊在線音樂(lè),將會(huì)彈出在線歌曲列表,點(diǎn)擊試聽(tīng),能播放在線歌曲。在后臺(tái)有一個(gè)歌曲管理,能夠上傳本地的歌曲,通過(guò)查詢數(shù)據(jù)庫(kù)實(shí)時(shí)刷新,并在界面中將歌曲列表中顯示出來(lái),還能通過(guò)后臺(tái)刪除在線的歌曲。</p><p> 在線歌曲頁(yè)面如圖20所示:</p><p><b> 圖
97、20 音樂(lè)試聽(tīng)</b></p><p><b> 核心代碼如下所示:</b></p><p> public String execute() {</p><p> if (record != null) {</p><p> HttpSession session = ServletActionCo
98、ntext.getRequest()</p><p> .getSession();</p><p> List<Record> talking = (List<Record>) session</p><p> .getServletContext().getAttribute("talking");</p&
99、gt;<p> User causer = (User) session.getAttribute("user");</p><p> if (userService.findById(causer).isIsuse()) {</p><p> record.setChatime(new Date());</p><p>
100、record.setUser(causer);</p><p> record.setSendto(sendto);</p><p> if (talking == null) {</p><p> talking = recordService.getList();</p><p><b> }</b><
101、/p><p> if (record.getCont()!=null &&!record.getCont().equals("")) {</p><p> if(contService.selectCont(record.getCont())){</p><p> recordService.addRecord(record);
102、</p><p><b> }else{</b></p><p> record.setCont("**您的消息不合法已被系統(tǒng)屏蔽!**);</p><p><b> }</b></p><p> talking.add(record);</p><p>&
103、lt;b> }</b></p><p> session.getServletContext().setAttribute("talking",talking);</p><p> return SUCCESS;</p><p><b> }}</b></p><p> r
104、eturn ERROR;</p><p><b> }</b></p><p><b> 6.5 后臺(tái)管理</b></p><p> 在用戶登錄頁(yè)面,有兩種角色,一種是普通用戶,一種是管理員。其中普通用戶登錄在6.2中已經(jīng)介紹了,現(xiàn)在介紹管理員的功能。在登錄頁(yè)面輸入管理員賬號(hào)和密碼,點(diǎn)擊登錄,系統(tǒng)將會(huì)通過(guò)查詢數(shù)據(jù)庫(kù)
105、驗(yàn)證輸入的信息,查看數(shù)據(jù)庫(kù)是否存在該用戶,若存在,密碼是否正確,若密碼錯(cuò)誤,則登錄失敗,繼續(xù)停留在登錄頁(yè)面,若密碼正確,則跳轉(zhuǎn)到后臺(tái)管理頁(yè)面。管理員登錄后,登錄的是后臺(tái)管理頁(yè)面,登錄后為為隱身狀態(tài),普通用戶在在線用戶列表中無(wú)法看到管理員。管理員登錄后臺(tái)管理頁(yè)面后,能看到后臺(tái)管理頁(yè)面中,管理員能夠?qū)崿F(xiàn)的功能有在線用戶管理、用戶資料管理、過(guò)濾字段管理、聊天記錄管理、音樂(lè)文件管理。</p><p> 管理員登錄后的后
106、臺(tái)管理頁(yè)面的運(yùn)行結(jié)果如圖21所示:</p><p> 圖21 管理員登錄后的后臺(tái)管理頁(yè)面</p><p> 在聊天室聊天時(shí),用戶可以發(fā)送聊天信息,在聊天時(shí)有可能會(huì)遇到某些用戶發(fā)送不文明的語(yǔ)言,這時(shí)可以在系統(tǒng)的后臺(tái)管理頁(yè)面設(shè)置“過(guò)濾非法字段”。在后臺(tái)管理中,可以通過(guò)設(shè)置過(guò)濾字段,過(guò)濾聊天信息。設(shè)置過(guò)濾字段的時(shí)候,系統(tǒng)將在數(shù)據(jù)庫(kù)插入用戶設(shè)置的內(nèi)容,當(dāng)前臺(tái)用戶發(fā)送的內(nèi)容與后臺(tái)非法字段設(shè)置的內(nèi)
107、容相同時(shí),系統(tǒng)將會(huì)字段屏蔽該信息,并在聊天頁(yè)面的聊天室發(fā)送警告。通過(guò)過(guò)濾非法字段的設(shè)置,能夠在一定程度上讓聊天室保持一個(gè)文明的公共聊天室環(huán)境,當(dāng)然這也不是絕對(duì)的保證聊天室的文明,想要擁有一個(gè)文明的公共環(huán)境,還需要靠用戶自覺(jué)來(lái)維護(hù)聊天室的公共文明。</p><p> 后臺(tái)管理界面中過(guò)濾字段管理頁(yè)面如圖22所示</p><p> 圖22 過(guò)濾字段管理頁(yè)面</p><p&
108、gt; 在聊天室中,用戶可以發(fā)送聊天信息,在聊天時(shí)有可能會(huì)遇到某些用戶發(fā)送不文明的語(yǔ)言,若是管理員覺(jué)得用戶經(jīng)常發(fā)送不文明語(yǔ)言,想將該用戶踢出,在點(diǎn)擊踢出后,系統(tǒng)將會(huì)在數(shù)據(jù)庫(kù)中執(zhí)行刪除該用戶的語(yǔ)句。通過(guò)在線用戶的管理,能夠在一定程度上讓聊天室保持一個(gè)文明的公共聊天室環(huán)境。</p><p> 后臺(tái)管理界面中在線用戶管理頁(yè)面如圖23所示:</p><p> 圖23 在線用戶管理頁(yè)面<
109、/p><p> 在聊天室聊天時(shí),用戶輸入要發(fā)送的信息。點(diǎn)擊發(fā)送時(shí),系統(tǒng)將會(huì)在數(shù)據(jù)庫(kù)中將用戶發(fā)送的信息插入到表中,在后臺(tái)管理頁(yè)面中,系統(tǒng)通過(guò)查詢數(shù)據(jù)庫(kù),將用戶發(fā)送的信息顯示到界面中,后臺(tái)管理員能夠刪除用戶的聊天記錄,還能夠到處聊天記錄,方便備份聊天記錄。</p><p> 后臺(tái)管理界面中聊天記錄管理頁(yè)面如圖24所示:</p><p> 圖24 聊天記錄管理界面<
110、;/p><p> 在前臺(tái)聊天頁(yè)面中,有在線音樂(lè)試聽(tīng)的功能,在后臺(tái)管理頁(yè)面中同樣有歌曲管理功能,管理員能夠在后臺(tái)添加歌曲、刪除歌曲。</p><p> 后臺(tái)管理界面中歌曲管理頁(yè)面如圖25所示:</p><p><b> 圖25歌曲管理界面</b></p><p><b> 核心代碼如下所示:</b>
111、;</p><p> public String execute() {</p><p> Integer UId=Integer.valueOf(ServletActionContext.getRequest().getParameter("user"));</p><p> User user=new User();</p>
112、<p> user.setUId(UId);</p><p> User olduser=userService.findById(user);</p><p> if(olduser!=null){</p><p> olduser.setIsuse(User.OFF_LINE);</p><p> userServ
113、ice.update(olduser);</p><p> List<User> ulist=userService.findIsOnline();</p><p> ServletActionContext.getServletContext().setAttribute("ulist", ulist);</p><p><
114、;b> }</b></p><p> return SUCCESS;</p><p><b> }</b></p><p><b> 7 系統(tǒng)測(cè)試</b></p><p> 7.1 系統(tǒng)測(cè)試 </p><p> 本系統(tǒng)經(jīng)過(guò)需求分析、系統(tǒng)設(shè)計(jì)、
115、系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)等階段后得到系統(tǒng)的源程序,現(xiàn)在開(kāi)始進(jìn)入到軟件測(cè)試階段。軟件測(cè)試是用來(lái)測(cè)試一個(gè)軟件的質(zhì)量和性能是否符合用戶需求,軟件是否能夠正確運(yùn)行的重要階段,是軟件開(kāi)發(fā)過(guò)程的必不可少的重要組成部分,是軟件質(zhì)量保證的關(guān)鍵步驟。</p><p><b> ?。?)鏈接測(cè)試</b></p><p> 進(jìn)行系統(tǒng)測(cè)試時(shí),首先要測(cè)試系統(tǒng)的鏈接是否可用。測(cè)試系統(tǒng)的鏈接可以從三方
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于bs的qq聊天軟件設(shè)計(jì)畢業(yè)論文
- 基于bs架構(gòu)下的管理軟件設(shè)計(jì)與開(kāi)發(fā)-畢業(yè)論文
- 基于bs架構(gòu)下的管理軟件設(shè)計(jì)與開(kāi)發(fā)-畢業(yè)論文
- 基于android平臺(tái)的聊天軟件設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文
- 基于android平臺(tái)的聊天軟件設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文
- 畢業(yè)論文--sjchat聊天軟件
- 軟件設(shè)計(jì)專業(yè)畢業(yè)論文
- 基于php的在線聊天通訊軟件畢業(yè)論文
- 基于php的在線聊天通訊軟件畢業(yè)論文
- 基于arm9-linux系統(tǒng)下的聊天工具軟件設(shè)計(jì)【畢業(yè)論文】
- 基于java局域網(wǎng)聊天軟件畢業(yè)論文
- 基于PHP的在線聊天通訊軟件畢業(yè)論文.doc
- 基于matlab的圖像處理軟件設(shè)計(jì)畢業(yè)論文
- 基于java的遠(yuǎn)程控制軟件設(shè)計(jì)【畢業(yè)論文】
- 基于局域網(wǎng)的聊天軟件的設(shè)計(jì)與實(shí)現(xiàn)(畢業(yè)論文)
- 基于ebridge的sdh環(huán)形組網(wǎng)軟件設(shè)計(jì)【畢業(yè)論文】
- 局域網(wǎng)即時(shí)聊天軟件設(shè)計(jì)與實(shí)現(xiàn)-畢業(yè)論文(附詳細(xì)源代碼)
- 手機(jī)視頻聊天軟件畢業(yè)論文
- 局域網(wǎng)聊天軟件畢業(yè)論文
- 局域網(wǎng)聊天軟件-畢業(yè)論文
評(píng)論
0/150
提交評(píng)論