基于BS的QQ聊天軟件的設計與實現_第1頁
基于BS的QQ聊天軟件的設計與實現_第2頁
基于BS的QQ聊天軟件的設計與實現_第3頁
基于BS的QQ聊天軟件的設計與實現_第4頁
基于BS的QQ聊天軟件的設計與實現_第5頁
已閱讀5頁,還剩31頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

概述在網絡世界中,聊天室(ChatRoom)是一個最常見的服務,它最早起源于BBS站點,聊天室作為一個在漫漫長夜打發消遣時間的最佳軟件,除了能夠用于聊天消遣時間以外,還擁有語音聊天、視頻聊天、共享圖片、文件等功能。現在隨著網絡的發展,聊天室發展的速度已經非常迅速了,現在的聊天室技術,都已經運用到了“網絡會議”上,現在有很多的會議在網上視頻聊天會議[9]。在市面上,聊天室的應用軟件出現得比較早,比如說,MicrosoftChat,一個在界面及功能方面都已經非常完善的“聊天室”的應用軟件,它是一套獨立于瀏覽器之外的,即與瀏覽器無關的,需要下載客戶端安裝使用的套裝軟件,在使用它之前還需要先熟悉其中的操作界面,才能夠使用這個軟件,這對于新時代匆匆忙忙,并沒有太多時間去學習的網友來說,是一個非常不方便的缺陷。因此,開發出來一個操作簡單,方便,不需要下載客戶端安裝使用的聊天軟件已經成為廣大網民的迫切需求。所以,根據網民的需求,越來越多的公司和網站開始開發基于瀏覽器的,不需要下載客戶端安裝使用,不需要熟悉界面操作的聊天室,以便造福更多的網友[12]。1.1研究開發背景由于電子科技的迅速發展,網絡時代到來,人們通訊方式也不斷的發生改變,從以前的寫信到后來的呼機,到現在的手機,不斷地往高科技方向發展。然而人們的聊天的方式也在發生改變,因此聊天室也隨之慢慢的發展起來了,慢慢受到人們喜愛,現在我們QQ中就有各種各樣的群,有的娛樂、有的技術交流、有的用來工作,總之應用非常廣。聊天室的開發是有必要的,其發展的前景也是非常大的。聊天室現在用于娛樂方面還是比較少的,主要還是用于商業方面,就目前聊天室的市場結構來看,現在大多數的網站幾乎都擁有一個完全屬于自己的聊天室,現在的聊天室,運作起來是非常的簡單,當然也有非常復雜的,如像QQ和YY那種聊天的工具。在國外,現在就一個普通的商務網上或者娛樂網站都有屬于自己的聊天工具。聊天室的之所以這么普及主要有兩個原因:一、由于現在這方面的技術已經是相當的成熟,開發這種軟件的成本高;二、聊天這種軟件不管是運作起來還使用起來都是比較方便的。所有很受人們的歡迎,現在都有很多專門做這種軟件的公司了。在我國,聊天室市場集中度還不是很高,其中只有一些大型的商業網站或者一些專門娛樂性的網站才有,所有在我國的市場還是相當的大。在我國,由于現在的電腦的價格非常的便宜,人們的生活水平的提高,對網絡的需要越來越大,除了在網上玩游戲、談生意、購物、查閱資料以外,還有就是用于聊天娛樂,當我們身處在一個群體當中的時候,不管是在工作還是在學習中也好,我們都會建立起一個屬于自己的聊天室,它的聊天功能是聊天室中運用最廣的功能,這是網上最受歡迎和最普通以中聊天方式。聊天具有應用廣泛、開發簡單、操作方便、功能齊全、信息傳遞、簡單快捷等的特獨有性,因為它是用文字來傳播信息,所有用于聊天時候的信息交流比較方便,相當于人與人面對面的交流,受到大多數人喜歡,因此有很多人喜歡在聊天室中聊天,還沒面對面那種羞澀[2]。1.2選題的意義現在的通訊系統,除了我們生活中用于正常交流和聯系以外,在現在的商業中也慢慢的興起,運用到網上交易中,聊天室為客戶與客戶之間的溝通提供了一個有效交流平臺,使得與客戶之間的聊天沒有時間和空間的距離感。在時間上,這邊發一條信息到另外一邊所用的時間只需要不到1秒的時間,幾乎是立即得到響應,比發送一份郵件的信息傳遞速度快了幾百倍,非常的節省時間;在經濟上,我們打電話是按時間分鐘來計費的,如果是長途電話的話更貴,而我們的聊天室是通過互聯網來接通的,價格十分便宜。當然我們不能否定郵件和電話,在用于不同的地方,它們又比聊天室好。基于B/S的聊天室是瀏覽器/服務的,與基于C/S架構的騰訊QQ等聊天軟件相比起來,這種B/S[7]架構的聊天室,是不需要下載安裝,直接是在瀏覽器上運行。因此,對于一個公司和企業來說,開發一個用于網站、娛樂或者論壇來交流的聊天室,其中包括群聊和私聊,成為了現在眾多公司或集體的重要需求[14]。這次開發的基于B/S架構的聊天室,是用現在流行JAVA[1]語言來開發的,用MyEclipse8.5作為開發平臺,因為MyEclipse8.5開發B/S[6]架構運行在瀏覽器上的系統比較方便,并且用到的數據庫是當前非常受歡迎的MySQL數據,作為后臺數據庫存儲一些信息,建立一些表格。現在的隨著WEB技術不斷加強,B/S架構的設計模式開始流行起來,因為B/S架構的是網頁版的,作為客戶端只需要在瀏覽器上操作,沒有下載安裝客戶端的說法。B/S模式將實現系統核心功能的代碼全部都放著到服務器上,只有該系統的服務器夠強大就可以無限的運行,如果客戶端崩潰,也只是在瀏覽器上而已,只需要重新打開一個頁面就可以了,從某種一定程度上,這個系統只需要開發一個強大的服務器,從而簡化了系統的開發和維護。基于B/S架構的聊天室系統,與那些C/S[8]模式聊天室相比較,最大的優點:只要你有瀏覽器,就可以隨時隨地進行聊天,而不需要下載安裝客戶端,從而實現了客戶端零安裝、零維護的需求,提高了其中的效率[6]。1.3國內外研究現狀隨著互聯網的發展以及普及,網絡聊天軟件逐漸成為網絡用戶必備的聯絡工具,它為廣大網民提供了一種方便快捷的溝通方式,而網絡聊天室作為出現最早,也是操作簡單的網上聊天方式,受到了眾多網民的追捧。在國內,1999年2月,深圳騰訊公司正式發布OICQ99betabuild0210,開通騰訊網絡聊天服務。2000年5月,騰訊QQ在線人數已經突破10萬。2001年2月l0日,騰訊QQ在線人數已經突破100萬。2004年4月份,騰訊QQ在線人數的最高記錄已經突破了600萬,現在騰訊公司正在把網絡聊天系統往移動聊天方向擴展,如今已經將網絡聊天與手機短信息(SMS)成功結合起來。如今網絡聊天軟件涉及和影響的范圍越來越廣,其競爭也越來越激烈。在國外,MSN——借助和Windows操作系統的綁定似乎已是使用最廣泛的聊天軟件。使用MSN,可以通過文本、語音、視頻與朋友、親人聊天,還可以與朋友、親人傳輸文件,共享圖片等。但是,這些聊天軟件都是基于C/S架構的,都需要通過下載客戶端進行安裝使用,在更新方面也需要下載更新,而且用戶名、密碼和聊天記錄等都是存在本地機器上的,在安全性和方便性方面都有所欠缺。Browser/Server(瀏覽器/服務器)結構,是隨互聯網技術伴生的,是對C/S架構的進行改進的一種結構。在這種結構下,用戶不需要通過下載客戶端安裝使用和更新,只需要有瀏覽器就可以實現,而且可以隨時隨地地使用,不會受到時間與地域的影響。與C/S相比,B/S的優勢是B/S是建立在廣域網之上的,一般情況下只要有操作系統和瀏覽器就可以了,不需要有專門的網絡硬件環境,而C/S則是建立在專用網絡上的,必須是小范圍網絡環境,所以,B/S架構的聊天室開發起來比C/S架構的要簡單,容易。而且B/S架構的聊天室實現了系統的無縫升級,系統維護開銷小。最主要的是B/S架構的聊天室是基于瀏覽器的,與操作平臺無關,所以不需要考慮兼容性問題[6]。1.4本文組織結構本文圍繞著開發一個基于B/S的QQ聊天軟件,描述了完成開發這個系統的主要流程,本文分為以下幾部分:介紹的是基于B/S的QQ聊天軟件的研發背景、選題意義和國內外現狀;介紹的是QQ聊天軟件要使用的開發環境、開發工具以及要使用到的技術;介紹的是QQ聊天軟件的需求分析;介紹的是系統的設計與及系統需要有的功能模塊;介紹的是數據庫的設計與創建;介紹的是系統的詳細設計與實現;主要是對本系統進行測試,證明系統的可行性。2開發工具及技術介紹2.1開發環境系統名:基于B/S的QQ聊天軟件的設計與實現操作系統:windows732位硬件支持:CPU英特爾Corei5-480M(雙核)內存6GB顯卡ATI/AMDRadeonHD64x0M/74x0M2.2系統開發工具開發工具:MyEclipse8.5服務器:apache-tomcat-6.0.28數據庫:MySQL2.3B/S結構的簡介在傳統的兩層的C/S結構中,隨著技術慢慢的發展出現了它的局限性,C/S結構模式比較適合于那種系統規模比較小、用戶也比較少、而且數據庫還是單一的情況下,并且運行的網絡環境必須是安全的和快速(例如局域網)。由于網絡技術的發展之快,所運行的應用系統的規模在慢慢的擴大,其中的復雜性越來越高,在現在多用戶、多數據庫、多接口的系統中,并且網絡環境下也是非安全的(例如:Internet)的網絡環境中,傳統的兩層C/S結構的應用模型無法滿足現狀,跟不上時代步伐,而且這種模式是單一的服務器,主要以局域網為中心的,因此想要把傳統的模式擴展至大型企業的廣域網或強大的Intranet中是不可能的,因此B/S體系結構三層客戶/服務器模式隨之興起,成為當今最受歡迎的一種體系結構[8]。三層客戶/服務器模式是稱之為B/S體系結構,是在以前傳統兩層的C/S結構模式的集成上,增加了一級成為了現在流行的三層客戶/服務器模式。B/S體系結構在邏輯上將應用功能分為3層,分別是顯示層、業務層、數據層。客戶顯示層是服務有客戶端的,為客戶的圖形界面功能提供相對應的應用服務的,從而幫助客戶迅速快捷的定位于應用服務。業務邏輯層是在顯示層和數據層之間,是為企業實現該企業的業務邏輯提,專門的設計供的一個明確有效的層次,具有一定的邏輯性,在這個層次中,封裝了與系統相關聯的應用模型,同時把顯示層和數據庫代碼部分的數據層區分開來數據層是三層模式中最底層的結構,這個層的主要目的是用來定義、維護、訪問和更新數據,簡單的說,就是管理數據庫的,同時管理和滿足應用服務對數據庫發送的一系列請求,維護數據庫得管理。這種三層體系結構關系如圖1所示:顯示層顯示層業務層數據層圖1B/S三層架構示意圖2.4MySQL簡介MySQL數據庫是一個精巧的SQL數據庫管理系統,這個數據庫相對其他那些數據庫來說,是非常小的。MySQL數據庫很容易安裝,它是在DOC命令的窗口運行的,但是它是具有強大的數據開發和維護功能、源代碼開發的關系型數據庫管理系統,還有就是這個數據庫管理系統具有非常強靈活性和豐富的應用編程接口以及精巧的系統結構性。同時運用起來不占什么內存,還有他它快速,健壯和易用的特性,同時所用到經濟成本也是非常的地,所以現在那些小型的企業的數據庫基本上都采用這種數據庫管理系統,其中的主要原因上面以及介紹了。所以在現在的那些小型的項目中,基本都會選擇這種數據。SQL是一種標準化的語言,它不僅在MySQL數據庫能運行還能在SQLServer中運行,所以MySQL數據庫的SQL語言是可以在其他數據中使用。同時MySQL還能夠足夠快和靈活存儲記錄文件和圖像等屬性,可見這個數據庫得功能之強大[11]。MySQL數據庫軟件有幾個版本,分別是標準版、企業版和集群版3個版本。MySQL數據庫的主要特點是體積小、速度快和成本低3個特點,其中在成本低MySQL數據庫優勢下,它的局限性已經不是什么問題了,而且它能滿足現在的那些中小型的系統或者網站,所以,使得一般中小型網站的開發都會選擇MySQL作為網站數據庫。同時MySQL數據庫相比其他的數據而言,在相同的運行環境中,可能維護起來會比較的容易些,所以在數據維護方面的,所需要的人力和財力會減少很多,減少了企業的開支[16]。3系統需求分析3.1綜合需求通過調查可以得知,在本系統中,用戶的類型有兩種:普通用戶和管理員。普通用戶可以通過注冊用戶名,進入聊天系統,在聊天室中可以給所有人發送群聊信息,也可以和聊天室中的某個在線用戶進行私聊。管理員在注冊成為普通用戶以后也可以進入前臺的聊天頁面,跟普通用戶一樣,進行聊天。管理員除了具有普通用戶的功能外,還可以通過管理員的身份進入后臺管理系統,對系統進行管理和維護。聊天室的最大特點就是能夠對聊天內容進行實時刷新,能夠實時顯示聊天內容。即在同一個聊天室的使用者,可以在短時間內立刻看到其他聊天者的發言,并且能夠通過實時刷新看到在線人數列表。本系統有普通用戶和管理員兩個角色。在系統中,普通用戶實現的功能有用戶注冊、用戶登錄、找回密碼、進入聊天室聊天、試聽音樂等功能。聊天時,用戶可以設置字體的大小、顏色等,實時顯示聊天信息,并且實時顯示在線聊天的人員列表,好友狀態,用戶還可以手動更換背景顏色。同時,系統還有支持用戶在線播放音樂的功能。管理員除了可以以普通用戶的身份實現普通用戶的功能以外,還可以以管理員的身份實現管理員的功能。管理員實現的功能有剔除普通用戶、過濾非法聊天內容、用戶資料管理、在線用戶管理、導出聊天記錄、上傳音樂文件等功能。本系統旨在實現在線實時聊天功能,為用戶提供方便快捷的交流方式,這在具體體現,將會在系統實現中體現和擴展。3.2系統可行性分析可行性分析是根據初步的調查結果,對系統開發做出可行與否的結論的過程。可行性分析從技術可行性、經濟可行性、管理可行性三方面進行分析,論證該系統是否可行。3.2.1技術及開發方法可行性本系統的開發采用Java[3]語言和JSP[10]相關技術,JSP具有一處編譯,到處運行的特性,而Java語言是面向對象的語言,它具有與平臺無關的特性,所以系統能夠跨平臺使用,可運行于Linux/Unix和Windows系列等各種操作系統平臺。3.2.2管理可行性使用模塊化的設計方法,有助于系統開發過程的管理,因為模塊化的設計方法就是科學合理的將整個程序劃分為N個功能模塊,各個功能模塊單獨設計,互不影響。這種設計方法有助于降低整個程序的設計難度及減少錯誤程序的影響范圍,也使得各個功能模塊容易實現,而且整個程序修改容易,不會因為其中一個功能模塊出現錯誤而影響整個系統。3.2.3經濟可行性經過詳細周密的調查,借鑒成功的開發案例,采用科學有效的開發方式,可以降低開發的成本,達到經濟高效的目的。本系統在開發方面主要使用了MyEclipse8.5、apache-tomcat-6.0.28、MySQL等軟件,而這些軟件在網上均可以免費下載,因此,在開發成本方面可以說是非常低,所以,該系統在經濟方面可行。3.3功能需求經過詳細的調查,首先可以確定的是系統需要有“普通用戶”和“管理員”這兩個角色。3.3.1用例分析管理員主要負責對系統中用戶進行管理和維護,普通用戶主要負責對聊天界面進行設置以及進行聊天和聊天的設置,以上兩個實體的主要功能如下圖所示:表1基本用例實體功能普通用戶注冊、登錄聊天、設置字體的大小,顏色、設置背景顏色、試聽音樂管理員登錄、管理在線用戶、管理聊天記錄、管理音樂文件根據分析,系統中的兩個實體,“普通用戶”和“管理員”的用例圖如下圖所示:圖2系統用例圖3.3.2場景分析(1)用戶注冊場景用戶輸入注冊要填寫的內容后,點擊注冊進行驗證,如果驗證合法,則會對后臺數據庫做數據的插入操作,插入成功后,即注冊成功,跳轉到登錄頁面,否則繼續停留在注冊頁面。用戶注冊的順序圖如圖3所示:圖3用戶注冊順序圖(2)用戶登錄場景用戶輸入用戶名和密碼后,后臺數據對用戶輸入的數據進行驗證判斷,如果后臺數據庫存在該用戶,且密碼正確,則跳轉到聊天頁面,否則登錄失敗,繼續停留在登錄頁面。用戶登錄的順序圖如圖4所示:圖4用戶登錄順序圖4系統設計4.1系統總體設計根據以上聊天系統的需求分析,本聊天系統可將模塊分為普通用戶登陸的前臺聊天子系統模塊和后臺管理員管理子系統模塊。其中普通用戶模塊包括登錄模塊、聊天模塊、退出模塊,聊天模塊又包含各種聊天相關功能的子功能模塊和在線歌曲試聽的子功能模塊,管理員模塊包括登錄模塊、管理模塊、退出模塊,其中管理模塊又包括管理系統用戶的各個功能子模塊和管理歌曲的各個功能子模塊。普通用戶和管理員的退出聊天室模塊機制是類似。系統總體模塊框架劃分如圖5所示:普通用戶普通用戶注冊登錄聊天背景設置音樂試聽字體設置管理員過濾字段管理在線用戶管理用戶資料管理聊天記錄管理歌曲管理圖5系統總體模塊架構4.2系統功能模塊本系統在J2EE[4]平臺下使用B/S架構進行設計,MySQL作為后臺數據庫,實現管理員對聊天室的管理、用戶登陸聊天室聊天等功能的管理和實現,包括前臺模塊和后臺管理模塊。本聊天室系統使用MyEclipse軟件開發,以Struts2[5]框架作為主要的技術框架,以JSP技術編寫頁面。作為一個只需要WEB[2]瀏覽器,不需要下載客戶端就能實現的聊天室,雖然不需要客戶端的存在,但是在前臺依然必須要具備基本的用戶注冊、登陸功能。4.2.1前臺頁面的模塊在前臺模塊中,用戶只有通過注冊賬號后,擁有了賬號才能登陸,在登錄模塊中用戶輸入了注冊好的賬號與密碼,通過驗證后,進入到聊天模塊,在聊天模塊中,可以進行字體大小、顏色的設置,可以改變頁面的背景顏色,可以發送表情,除了這些以外,還有音樂試聽模塊。前臺頁面的模塊又可以分為登陸模塊和聊天模塊。登陸模塊其中包括了用戶注冊賬號,合法注冊用戶登陸賬號,找回密碼,資料修改等等。(1)用戶注冊模塊用戶將個人信息填寫完整,點擊注冊進行驗證,如果驗證合法,對數據庫做插入操作,插入成功,則完成注冊,完成注冊后頁面跳轉到登陸頁面,如果驗證沒有通過,則繼續停留在注冊頁面。(2)登陸賬號模塊當用戶輸入用戶名和密碼后,點擊登錄對輸入的信息進行驗證,即查看數據庫是否存在該用戶,若存在,則對密碼進行核對,若密碼正確,則登陸到聊天界面,否則停留在登錄界面。(3)找回密碼模塊當用戶忘記密碼時,通過注冊時填寫的問題以及問題的答案找回密碼。點擊找回密碼,跳到下一步頁面,輸入要找回密碼的用戶的用戶名,點擊下一步,根據輸入的用戶名,查找到用戶注冊時輸入的密碼提示問題,并填入密碼提示問題的答案,點擊下一步,進行驗證,若輸入答案錯誤,則跳到登錄頁面,若答案正確,則跳到下一步的頁面,輸入新密碼,點擊下一步,完成密碼修改,跳到登錄頁面。聊天界面則包括一個用戶與另一個用戶之間的私聊,一個用戶與多用戶之間的群聊,設置修改字體、字號、顏色、變換背景色、音樂試聽等功能。聊天室的前臺功能模塊劃分圖如圖6所示:4.2.2后臺頁面的功能模塊在后臺頁面模塊中,管理員通過用戶名與密碼登錄到后臺管理頁面,在后臺管理模塊中,又可以分為在線用戶管理模塊、用戶資料管理模塊、過濾字段管理模塊、聊天記錄管理模塊、音樂管理模塊等幾個模塊。(1)用戶資料管理對每一個已經注冊了的用戶注冊時填寫的資料進行增刪改查的管理。(2)在線用戶管理通過查詢數據庫,統計在線人數并在界面顯示出來,并且對一些非法用戶可以實行踢除處理。(3)過濾字段管理設置需要過濾的內容,即設置在用戶聊天時不能發送的非法內容,插入到數據庫中,經由數據庫篩選非法聊天內容并自動屏蔽優化聊天室。(4)聊天記錄管理通過查詢數據庫中的聊天記錄表,將聊天記錄顯示到界面上,需要導出聊天記錄時,導出聊天記錄,方便備份聊天記錄。(6)音樂管理上傳音樂文件,即在數據庫中對音樂表進行插入數據操作,查詢數據庫中的音樂文件,并顯示到界面,還能刪除上傳了的音樂文件。后臺頁面的模塊劃分圖如圖7所示:前臺頁面前臺頁面用戶注冊用戶登錄找回密碼聊天室聊天功能設置音樂試聽群聊私聊字體字號字體顏色背景顏色聊天表情管理員登錄后臺管理在線用戶管理用戶資料管理聊天記錄管理音樂管理過濾字段管理圖6前臺頁面模塊劃分圖圖7后臺頁面模塊劃分圖4.2.3系統流程圖經過以上的需求分析和初步的設計,可以初步確定本系統有兩個角色,分別是普通用戶和管理員,前面已經對本系統進行了初步的設計,初步確定了本系統的功能模塊,為了更方便、更清晰地展現本系統的功能,下面畫出了不同使用者不同權限的流程圖。普通用戶具有注冊登錄、音樂試聽、聊天、設置背景顏色、退出權限,其中聊天功能中包括群聊、私聊、設置字體字號和顏色、發送表情等權限。普通用戶的系統流程圖如圖8所示:管理員若以普通用戶的身份,則具有普通用戶的所有權限,若是以管理員的身份登錄,則具有登錄、用戶資料管理、過濾字段管理、在線用戶管理、聊天記錄管理、音樂管理等權限。管理員的系統流程圖如圖9所示:普通用戶普通用戶用戶注冊注冊成功登錄聊天室登錄成功背景顏色聊天試聽音樂字體設置字體設置字體設置字體設置登錄失敗管理員登錄后臺管理在線用戶管理在線用戶管理在線用戶管理在線用戶管理在線用戶管理登錄成功圖8普通用戶系統流程圖圖9管理員系統流程圖5數據庫設計5.1數據庫概念結構設計經過分析,得出本系統有普通用戶和管理員兩個角色,本系統還有過濾字段、管理聊天記錄、音樂試聽等功能,因此,本系統的實體有用戶、過濾條件、聊天記錄、音樂,這些實體的實體屬性圖如下列圖所示:用戶用戶用戶編號用戶名密碼用戶類型密碼提示問題提示答案是否在線圖10用戶實體屬性圖過濾條件過濾條件過濾編號過濾字段圖11過濾條件實體屬性圖聊天記錄聊天記錄記錄編號發送人發送時間發送內容接收人圖12聊天記錄實體屬性圖歌曲信息歌曲信息音樂編號歌曲名字歌手姓名歌曲路徑圖13歌曲實體屬性圖經過系統功能的初步確定和數據庫中實體的初步確定,得到了聊天的E-R圖如下圖所示:用戶用戶用戶名密碼聊天用戶用戶名密碼聊天編號發送人發送內容接收人發送時間NM圖14聊天E-R圖5.2數據庫邏輯結構設計聊天室作為網絡服務的一個重要應用,它的數據庫在整個系統中占據著極其重要的作用,其數據庫在網站建設和網絡營銷中發揮著非常重要的作用。普通的靜態網站是沒有數據庫的,而具有數據庫的網站網頁我們通常稱為動態頁面,也就是說擁有數據庫的網站頁面的內容不是一成不變的,頁面上內容或部分內容是可以根據數據庫中數據的變化而改變的,是動態生成的,這就使得動態網站內容更靈活,維護更方便,更新更便捷。本系統采所需要的數據庫結構如圖15所示。圖15聊天室關系圖5.3數據庫物理結構設計數據庫的設計一般情況下是以一個已經開發出來的數據庫管理系統為基礎進行設計的,我們平常開發中比較常用的數據庫管理系統有MySQL、SQLServer[15]、Oracle等。在本系統開發中,由于MySQL是一個開源的、快速的、多用戶的SQL數據庫服務器,而且MySQL能在不同的平臺上工作,所以我采用了MySql數據庫管理系統作為基礎進行數據庫設計,建立的數據庫名為chatsys的數據庫。根據QQ聊天軟件的需求,對應的數據庫表的設計及其功能如下:用戶信息表:存放用戶注冊時填寫的用戶信息,如存放用戶名、密碼密碼提示問題、密碼提示問題答案等內容;歌曲信息表:存放歌曲的信息,如歌曲名、歌曲歌手等;聊天記錄信息表:存放用戶在聊天過程中產生的聊天信息;過濾條件信息表:存放要過濾的字段,即存放用于過濾聊天信息的條件,用于屏蔽非法聊天信息;用戶信息表如下表所示:表2用戶表(user)列名注釋類型是否為主鍵長度是否為空u_id用戶IDInt是--否name用戶名Varchar否40否pwd密碼Varchar否40是type用戶類型Int否4是isuse在線狀態Tinyint否4是ask密碼找回問題Text否--是ans密碼找回答案Text否--是過濾條件信息表如下表所示:表3過濾條件表(cont)列名注釋類型是否為主鍵長度是否為空c_id過濾IDInt是--否name過濾字段Varchar否1000是聊天記錄信息表如下表所示:表4聊天表(record)列名注釋類型是否為主鍵長度是否為空r_id聊天記錄IDInt是--否name聊天內容Varchar否1000是歌曲信息表如下表所示:表5歌曲表(music)列名注釋類型是否為主鍵長度是否為空m_id歌曲IDInt是--否name歌曲名Varchar否100是singer歌手名字Varchar否100是fujian存儲路徑Varchar否100是6系統詳細設計與實現6.1用戶注冊想要聊天室進行聊天,就必須要擁有一個用于登錄的賬號,如果沒有,就必須注冊一個賬號,否則無法進入聊天室。注冊時,在注冊頁面輸入要填寫的信息,點擊注冊,會對輸入的數據進行驗證,驗證通過了,會在數據庫中插入該用戶輸入的信息,并將用戶名存到session中。注冊成功以后,頁面會自動跳轉到登錄頁面,并且通過session取到注冊時用戶輸入的用戶名,并將用戶名顯示到登錄頁面登錄時要輸入的用戶名欄。用戶注冊的流程圖如圖16所示:注冊的核心代碼如下所示:publicStringexecute(){ if(user!=null&&!user.getName().equals("")&&user.getName()!=null&&user.getPwd()!=null&&!user.getPwd().equals("")){ userService.add(user); } returnSUCCESS; }6.2用戶登陸在登錄界面中,需要輸入正確的用戶名和密碼才能夠登錄。在登錄頁面有兩種不同角色的登錄,一種是普通用戶登錄,一種是管理員登錄。普通用戶登錄時,在登錄頁面輸入普通用戶用戶名和密碼,單擊“登錄”按鈕,系統將會對用戶輸入的用戶名和密碼進行驗證,通過查詢數據庫,判斷輸入的賬號是否存在,若不存在,則繼續停留在登錄頁面,若存在,繼續判斷密碼是否正確,若正確,則進入聊天室界面,同時系統將會通過查詢數據庫查找到該用戶的isuse字段,將字段的值改成1(1代表在線狀態,0代表離線狀態)。當用戶離開聊天室時,系統會自動將該用戶表user中的isuse字段改成0。管理員登錄與普通用戶登錄差不多,不過管理員登錄后,會跳轉到后臺管理頁面。用戶登錄流程圖如圖17所示:開始輸入注冊信息開始輸入注冊信息驗證信息后臺數據庫插入信息跳轉頁面完成成功失敗開始輸入用戶名和密碼驗證信息跳轉頁面完成成功失敗圖16用戶注冊流程圖圖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()+"進入了聊天室!"); talking.add(coming); session.getServletContext().setAttribute("talking",talking); returnSUCCESS; }; returnERROR; }開始開始輸入用戶名驗證信息輸入密碼提示問題的答案驗證信息跳轉到登錄頁面輸入新密碼完成存在正確不存在錯誤6.3找回密碼用戶忘記密碼時,可以單擊“找回密碼”,跳到下一個頁面,輸入要找回密碼的用戶的用戶名,點擊下一步,系統會通過輸入的用戶名查詢該用戶名是否存在,若不存在,則跳到登錄頁面,若存在,根據該用戶名找到該用戶在注冊時填寫的密碼提示問題,填入密碼提示問題的答案,點擊下一步,系統會通過查詢數據庫驗證輸入的密碼提示問題答案是否正確,如果答案正確,則跳到下一個頁面,輸入新的密碼進行密碼修改,點擊下一步修改密碼成功,跳轉到登錄頁面;如果輸入的密碼提示問題的答案錯誤,則跳轉到登錄頁面。找回密碼的流程圖如圖18所示:圖18找回密碼的流程圖核心代碼如下所示:publicStringexecute(){ Userolduser=userService.findByName(user); if(olduser!=null){ user=olduser; user.setAns(""); returnSUCCESS; } returnERROR; }6.4聊天室用戶登錄后進入聊天室頁面,聊天室頁面的功能有群聊私聊、試聽在線音樂、設置背景顏色。用戶在輸入聊天信息時,能夠對輸入的字體進行設置,設置字體的大小、顏色等,還能發送表情,同時可在聊天頁面手動更改頁面的背景顏色。用戶在發送信息時,系統會通過查詢數據庫,檢查發送的內容是否為非法的內容,若為非法內容,系統將會自動將聊天的內容屏蔽,并在聊天頁面顯示提示警告內容,若不是非法內容,系統會將聊天的內容顯示在界面。在聊天界面中,系統能夠進行實時刷新,顯示用戶聊天發送的內容,同時能夠實時顯示在線用戶,并形成一個在線用戶列表顯示在界面中。除此之外,在聊天界面中,還有一個退出功能,點擊退出,將會退出聊天系統,跳到登錄頁面,同時將數據庫中的user表中的isuse字段該成0(0代表用戶處于離線狀態,1代表用戶處于在線狀態)。普通用戶聊天室頁面的運行效果如圖19所示:圖19普通用戶聊天頁面點擊在線音樂,將會彈出在線歌曲列表,點擊試聽,能播放在線歌曲。在后臺有一個歌曲管理,能夠上傳本地的歌曲,通過查詢數據庫實時刷新,并在界面中將歌曲列表中顯示出來,還能通過后臺刪除在線的歌曲。在線歌曲頁面如圖20所示:圖20音樂試聽核心代碼如下所示: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("**您的消息不合法已被系統屏蔽!**); } talking.add(record); } session.getServletContext().setAttribute("talking",talking); returnSUCCESS; }} returnERROR;}6.5后臺管理在用戶登錄頁面,有兩種角色,一種是普通用戶,一種是管理員。其中普通用戶登錄在6.2中已經介紹了,現在介紹管理員的功能。在登錄頁面輸入管理員賬號和密碼,點擊登錄,系統將會通過查詢數據庫驗證輸入的信息,查看數據庫是否存在該用戶,若存在,密碼是否正確,若密碼錯誤,則登錄失敗,繼續停留在登錄頁面,若密碼正確,則跳轉到后臺管理頁面。管理員登錄后,登錄的是后臺管理頁面,登錄后為為隱身狀態,普通用戶在在線用戶列表中無法看到管理員。管理員登錄后臺管理頁面后,能看到后臺管理頁面中,管理員能夠實現的功能有在線用戶管理、用戶資料管理、過濾字段管理、聊天記錄管理、音樂文件管理。管理員登錄后的后臺管理頁面的運行結果如圖21所示:圖21管理員登錄后的后臺管理頁面在聊天室聊天時,用戶可以發送聊天信息,在聊天時有可能會遇到某些用戶發送不文明的語言,這時可以在系統的后臺管理頁面設置“過濾非法字段”。在后臺管理中,可以通過設置過濾字段,過濾聊天信息。設置過濾字段的時候,系統將在數據庫插入用戶設置的內容,當前臺用戶發送的內容與后臺非法字段設置的內容相同時,系統將會字段屏蔽該信息,并在聊天頁面的聊天室發送警告。通過過濾非法字段的設置,能夠在一定程度上讓聊天室保持一個文明的公共聊天室環境,當然這也不是絕對的保證聊天室的文明,想要擁有一個文明的公共環境,還需要靠用戶自覺來維護聊天室的公共文明。后臺管理界面中過濾字段管理頁面如圖22所示圖22過濾字段管理頁面在聊天室中,用戶可以發送聊天信息,在聊天時有可能會遇到某些用戶發送不文明的語言,若是管理員覺得用戶經常發送不文明語言,想將該用戶踢出,在點擊踢出后,系統將會在數據庫中執行刪除該用戶的語句。通過在線用戶的管理,能夠在一定程度上讓聊天室保持一個文明的公共聊天室環境。后臺管理界面中在線用戶管理頁面如圖23所示:圖23在線用戶管理頁面在聊天室聊天時,用戶輸入要發送的信息。點擊發送時,系統將會在數據庫中將用戶發送的信息插入到表中,在后臺管理頁面中,系統通過查詢數據庫,將用戶發送的信息顯示到界面中,后臺管理員能夠刪除用戶的聊天記錄,還能夠到處聊天記錄,方便備份聊天記錄。后臺管理界面中聊天記錄管理頁面如圖24所示:圖24聊天記錄管理界面在前臺聊天頁面中,有在線音樂試聽的功能,在后臺管理頁面中同樣有歌曲管理功能,管理員能夠在后臺添加歌曲、刪除歌曲。后臺管理界面中歌曲管理頁面如圖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系統測試7.1系統測試本系統經過需求分析、系統設計、系統詳細設計與實現等階段后得到系統的源程序,現在開始進入到軟件測試階段。軟件測試是用來測試一個軟件的質量和性能是否符合用戶需求,軟件是否能夠正確運行的重要階段,是軟件開發過程的必不可少的重要組成部分,是軟件質量保證的關鍵步驟。(1)鏈接測試進行系統測試時,首先要測試系統的鏈接是否可用。測試系統的鏈接可以從三方面進行。首先,測試所URL所指向的頁面是否完整正確地存在;其次,測試系統中所有URL是否按指定的鏈接地址鏈接到正確的頁面中;最后,確保本系統上沒有單獨孤立的頁面,所謂單獨孤立頁面是指沒有任何一個頁面上有鏈接是指向該頁面。鏈接測試必須在集成測試階段完成。(2)表單測試在用戶注冊登錄模塊中,需要用到表單提交信息,因此,我們必須保證表單是完整的、正確的,才能利用表單校驗提交的信息是否正確。若表單中需要提交的信息只能接受某些特定的字符,測試時可以跳過這些特定的字符,看一看系統是否會報錯。若是不能為空,測試時則必須輸入值,否則系統會報錯[13]。7.2功能測試(1)注冊模塊測試在注冊模塊中涉及用戶名、密碼、提示問題以及提示問題的答案四項數據,分別輸入這四項數據,每一項數據均不能為空,若是其中任何一項為空時,則會數據插入失敗,頁面仍舊停留在注冊頁面。用戶注冊模塊的測試用例如下圖所示:表7-1用戶注冊模塊測試用例編號頁面測試輸入預計輸出實際輸出結果01注冊頁面輸入用戶名不輸入其他內容停留在注冊頁面停留在注冊頁面通過02注冊頁面輸入存在的用戶名提示用戶存在提示用戶存在通過03注冊頁面輸入正確數據跳到登錄頁面跳到登錄頁面通過輸入上面的數據進行測試,只有第三條數據時正確的,能完成注冊并進行頁面的跳轉,剩下的兩條因為部分數據為空和用戶名已存在,所以錯誤。(2)登錄模塊測試在登錄模塊中涉及了用戶名和密碼兩項數據,在登陸頁面輸入這兩項數據,數據不能為空且必須是數據庫中存在的數據,否則會登陸失敗,停留在登陸頁面,若輸入的數據為數據庫存在的正確數據,則登錄成功,頁面自動跳轉到聊天頁面。用戶登錄模塊的測試用例如下圖所示:表7-2用戶登錄模塊測試用例編號頁面測試輸入預計輸出實際輸出結果01登錄頁面只輸入用戶名,點擊登錄停留在登錄頁面停留在登錄頁面通過02登錄頁面只輸入密碼,點擊登錄停留在登錄頁面停留在登錄頁面通過03登錄頁面隨意輸入用戶名和密碼停留在登錄頁面停留在登錄頁面通過04登錄頁面不輸入任何內容停留在登錄頁面停留在登錄頁面通過05登錄頁面輸入正確的用戶名和密碼跳轉到聊天頁面跳轉到聊天頁面通過輸入上面的數據進行測試,輸入第五條數據時,因為已經在注冊頁面注冊成功了,所以能夠成功登錄到聊天界面;輸入第一條數據、第二條數據和第四條數據時,因為輸入的數據不完整,所以登錄失敗,仍然停留在登錄頁面;輸入第三條數據時,因為沒有在注冊頁面注冊該條數據,即數據庫不存在此數據,所以登錄失敗。(3)找回密碼模塊測試在找回密碼模塊中,用戶通過輸入的用戶名找到用戶在注冊時輸入的密碼提示問題,要求用戶輸入正確的密碼提示問題的答案,通過此答案修改密碼,因此,在找回密碼模塊涉及到的數據有用戶名和密碼提示問題的答案兩項。用戶找回密碼模塊的測試用例如下圖所示:表7-3用戶找回密碼模塊測試用例編號頁面測試輸入預計輸出實際輸出結果01輸入用戶名頁面不輸入用戶名跳到登錄頁面跳到登錄頁面通過02輸入用戶名頁面隨意輸入用戶名跳到登錄頁面跳到登錄頁面通過03輸入用戶名頁面輸入正確的用戶名跳到下一頁跳到下一頁通過04輸入問題答案頁面不輸入任何內容跳到登錄頁面跳到登錄頁面通過05輸入問題答案頁面隨意輸入答案跳到登錄頁面跳到登錄頁面通過06輸入問題答案頁面輸入正確答案跳到下一頁跳到下一頁通過07輸入新密碼頁面不輸入任何內容跳到登錄頁面跳到登錄頁面通過08輸入新密碼頁面輸入新密碼修改成功跳到登錄頁面跳到登錄頁面通過點擊找回密碼鏈接,跳轉到下一個頁面,輸入要找回密碼的用戶的用戶名,如果用戶名輸入正確,才能跳到下一個頁面,否則會跳轉到登錄頁面。若果輸入用戶名正確,根據用戶名查找到該用戶注冊時輸入的密碼提示問題,并將信息顯示出來,按照界面信息的提示輸入密碼提示問題的答案,如果輸入的答案正確,就會跳到下一個頁面,提示用戶輸入新的密碼,否則頁面會跳到登錄頁面。若用戶輸入的新密碼不為空,則修改密碼成功,跳到登錄頁面。(4)歌曲管理模塊測試管理員登錄后,進入到后臺管理頁面,可以對歌曲進行管理,能夠刪除歌曲,同時也能上傳歌曲。歌曲管理模塊的測試用例如下圖所示:表7-4歌曲管理模塊測試用例編號頁面測試輸入預計輸出實際輸出結果01歌曲管理頁面不輸入任何信息提示錯誤提示錯誤通過02歌曲管理頁面輸入歌曲名,不輸入其他的提示錯誤提示錯誤通過03歌曲管理頁面輸入正確信息

溫馨提示

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

評論

0/150

提交評論