版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
概述在網(wǎng)絡(luò)世界中,聊天室(ChatRoom)是一個(gè)最常見的服務(wù),它最早起源于BBS站點(diǎn),聊天室作為一個(gè)在漫漫長(zhǎng)夜打發(fā)消遣時(shí)間的最佳軟件,除了能夠用于聊天消遣時(shí)間以外,還擁有語(yǔ)音聊天、視頻聊天、共享圖片、文件等功能。現(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]。在市面上,聊天室的應(yīng)用軟件出現(xiàn)得比較早,比如說(shuō),MicrosoftChat,一個(gè)在界面及功能方面都已經(jīng)非常完善的“聊天室”的應(yīng)用軟件,它是一套獨(dú)立于瀏覽器之外的,即與瀏覽器無(wú)關(guān)的,需要下載客戶端安裝使用的套裝軟件,在使用它之前還需要先熟悉其中的操作界面,才能夠使用這個(gè)軟件,這對(duì)于新時(shí)代匆匆忙忙,并沒(méi)有太多時(shí)間去學(xué)習(xí)的網(wǎng)友來(lái)說(shuō),是一個(gè)非常不方便的缺陷。因此,開發(fā)出來(lái)一個(gè)操作簡(jiǎn)單,方便,不需要下載客戶端安裝使用的聊天軟件已經(jīng)成為廣大網(wǎng)民的迫切需求。所以,根據(jù)網(wǎng)民的需求,越來(lái)越多的公司和網(wǎng)站開始開發(fā)基于瀏覽器的,不需要下載客戶端安裝使用,不需要熟悉界面操作的聊天室,以便造福更多的網(wǎng)友[12]。1.1研究開發(fā)背景由于電子科技的迅速發(fā)展,網(wǎng)絡(luò)時(shí)代到來(lái),人們通訊方式也不斷的發(fā)生改變,從以前的寫信到后來(lái)的呼機(jī),到現(xiàn)在的手機(jī),不斷地往高科技方向發(fā)展。然而人們的聊天的方式也在發(fā)生改變,因此聊天室也隨之慢慢的發(fā)展起來(lái)了,慢慢受到人們喜愛,現(xiàn)在我們QQ中就有各種各樣的群,有的娛樂(lè)、有的技術(shù)交流、有的用來(lái)工作,總之應(yīng)用非常廣。聊天室的開發(fā)是有必要的,其發(fā)展的前景也是非常大的。聊天室現(xiàn)在用于娛樂(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ù)某墒?,開發(fā)這種軟件的成本高;二、聊天這種軟件不管是運(yùn)作起來(lái)還使用起來(lái)都是比較方便的。所有很受人們的歡迎,現(xiàn)在都有很多專門做這種軟件的公司了。在我國(guó),聊天室市場(chǎng)集中度還不是很高,其中只有一些大型的商業(yè)網(wǎng)站或者一些專門娛樂(lè)性的網(wǎng)站才有,所有在我國(guó)的市場(chǎng)還是相當(dāng)?shù)拇?。在我?guó),由于現(xiàn)在的電腦的價(jià)格非常的便宜,人們的生活水平的提高,對(duì)網(wǎng)絡(luò)的需要越來(lái)越大,除了在網(wǎng)上玩游戲、談生意、購(gòu)物、查閱資料以外,還有就是用于聊天娛樂(lè),當(dāng)我們身處在一個(gè)群體當(dāng)中的時(shí)候,不管是在工作還是在學(xué)習(xí)中也好,我們都會(huì)建立起一個(gè)屬于自己的聊天室,它的聊天功能是聊天室中運(yùn)用最廣的功能,這是網(wǎng)上最受歡迎和最普通以中聊天方式。聊天具有應(yīng)用廣泛、開發(fā)簡(jiǎn)單、操作方便、功能齊全、信息傳遞、簡(jiǎn)單快捷等的特獨(dú)有性,因?yàn)樗怯梦淖謥?lái)傳播信息,所有用于聊天時(shí)候的信息交流比較方便,相當(dāng)于人與人面對(duì)面的交流,受到大多數(shù)人喜歡,因此有很多人喜歡在聊天室中聊天,還沒(méi)面對(duì)面那種羞澀[2]。1.2選題的意義現(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)途電話的話更貴,而我們的聊天室是通過(guò)互聯(lián)網(wǎng)來(lái)接通的,價(jià)格十分便宜。當(dāng)然我們不能否定郵件和電話,在用于不同的地方,它們又比聊天室好。基于B/S的聊天室是瀏覽器/服務(wù)的,與基于C/S架構(gòu)的騰訊QQ等聊天軟件相比起來(lái),這種B/S[7]架構(gòu)的聊天室,是不需要下載安裝,直接是在瀏覽器上運(yùn)行。因此,對(duì)于一個(gè)公司和企業(yè)來(lái)說(shuō),開發(fā)一個(gè)用于網(wǎng)站、娛樂(lè)或者論壇來(lái)交流的聊天室,其中包括群聊和私聊,成為了現(xiàn)在眾多公司或集體的重要需求[14]。這次開發(fā)的基于B/S架構(gòu)的聊天室,是用現(xiàn)在流行JAVA[1]語(yǔ)言來(lái)開發(fā)的,用MyEclipse8.5作為開發(fā)平臺(tái),因?yàn)镸yEclipse8.5開發(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ì)模式開始流行起來(lái),因?yàn)锽/S架構(gòu)的是網(wǎng)頁(yè)版的,作為客戶端只需要在瀏覽器上操作,沒(méi)有下載安裝客戶端的說(shuō)法。B/S模式將實(shí)現(xiàn)系統(tǒng)核心功能的代碼全部都放著到服務(wù)器上,只有該系統(tǒng)的服務(wù)器夠強(qiáng)大就可以無(wú)限的運(yùn)行,如果客戶端崩潰,也只是在瀏覽器上而已,只需要重新打開一個(gè)頁(yè)面就可以了,從某種一定程度上,這個(gè)系統(tǒng)只需要開發(fā)一個(gè)強(qiáng)大的服務(wù)器,從而簡(jiǎn)化了系統(tǒng)的開發(fā)和維護(hù)?;贐/S架構(gòu)的聊天室系統(tǒng),與那些C/S[8]模式聊天室相比較,最大的優(yōu)點(diǎn):只要你有瀏覽器,就可以隨時(shí)隨地進(jìn)行聊天,而不需要下載安裝客戶端,從而實(shí)現(xiàn)了客戶端零安裝、零維護(hù)的需求,提高了其中的效率[6]。1.3國(guó)內(nèi)外研究現(xiàn)狀隨著互聯(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)民的追捧。在國(guó)內(nèi),1999年2月,深圳騰訊公司正式發(fā)布OICQ99betabuild0210,開通騰訊網(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)越激烈。在國(guó)外,MSN——借助和Windows操作系統(tǒng)的綁定似乎已是使用最廣泛的聊天軟件。使用MSN,可以通過(guò)文本、語(yǔ)音、視頻與朋友、親人聊天,還可以與朋友、親人傳輸文件,共享圖片等。但是,這些聊天軟件都是基于C/S架構(gòu)的,都需要通過(guò)下載客戶端進(jìn)行安裝使用,在更新方面也需要下載更新,而且用戶名、密碼和聊天記錄等都是存在本地機(jī)器上的,在安全性和方便性方面都有所欠缺。Browser/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)的聊天室開發(fā)起來(lái)比C/S架構(gòu)的要簡(jiǎn)單,容易。而且B/S架構(gòu)的聊天室實(shí)現(xiàn)了系統(tǒng)的無(wú)縫升級(jí),系統(tǒng)維護(hù)開銷小。最主要的是B/S架構(gòu)的聊天室是基于瀏覽器的,與操作平臺(tái)無(wú)關(guān),所以不需要考慮兼容性問(wèn)題[6]。1.4本文組織結(jié)構(gòu)本文圍繞著開發(fā)一個(gè)基于B/S的QQ聊天軟件,描述了完成開發(fā)這個(gè)系統(tǒng)的主要流程,本文分為以下幾部分:介紹的是基于B/S的QQ聊天軟件的研發(fā)背景、選題意義和國(guó)內(nèi)外現(xiàn)狀;介紹的是QQ聊天軟件要使用的開發(fā)環(huán)境、開發(fā)工具以及要使用到的技術(shù);介紹的是QQ聊天軟件的需求分析;介紹的是系統(tǒng)的設(shè)計(jì)與及系統(tǒng)需要有的功能模塊;介紹的是數(shù)據(jù)庫(kù)的設(shè)計(jì)與創(chuàng)建;介紹的是系統(tǒng)的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn);主要是對(duì)本系統(tǒng)進(jìn)行測(cè)試,證明系統(tǒng)的可行性。2開發(fā)工具及技術(shù)介紹2.1開發(fā)環(huán)境系統(tǒng)名:基于B/S的QQ聊天軟件的設(shè)計(jì)與實(shí)現(xiàn)操作系統(tǒng):windows732位硬件支持:CPU英特爾Corei5-480M(雙核)內(nèi)存6GB顯卡ATI/AMDRadeonHD64x0M/74x0M2.2系統(tǒng)開發(fā)工具開發(fā)工具:MyEclipse8.5服務(wù)器:apache-tomcat-6.0.28數(shù)據(jù)庫(kù):MySQL2.3B/S結(jié)構(gòu)的簡(jiǎn)介在傳統(tǒng)的兩層的C/S結(jié)構(gòu)中,隨著技術(shù)慢慢的發(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ù)器,主要以局域網(wǎng)為中心的,因此想要把傳統(tǒng)的模式擴(kuò)展至大型企業(yè)的廣域網(wǎng)或強(qiáng)大的Intranet中是不可能的,因此B/S體系結(jié)構(gòu)三層客戶/服務(wù)器模式隨之興起,成為當(dāng)今最受歡迎的一種體系結(jié)構(gòu)[8]。三層客戶/服務(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ù)層??蛻麸@示層是服務(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ū)分開來(lái)數(shù)據(jù)層是三層模式中最底層的結(jié)構(gòu),這個(gè)層的主要目的是用來(lái)定義、維護(hù)、訪問(wèn)和更新數(shù)據(jù),簡(jiǎn)單的說(shuō),就是管理數(shù)據(jù)庫(kù)的,同時(shí)管理和滿足應(yīng)用服務(wù)對(duì)數(shù)據(jù)庫(kù)發(fā)送的一系列請(qǐng)求,維護(hù)數(shù)據(jù)庫(kù)得管理。這種三層體系結(jié)構(gòu)關(guān)系如圖1所示:顯示層顯示層業(yè)務(wù)層數(shù)據(jù)層圖1B/S三層架構(gòu)示意圖2.4MySQL簡(jiǎn)介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)行的,但是它是具有強(qiáng)大的數(shù)據(jù)開發(fā)和維護(hù)功能、源代碼開發(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ù)據(jù)庫(kù)能運(yùn)行還能在SQLServer中運(yùn)行,所以MySQL數(shù)據(jù)庫(kù)的SQL語(yǔ)言是可以在其他數(shù)據(jù)中使用。同時(shí)MySQL還能夠足夠快和靈活存儲(chǔ)記錄文件和圖像等屬性,可見這個(gè)數(shù)據(jù)庫(kù)得功能之強(qiáng)大[11]。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)題了,而且它能滿足現(xiàn)在的那些中小型的系統(tǒng)或者網(wǎng)站,所以,使得一般中小型網(wǎng)站的開發(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è)的開支[16]。3系統(tǒng)需求分析3.1綜合需求通過(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ù)。聊天室的最大特點(diǎn)就是能夠?qū)α奶靸?nèi)容進(jìn)行實(shí)時(shí)刷新,能夠?qū)崟r(shí)顯示聊天內(nèi)容。即在同一個(gè)聊天室的使用者,可以在短時(shí)間內(nèi)立刻看到其他聊天者的發(fā)言,并且能夠通過(guò)實(shí)時(shí)刷新看到在線人數(shù)列表。本系統(tǒng)有普通用戶和管理員兩個(gè)角色。在系統(tǒng)中,普通用戶實(shí)現(xiàn)的功能有用戶注冊(cè)、用戶登錄、找回密碼、進(jìn)入聊天室聊天、試聽音樂(lè)等功能。聊天時(shí),用戶可以設(shè)置字體的大小、顏色等,實(shí)時(shí)顯示聊天信息,并且實(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ò)展。3.2系統(tǒng)可行性分析可行性分析是根據(jù)初步的調(diào)查結(jié)果,對(duì)系統(tǒng)開發(fā)做出可行與否的結(jié)論的過(guò)程。可行性分析從技術(shù)可行性、經(jīng)濟(jì)可行性、管理可行性三方面進(jìn)行分析,論證該系統(tǒng)是否可行。3.2.1技術(shù)及開發(fā)方法可行性本系統(tǒng)的開發(fā)采用Java[3]語(yǔ)言和JSP[10]相關(guān)技術(shù),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)。3.2.2管理可行性使用模塊化的設(shè)計(jì)方法,有助于系統(tǒng)開發(fā)過(guò)程的管理,因?yàn)槟K化的設(shè)計(jì)方法就是科學(xué)合理的將整個(gè)程序劃分為N個(gè)功能模塊,各個(gè)功能模塊單獨(dú)設(shè)計(jì),互不影響。這種設(shè)計(jì)方法有助于降低整個(gè)程序的設(shè)計(jì)難度及減少錯(cuò)誤程序的影響范圍,也使得各個(gè)功能模塊容易實(shí)現(xiàn),而且整個(gè)程序修改容易,不會(huì)因?yàn)槠渲幸粋€(gè)功能模塊出現(xiàn)錯(cuò)誤而影響整個(gè)系統(tǒng)。3.2.3經(jīng)濟(jì)可行性經(jīng)過(guò)詳細(xì)周密的調(diào)查,借鑒成功的開發(fā)案例,采用科學(xué)有效的開發(fā)方式,可以降低開發(fā)的成本,達(dá)到經(jīng)濟(jì)高效的目的。本系統(tǒng)在開發(fā)方面主要使用了MyEclipse8.5、apache-tomcat-6.0.28、MySQL等軟件,而這些軟件在網(wǎng)上均可以免費(fèi)下載,因此,在開發(fā)成本方面可以說(shuō)是非常低,所以,該系統(tǒng)在經(jīng)濟(jì)方面可行。3.3功能需求經(jīng)過(guò)詳細(xì)的調(diào)查,首先可以確定的是系統(tǒng)需要有“普通用戶”和“管理員”這兩個(gè)角色。3.3.1用例分析管理員主要負(fù)責(zé)對(duì)系統(tǒng)中用戶進(jìn)行管理和維護(hù),普通用戶主要負(fù)責(zé)對(duì)聊天界面進(jìn)行設(shè)置以及進(jìn)行聊天和聊天的設(shè)置,以上兩個(gè)實(shí)體的主要功能如下圖所示:表1基本用例實(shí)體功能普通用戶注冊(cè)、登錄聊天、設(shè)置字體的大小,顏色、設(shè)置背景顏色、試聽音樂(lè)管理員登錄、管理在線用戶、管理聊天記錄、管理音樂(lè)文件根據(jù)分析,系統(tǒng)中的兩個(gè)實(shí)體,“普通用戶”和“管理員”的用例圖如下圖所示:圖2系統(tǒng)用例圖3.3.2場(chǎng)景分析(1)用戶注冊(cè)場(chǎng)景用戶輸入注冊(cè)要填寫的內(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è)面。用戶注冊(cè)的順序圖如圖3所示:圖3用戶注冊(cè)順序圖(2)用戶登錄場(chǎng)景用戶輸入用戶名和密碼后,后臺(tái)數(shù)據(jù)對(duì)用戶輸入的數(shù)據(jù)進(jìn)行驗(yàn)證判斷,如果后臺(tái)數(shù)據(jù)庫(kù)存在該用戶,且密碼正確,則跳轉(zhuǎn)到聊天頁(yè)面,否則登錄失敗,繼續(xù)停留在登錄頁(yè)面。用戶登錄的順序圖如圖4所示:圖4用戶登錄順序圖4系統(tǒng)設(shè)計(jì)4.1系統(tǒng)總體設(shè)計(jì)根據(jù)以上聊天系統(tǒng)的需求分析,本聊天系統(tǒng)可將模塊分為普通用戶登陸的前臺(tái)聊天子系統(tǒng)模塊和后臺(tái)管理員管理子系統(tǒng)模塊。其中普通用戶模塊包括登錄模塊、聊天模塊、退出模塊,聊天模塊又包含各種聊天相關(guān)功能的子功能模塊和在線歌曲試聽的子功能模塊,管理員模塊包括登錄模塊、管理模塊、退出模塊,其中管理模塊又包括管理系統(tǒng)用戶的各個(gè)功能子模塊和管理歌曲的各個(gè)功能子模塊。普通用戶和管理員的退出聊天室模塊機(jī)制是類似。系統(tǒng)總體模塊框架劃分如圖5所示:普通用戶普通用戶注冊(cè)登錄聊天背景設(shè)置音樂(lè)試聽字體設(shè)置管理員過(guò)濾字段管理在線用戶管理用戶資料管理聊天記錄管理歌曲管理圖5系統(tǒng)總體模塊架構(gòu)4.2系統(tǒng)功能模塊本系統(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)管理模塊。本聊天室系統(tǒng)使用MyEclipse軟件開發(fā),以Struts2[5]框架作為主要的技術(shù)框架,以JSP技術(shù)編寫頁(yè)面。作為一個(gè)只需要WEB[2]瀏覽器,不需要下載客戶端就能實(shí)現(xiàn)的聊天室,雖然不需要客戶端的存在,但是在前臺(tái)依然必須要具備基本的用戶注冊(cè)、登陸功能。4.2.1前臺(tái)頁(yè)面的模塊在前臺(tái)模塊中,用戶只有通過(guò)注冊(cè)賬號(hào)后,擁有了賬號(hào)才能登陸,在登錄模塊中用戶輸入了注冊(cè)好的賬號(hào)與密碼,通過(guò)驗(yàn)證后,進(jìn)入到聊天模塊,在聊天模塊中,可以進(jìn)行字體大小、顏色的設(shè)置,可以改變頁(yè)面的背景顏色,可以發(fā)送表情,除了這些以外,還有音樂(lè)試聽模塊。前臺(tái)頁(yè)面的模塊又可以分為登陸模塊和聊天模塊。登陸模塊其中包括了用戶注冊(cè)賬號(hào),合法注冊(cè)用戶登陸賬號(hào),找回密碼,資料修改等等。(1)用戶注冊(cè)模塊用戶將個(gè)人信息填寫完整,點(diǎn)擊注冊(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è)面。(2)登陸賬號(hào)模塊當(dāng)用戶輸入用戶名和密碼后,點(diǎn)擊登錄對(duì)輸入的信息進(jìn)行驗(yàn)證,即查看數(shù)據(jù)庫(kù)是否存在該用戶,若存在,則對(duì)密碼進(jìn)行核對(duì),若密碼正確,則登陸到聊天界面,否則停留在登錄界面。(3)找回密碼模塊當(dāng)用戶忘記密碼時(shí),通過(guò)注冊(cè)時(shí)填寫的問(wèn)題以及問(wèn)題的答案找回密碼。點(diǎn)擊找回密碼,跳到下一步頁(yè)面,輸入要找回密碼的用戶的用戶名,點(diǎn)擊下一步,根據(jù)輸入的用戶名,查找到用戶注冊(cè)時(shí)輸入的密碼提示問(wèn)題,并填入密碼提示問(wèn)題的答案,點(diǎn)擊下一步,進(jìn)行驗(yàn)證,若輸入答案錯(cuò)誤,則跳到登錄頁(yè)面,若答案正確,則跳到下一步的頁(yè)面,輸入新密碼,點(diǎn)擊下一步,完成密碼修改,跳到登錄頁(yè)面。聊天界面則包括一個(gè)用戶與另一個(gè)用戶之間的私聊,一個(gè)用戶與多用戶之間的群聊,設(shè)置修改字體、字號(hào)、顏色、變換背景色、音樂(lè)試聽等功能。聊天室的前臺(tái)功能模塊劃分圖如圖6所示:4.2.2后臺(tái)頁(yè)面的功能模塊在后臺(tái)頁(yè)面模塊中,管理員通過(guò)用戶名與密碼登錄到后臺(tái)管理頁(yè)面,在后臺(tái)管理模塊中,又可以分為在線用戶管理模塊、用戶資料管理模塊、過(guò)濾字段管理模塊、聊天記錄管理模塊、音樂(lè)管理模塊等幾個(gè)模塊。(1)用戶資料管理對(duì)每一個(gè)已經(jīng)注冊(cè)了的用戶注冊(cè)時(shí)填寫的資料進(jìn)行增刪改查的管理。(2)在線用戶管理通過(guò)查詢數(shù)據(jù)庫(kù),統(tǒng)計(jì)在線人數(shù)并在界面顯示出來(lái),并且對(duì)一些非法用戶可以實(shí)行踢除處理。(3)過(guò)濾字段管理設(shè)置需要過(guò)濾的內(nèi)容,即設(shè)置在用戶聊天時(shí)不能發(fā)送的非法內(nèi)容,插入到數(shù)據(jù)庫(kù)中,經(jīng)由數(shù)據(jù)庫(kù)篩選非法聊天內(nèi)容并自動(dòng)屏蔽優(yōu)化聊天室。(4)聊天記錄管理通過(guò)查詢數(shù)據(jù)庫(kù)中的聊天記錄表,將聊天記錄顯示到界面上,需要導(dǎo)出聊天記錄時(shí),導(dǎo)出聊天記錄,方便備份聊天記錄。(6)音樂(lè)管理上傳音樂(lè)文件,即在數(shù)據(jù)庫(kù)中對(duì)音樂(lè)表進(jìn)行插入數(shù)據(jù)操作,查詢數(shù)據(jù)庫(kù)中的音樂(lè)文件,并顯示到界面,還能刪除上傳了的音樂(lè)文件。后臺(tái)頁(yè)面的模塊劃分圖如圖7所示:前臺(tái)頁(yè)面前臺(tái)頁(yè)面用戶注冊(cè)用戶登錄找回密碼聊天室聊天功能設(shè)置音樂(lè)試聽群聊私聊字體字號(hào)字體顏色背景顏色聊天表情管理員登錄后臺(tái)管理在線用戶管理用戶資料管理聊天記錄管理音樂(lè)管理過(guò)濾字段管理圖6前臺(tái)頁(yè)面模塊劃分圖圖7后臺(tái)頁(yè)面模塊劃分圖4.2.3系統(tǒng)流程圖經(jīng)過(guò)以上的需求分析和初步的設(shè)計(jì),可以初步確定本系統(tǒng)有兩個(gè)角色,分別是普通用戶和管理員,前面已經(jīng)對(duì)本系統(tǒng)進(jìn)行了初步的設(shè)計(jì),初步確定了本系統(tǒng)的功能模塊,為了更方便、更清晰地展現(xiàn)本系統(tǒng)的功能,下面畫出了不同使用者不同權(quán)限的流程圖。普通用戶具有注冊(cè)登錄、音樂(lè)試聽、聊天、設(shè)置背景顏色、退出權(quán)限,其中聊天功能中包括群聊、私聊、設(shè)置字體字號(hào)和顏色、發(fā)送表情等權(quán)限。普通用戶的系統(tǒng)流程圖如圖8所示:管理員若以普通用戶的身份,則具有普通用戶的所有權(quán)限,若是以管理員的身份登錄,則具有登錄、用戶資料管理、過(guò)濾字段管理、在線用戶管理、聊天記錄管理、音樂(lè)管理等權(quán)限。管理員的系統(tǒng)流程圖如圖9所示:普通用戶普通用戶用戶注冊(cè)注冊(cè)成功登錄聊天室登錄成功背景顏色聊天試聽音樂(lè)字體設(shè)置字體設(shè)置字體設(shè)置字體設(shè)置登錄失敗管理員登錄后臺(tái)管理在線用戶管理在線用戶管理在線用戶管理在線用戶管理在線用戶管理登錄成功圖8普通用戶系統(tǒng)流程圖圖9管理員系統(tǒng)流程圖5數(shù)據(jù)庫(kù)設(shè)計(jì)5.1數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)經(jīng)過(guò)分析,得出本系統(tǒng)有普通用戶和管理員兩個(gè)角色,本系統(tǒng)還有過(guò)濾字段、管理聊天記錄、音樂(lè)試聽等功能,因此,本系統(tǒng)的實(shí)體有用戶、過(guò)濾條件、聊天記錄、音樂(lè),這些實(shí)體的實(shí)體屬性圖如下列圖所示:用戶用戶用戶編號(hào)用戶名密碼用戶類型密碼提示問(wèn)題提示答案是否在線圖10用戶實(shí)體屬性圖過(guò)濾條件過(guò)濾條件過(guò)濾編號(hào)過(guò)濾字段圖11過(guò)濾條件實(shí)體屬性圖聊天記錄聊天記錄記錄編號(hào)發(fā)送人發(fā)送時(shí)間發(fā)送內(nèi)容接收人圖12聊天記錄實(shí)體屬性圖歌曲信息歌曲信息音樂(lè)編號(hào)歌曲名字歌手姓名歌曲路徑圖13歌曲實(shí)體屬性圖經(jīng)過(guò)系統(tǒng)功能的初步確定和數(shù)據(jù)庫(kù)中實(shí)體的初步確定,得到了聊天的E-R圖如下圖所示:用戶用戶用戶名密碼聊天用戶用戶名密碼聊天編號(hào)發(fā)送人發(fā)送內(nèi)容接收人發(fā)送時(shí)間NM圖14聊天E-R圖5.2數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)聊天室作為網(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)生成的,這就使得動(dòng)態(tài)網(wǎng)站內(nèi)容更靈活,維護(hù)更方便,更新更便捷。本系統(tǒng)采所需要的數(shù)據(jù)庫(kù)結(jié)構(gòu)如圖15所示。圖15聊天室關(guān)系圖5.3數(shù)據(jù)庫(kù)物理結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)的設(shè)計(jì)一般情況下是以一個(gè)已經(jīng)開發(fā)出來(lái)的數(shù)據(jù)庫(kù)管理系統(tǒng)為基礎(chǔ)進(jìn)行設(shè)計(jì)的,我們平常開發(fā)中比較常用的數(shù)據(jù)庫(kù)管理系統(tǒng)有MySQL、SQLServer[15]、Oracle等。在本系統(tǒng)開發(fā)中,由于MySQL是一個(gè)開源的、快速的、多用戶的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ù)。根據(jù)QQ聊天軟件的需求,對(duì)應(yīng)的數(shù)據(jù)庫(kù)表的設(shè)計(jì)及其功能如下:用戶信息表:存放用戶注冊(cè)時(shí)填寫的用戶信息,如存放用戶名、密碼密碼提示問(wèn)題、密碼提示問(wèn)題答案等內(nèi)容;歌曲信息表:存放歌曲的信息,如歌曲名、歌曲歌手等;聊天記錄信息表:存放用戶在聊天過(guò)程中產(chǎn)生的聊天信息;過(guò)濾條件信息表:存放要過(guò)濾的字段,即存放用于過(guò)濾聊天信息的條件,用于屏蔽非法聊天信息;用戶信息表如下表所示:表2用戶表(user)列名注釋類型是否為主鍵長(zhǎng)度是否為空u_id用戶IDInt是--否name用戶名Varchar否40否pwd密碼Varchar否40是type用戶類型Int否4是isuse在線狀態(tài)Tinyint否4是ask密碼找回問(wèn)題Text否--是ans密碼找回答案Text否--是過(guò)濾條件信息表如下表所示:表3過(guò)濾條件表(cont)列名注釋類型是否為主鍵長(zhǎng)度是否為空c_id過(guò)濾IDInt是--否name過(guò)濾字段Varchar否1000是聊天記錄信息表如下表所示:表4聊天表(record)列名注釋類型是否為主鍵長(zhǎng)度是否為空r_id聊天記錄IDInt是--否name聊天內(nèi)容Varchar否1000是歌曲信息表如下表所示:表5歌曲表(music)列名注釋類型是否為主鍵長(zhǎng)度是否為空m_id歌曲IDInt是--否name歌曲名Varchar否100是singer歌手名字Varchar否100是fujian存儲(chǔ)路徑Varchar否100是6系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)6.1用戶注冊(cè)想要聊天室進(jìn)行聊天,就必須要擁有一個(gè)用于登錄的賬號(hào),如果沒(méi)有,就必須注冊(cè)一個(gè)賬號(hào),否則無(wú)法進(jìn)入聊天室。注冊(cè)時(shí),在注冊(cè)頁(yè)面輸入要填寫的信息,點(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í)要輸入的用戶名欄。用戶注冊(cè)的流程圖如圖16所示:注冊(cè)的核心代碼如下所示:publicStringexecute(){ if(user!=null&&!user.getName().equals("")&&user.getName()!=null&&user.getPwd()!=null&&!user.getPwd().equals("")){ userService.add(user); } returnSUCCESS; }6.2用戶登陸在登錄界面中,需要輸入正確的用戶名和密碼才能夠登錄。在登錄頁(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ù)查找到該用戶的isuse字段,將字段的值改成1(1代表在線狀態(tài),0代表離線狀態(tài))。當(dāng)用戶離開聊天室時(shí),系統(tǒng)會(huì)自動(dòng)將該用戶表user中的isuse字段改成0。管理員登錄與普通用戶登錄差不多,不過(guò)管理員登錄后,會(huì)跳轉(zhuǎn)到后臺(tái)管理頁(yè)面。用戶登錄流程圖如圖17所示:開始輸入注冊(cè)信息開始輸入注冊(cè)信息驗(yàn)證信息后臺(tái)數(shù)據(jù)庫(kù)插入信息跳轉(zhuǎn)頁(yè)面完成成功失敗開始輸入用戶名和密碼驗(yàn)證信息跳轉(zhuǎn)頁(yè)面完成成功失敗圖16用戶注冊(cè)流程圖圖17用戶登陸流程圖核心代碼如下所示:publicStringexecute(){ if(userService.login(user)!=null){ user=userService.login(user); HttpSessionsession=ServletActionContext.getRequest() .getSession(); List<User>ulist=userService.findIsOnline(); session.getServletContext().setAttribute("ulist",ulist); if(user.isType()){ List<Cont>cont=contService.select(); ServletActionContext.getRequest().getSession().setAttribute("contlist",cont); return"admin"; } user.setIsuse(User.ON_LINE); userService.update(user); session.setAttribute("user",user); List<Record>talking=(List<Record>)session.getServletContext().getAttribute("talking"); if(talking==null){ talking=recordService.getList(); } Recordcoming=newRecord(); coming.setUser(user); coming.setCont(user.getName()+"進(jìn)入了聊天室!"); talking.add(coming); session.getServletContext().setAttribute("talking",talking); returnSUCCESS; }; returnERROR; }開始開始輸入用戶名驗(yàn)證信息輸入密碼提示問(wèn)題的答案驗(yàn)證信息跳轉(zhuǎn)到登錄頁(yè)面輸入新密碼完成存在正確不存在錯(cuò)誤6.3找回密碼用戶忘記密碼時(shí),可以單擊“找回密碼”,跳到下一個(gè)頁(yè)面,輸入要找回密碼的用戶的用戶名,點(diǎn)擊下一步,系統(tǒng)會(huì)通過(guò)輸入的用戶名查詢?cè)撚脩裘欠翊嬖冢舨淮嬖?,則跳到登錄頁(yè)面,若存在,根據(jù)該用戶名找到該用戶在注冊(cè)時(shí)填寫的密碼提示問(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)到登錄頁(yè)面;如果輸入的密碼提示問(wèn)題的答案錯(cuò)誤,則跳轉(zhuǎn)到登錄頁(yè)面。找回密碼的流程圖如圖18所示:圖18找回密碼的流程圖核心代碼如下所示:publicStringexecute(){ Userolduser=userService.findByName(user); if(olduser!=null){ user=olduser; user.setAns(""); returnSUCCESS; } returnERROR; }6.4聊天室用戶登錄后進(jìn)入聊天室頁(yè)面,聊天室頁(yè)面的功能有群聊私聊、試聽在線音樂(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)容,若不是非法內(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))。普通用戶聊天室頁(yè)面的運(yùn)行效果如圖19所示:圖19普通用戶聊天頁(yè)面點(diǎn)擊在線音樂(lè),將會(huì)彈出在線歌曲列表,點(diǎn)擊試聽,能播放在線歌曲。在后臺(tái)有一個(gè)歌曲管理,能夠上傳本地的歌曲,通過(guò)查詢數(shù)據(jù)庫(kù)實(shí)時(shí)刷新,并在界面中將歌曲列表中顯示出來(lái),還能通過(guò)后臺(tái)刪除在線的歌曲。在線歌曲頁(yè)面如圖20所示:圖20音樂(lè)試聽核心代碼如下所示:publicStringexecute(){ if(record!=null){ HttpSessionsession=ServletActionContext.getRequest() .getSession(); List<Record>talking=(List<Record>)session .getServletContext().getAttribute("talking"); Usercauser=(User)session.getAttribute("user"); if(userService.findById(causer).isIsuse()){ record.setChatime(newDate()); record.setUser(causer); record.setSendto(sendto); if(talking==null){ talking=recordService.getList(); } if(record.getCont()!=null&&!record.getCont().equals("")){ if(contService.selectCont(record.getCont())){ recordService.addRecord(record); }else{ record.setCont("**您的消息不合法已被系統(tǒng)屏蔽!**); } talking.add(record); } session.getServletContext().setAttribute("talking",talking); returnSUCCESS; }} returnERROR;}6.5后臺(tái)管理在用戶登錄頁(yè)面,有兩種角色,一種是普通用戶,一種是管理員。其中普通用戶登錄在6.2中已經(jīng)介紹了,現(xiàn)在介紹管理員的功能。在登錄頁(yè)面輸入管理員賬號(hào)和密碼,點(diǎn)擊登錄,系統(tǒng)將會(huì)通過(guò)查詢數(shù)據(jù)庫(kù)驗(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è)文件管理。管理員登錄后的后臺(tái)管理頁(yè)面的運(yùn)行結(jié)果如圖21所示:圖21管理員登錄后的后臺(tái)管理頁(yè)面在聊天室聊天時(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)容相同時(shí),系統(tǒng)將會(huì)字段屏蔽該信息,并在聊天頁(yè)面的聊天室發(fā)送警告。通過(guò)過(guò)濾非法字段的設(shè)置,能夠在一定程度上讓聊天室保持一個(gè)文明的公共聊天室環(huán)境,當(dāng)然這也不是絕對(duì)的保證聊天室的文明,想要擁有一個(gè)文明的公共環(huán)境,還需要靠用戶自覺來(lái)維護(hù)聊天室的公共文明。后臺(tái)管理界面中過(guò)濾字段管理頁(yè)面如圖22所示圖22過(guò)濾字段管理頁(yè)面在聊天室中,用戶可以發(fā)送聊天信息,在聊天時(shí)有可能會(huì)遇到某些用戶發(fā)送不文明的語(yǔ)言,若是管理員覺得用戶經(jīng)常發(fā)送不文明語(yǔ)言,想將該用戶踢出,在點(diǎn)擊踢出后,系統(tǒng)將會(huì)在數(shù)據(jù)庫(kù)中執(zhí)行刪除該用戶的語(yǔ)句。通過(guò)在線用戶的管理,能夠在一定程度上讓聊天室保持一個(gè)文明的公共聊天室環(huán)境。后臺(tái)管理界面中在線用戶管理頁(yè)面如圖23所示:圖23在線用戶管理頁(yè)面在聊天室聊天時(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)管理員能夠刪除用戶的聊天記錄,還能夠到處聊天記錄,方便備份聊天記錄。后臺(tái)管理界面中聊天記錄管理頁(yè)面如圖24所示:圖24聊天記錄管理界面在前臺(tái)聊天頁(yè)面中,有在線音樂(lè)試聽的功能,在后臺(tái)管理頁(yè)面中同樣有歌曲管理功能,管理員能夠在后臺(tái)添加歌曲、刪除歌曲。后臺(tái)管理界面中歌曲管理頁(yè)面如圖25所示:圖25歌曲管理界面核心代碼如下所示:publicStringexecute(){ IntegerUId=Integer.valueOf(ServletActionContext.getRequest().getParameter("user")); Useruser=newUser(); user.setUId(UId); Userolduser=userService.findById(user); if(olduser!=null){ olduser.setIsuse(User.OFF_LINE); userService.update(olduser); List<User>ulist=userService.findIsOnline(); ServletActionContext.getServletContext().setAttribute("ulist",ulist); } returnSUCCESS; }7系統(tǒng)測(cè)試7.1系統(tǒng)測(cè)試本系統(tǒng)經(jīng)過(guò)需求分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)等階段后得到系統(tǒng)的源程序,現(xiàn)在開始進(jìn)入到軟件測(cè)試階段。軟件測(cè)試是用來(lái)測(cè)試一個(gè)軟件的質(zhì)量和性能是否符合用戶需求,軟件是否能夠正確運(yùn)行的重要階段,是軟件開發(fā)過(guò)程的必不可少的重要組成部分,是軟件質(zhì)量保證的關(guān)鍵步驟。(1)鏈接測(cè)試進(jìn)行系統(tǒng)測(cè)試時(shí),首先要測(cè)試系統(tǒng)的鏈接是否可用。測(cè)試系統(tǒng)的鏈接可以從三方面進(jìn)行。首先,測(cè)試所URL所指向的頁(yè)面是否完整正確地存在;其次,測(cè)試系統(tǒng)中所有URL是否按指定的鏈接地址鏈接到正確的頁(yè)面中;最后,確保本系統(tǒng)上沒(méi)有單獨(dú)孤立的頁(yè)面,所謂單獨(dú)孤立頁(yè)面是指沒(méi)有任何一個(gè)頁(yè)面上有鏈接是指向該頁(yè)面。鏈接測(cè)試必須在集成測(cè)試階段完成。(2)表單測(cè)試在用戶注冊(cè)登錄模塊中,需要用到表單提交信息,因此,我們必須保證表單是完整的、正確的,才能利用表單校驗(yàn)提交的信息是否正確。若表單中需要提交的信息只能接受某些特定的字符,測(cè)試時(shí)可以跳過(guò)這些特定的字符,看一看系統(tǒng)是否會(huì)報(bào)錯(cuò)。若是不能為空,測(cè)試時(shí)則必須輸入值,否則系統(tǒng)會(huì)報(bào)錯(cuò)[13]。7.2功能測(cè)試(1)注冊(cè)模塊測(cè)試在注冊(cè)模塊中涉及用戶名、密碼、提示問(wèn)題以及提示問(wèn)題的答案四項(xiàng)數(shù)據(jù),分別輸入這四項(xiàng)數(shù)據(jù),每一項(xiàng)數(shù)據(jù)均不能為空,若是其中任何一項(xiàng)為空時(shí),則會(huì)數(shù)據(jù)插入失敗,頁(yè)面仍舊停留在注冊(cè)頁(yè)面。用戶注冊(cè)模塊的測(cè)試用例如下圖所示:表7-1用戶注冊(cè)模塊測(cè)試用例編號(hào)頁(yè)面測(cè)試輸入預(yù)計(jì)輸出實(shí)際輸出結(jié)果01注冊(cè)頁(yè)面輸入用戶名不輸入其他內(nèi)容停留在注冊(cè)頁(yè)面停留在注冊(cè)頁(yè)面通過(guò)02注冊(cè)頁(yè)面輸入存在的用戶名提示用戶存在提示用戶存在通過(guò)03注冊(cè)頁(yè)面輸入正確數(shù)據(jù)跳到登錄頁(yè)面跳到登錄頁(yè)面通過(guò)輸入上面的數(shù)據(jù)進(jìn)行測(cè)試,只有第三條數(shù)據(jù)時(shí)正確的,能完成注冊(cè)并進(jìn)行頁(yè)面的跳轉(zhuǎn),剩下的兩條因?yàn)椴糠謹(jǐn)?shù)據(jù)為空和用戶名已存在,所以錯(cuò)誤。(2)登錄模塊測(cè)試在登錄模塊中涉及了用戶名和密碼兩項(xiàng)數(shù)據(jù),在登陸頁(yè)面輸入這兩項(xiàng)數(shù)據(jù),數(shù)據(jù)不能為空且必須是數(shù)據(jù)庫(kù)中存在的數(shù)據(jù),否則會(huì)登陸失敗,停留在登陸頁(yè)面,若輸入的數(shù)據(jù)為數(shù)據(jù)庫(kù)存在的正確數(shù)據(jù),則登錄成功,頁(yè)面自動(dòng)跳轉(zhuǎn)到聊天頁(yè)面。用戶登錄模塊的測(cè)試用例如下圖所示:表7-2用戶登錄模塊測(cè)試用例編號(hào)頁(yè)面測(cè)試輸入預(yù)計(jì)輸出實(shí)際輸出結(jié)果01登錄頁(yè)面只輸入用戶名,點(diǎn)擊登錄停留在登錄頁(yè)面停留在登錄頁(yè)面通過(guò)02登錄頁(yè)面只輸入密碼,點(diǎn)擊登錄停留在登錄頁(yè)面停留在登錄頁(yè)面通過(guò)03登錄頁(yè)面隨意輸入用戶名和密碼停留在登錄頁(yè)面停留在登錄頁(yè)面通過(guò)04登錄頁(yè)面不輸入任何內(nèi)容停留在登錄頁(yè)面停留在登錄頁(yè)面通過(guò)05登錄頁(yè)面輸入正確的用戶名和密碼跳轉(zhuǎn)到聊天頁(yè)面跳轉(zhuǎn)到聊天頁(yè)面通過(guò)輸入上面的數(shù)據(jù)進(jìn)行測(cè)試,輸入第五條數(shù)據(jù)時(shí),因?yàn)橐呀?jīng)在注冊(cè)頁(yè)面注冊(cè)成功了,所以能夠成功登錄到聊天界面;輸入第一條數(shù)據(jù)、第二條數(shù)據(jù)和第四條數(shù)據(jù)時(shí),因?yàn)檩斎氲臄?shù)據(jù)不完整,所以登錄失敗,仍然停留在登錄頁(yè)面;輸入第三條數(shù)據(jù)時(shí),因?yàn)闆](méi)有在注冊(cè)頁(yè)面注冊(cè)該條數(shù)據(jù),即數(shù)據(jù)庫(kù)不存在此數(shù)據(jù),所以登錄失敗。(3)找回密碼模塊測(cè)試在找回密碼模塊中,用戶通過(guò)輸入的用戶名找到用戶在注冊(cè)時(shí)輸入的密碼提示問(wèn)題,要求用戶輸入正確的密碼提示問(wèn)題的答案,通過(guò)此答案修改密碼,因此,在找回密碼模塊涉及到的數(shù)據(jù)有用戶名和密碼提示問(wèn)題的答案兩項(xiàng)。用戶找回密碼模塊的測(cè)試用例如下圖所示:表7-3用戶找回密碼模塊測(cè)試用例編號(hào)頁(yè)面測(cè)試輸入預(yù)計(jì)輸出實(shí)際輸出結(jié)果01輸入用戶名頁(yè)面不輸入用戶名跳到登錄頁(yè)面跳到登錄頁(yè)面通過(guò)02輸入用戶名頁(yè)面隨意輸入用戶名跳到登錄頁(yè)面跳到登錄頁(yè)面通過(guò)03輸入用戶名頁(yè)面輸入正確的用戶名跳到下一頁(yè)跳到下一頁(yè)通過(guò)04輸入問(wèn)題答案頁(yè)面不輸入任何內(nèi)容跳到登錄頁(yè)面跳到登錄頁(yè)面通過(guò)05輸入問(wèn)題答案頁(yè)面隨意輸入答案跳到登錄頁(yè)面跳到登錄頁(yè)面通過(guò)06輸入問(wèn)題答案頁(yè)面輸入正確答案跳到下一頁(yè)跳到下一頁(yè)通過(guò)07輸入新密碼頁(yè)面不輸入任何內(nèi)容跳到登錄頁(yè)面跳到登錄頁(yè)面通過(guò)08輸入新密碼頁(yè)面輸入新密碼修改成功跳到登錄頁(yè)面跳到登錄頁(yè)面通過(guò)點(diǎn)擊找回密碼鏈接,跳轉(zhuǎn)到下一個(gè)頁(yè)面,輸入要找回密碼的用戶的用戶名,如果用戶名輸入正確,才能跳到下一個(gè)頁(yè)面,否則會(huì)跳轉(zhuǎn)到登錄頁(yè)面。若果輸入用戶名正確,根據(jù)用戶名查找到該用戶注冊(cè)時(shí)輸入的密碼提示問(wèn)題,并將信息顯示出來(lái),按照界面信息的提示輸入密碼提示問(wèn)題的答案,如果輸入的答案正確,就會(huì)跳到下一個(gè)頁(yè)面,提示用戶輸入新的密碼,否則頁(yè)面會(huì)跳到登錄頁(yè)面。若用戶輸入的新密碼不為空,則修改密碼成功,跳到登錄頁(yè)面。(4)歌曲管理模塊測(cè)試管理員登錄后,進(jìn)入到后臺(tái)管理頁(yè)面,可以對(duì)歌曲進(jìn)行管理,能夠刪除歌曲,同時(shí)也能上傳歌曲。歌曲管理模塊的測(cè)試用例如下圖所示:表7-4歌曲管理模塊測(cè)試用例編號(hào)頁(yè)面測(cè)試輸入預(yù)計(jì)輸出實(shí)際輸出結(jié)果01歌曲管理頁(yè)面不輸入任何信息提示錯(cuò)誤提示錯(cuò)誤通過(guò)02歌曲管理頁(yè)面輸入歌曲名,不輸入其他的提示錯(cuò)誤提示錯(cuò)誤通過(guò)03歌曲管理頁(yè)面輸入正確信息
溫馨提示
- 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年股權(quán)轉(zhuǎn)讓標(biāo)準(zhǔn)化協(xié)議選集版B版
- 肥腸配方課程設(shè)計(jì)
- 2024年馬鈴薯種植基地節(jié)能減排合同3篇
- 會(huì)議設(shè)備培訓(xùn)
- 2024杭州市江干區(qū)電子商務(wù)平臺(tái)服務(wù)合同
- 2024有關(guān)維修合同范文
- 二零二五年度化妝品原料國(guó)際采購(gòu)代理合同3篇
- 二零二五年度地簧門生產(chǎn)與市場(chǎng)推廣合作協(xié)議8篇
- 2024年貨車融資租賃協(xié)議樣本
- 2024木材行業(yè)國(guó)際貿(mào)易仲裁與爭(zhēng)議解決合同2篇
- 人教部編版八年級(jí)數(shù)學(xué)上冊(cè)期末考試卷及答案一
- 養(yǎng)老機(jī)構(gòu)安全管理培訓(xùn)課件
- (附答案)2024公需課《百縣千鎮(zhèn)萬(wàn)村高質(zhì)量發(fā)展工程與城鄉(xiāng)區(qū)域協(xié)調(diào)發(fā)展》試題廣東公需科
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期1月期末英語(yǔ)試題
- 有門攝影課智慧樹知到期末考試答案2024年
- 臨床試驗(yàn)觀察表(CRF)
- (正式版)JBT 11880.13-2024 柴油機(jī) 選擇性催化還原(SCR)系統(tǒng) 第13部分:催化劑分子篩
- 2024年江蘇宿遷永澤福壽園殯葬服務(wù)有限公司招聘筆試參考題庫(kù)含答案解析
- 鐵路職業(yè)規(guī)劃
- 審計(jì)常用法規(guī)培訓(xùn)課件
- 健康指南知己知彼了解你的身體質(zhì)量指數(shù)BMI
評(píng)論
0/150
提交評(píng)論