畢業(yè)設(shè)計論文—基于BS模式即時通訊軟件的設(shè)計與實現(xiàn)_第1頁
畢業(yè)設(shè)計論文—基于BS模式即時通訊軟件的設(shè)計與實現(xiàn)_第2頁
畢業(yè)設(shè)計論文—基于BS模式即時通訊軟件的設(shè)計與實現(xiàn)_第3頁
畢業(yè)設(shè)計論文—基于BS模式即時通訊軟件的設(shè)計與實現(xiàn)_第4頁
畢業(yè)設(shè)計論文—基于BS模式即時通訊軟件的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、武漢工程大學(xué)郵電與信息工程學(xué)院畢業(yè)設(shè)計論文基于B/S模式即時通訊軟件的設(shè)計與實現(xiàn)Design and Implementation of Network Chatting System Based on B/S Model學(xué)生姓名 黃瑞騏 學(xué) 號 0845060107 專業(yè)班級 網(wǎng)絡(luò)工程0801指導(dǎo)教師 孫萍 2021年5月 作者聲明本人聲明所呈交的論文是我個人在導(dǎo)師指導(dǎo)下進(jìn)行的研究工作及取得的研究成果,除了文中特別加以標(biāo)注的地方外,沒有任何剽竊、抄襲、造假等違反學(xué)術(shù)道德、學(xué)術(shù)標(biāo)準(zhǔn)的行為,也沒有侵犯任何其他人或組織的科研成果及專利。與我一同工作的同志對本研究所做的任何奉獻(xiàn)均已在論文中作了明確的

2、說明并表示了謝意。如本畢業(yè)設(shè)計論文引起的法律結(jié)果完全由本人承當(dāng)。畢業(yè)設(shè)計論文成果歸武漢工程大學(xué)郵電與信息工程學(xué)院所有。特此聲明。 作者專業(yè): 網(wǎng)絡(luò)工程 作者學(xué)號: 0845060107 作者簽名: _年_月_日摘 要即時通訊Instant Messaging是目前Internet上最為流行的通訊方式,而各種各樣的即時通訊軟件也層出不窮;效勞提供商也提供了越來越豐富的通訊效勞功能。隨著互聯(lián)網(wǎng)的開展,即時通訊的運用將日益廣泛,即時通訊軟件業(yè)方興未艾。此系統(tǒng)是基于B/S的模式的即時通訊系統(tǒng),通過IE等瀏覽器直接完成客戶端的登錄、數(shù)據(jù)傳輸,使用JAVA語句開發(fā),使用Eclipse工具,數(shù)據(jù)庫方面用My

3、sql數(shù)據(jù)庫管理軟件,通過JDBC連接,便捷了用戶之間的通訊和交友。在系統(tǒng)設(shè)計與建模過程中,是以JSP開發(fā)的經(jīng)典MVC三層開發(fā)模式來開發(fā)的。本即時通訊軟件系統(tǒng)共由四個模塊組成:登錄模塊,驗證模塊,在線查找模塊和聊天模塊。登錄模塊實現(xiàn)系統(tǒng)通過驗證用戶名和密碼進(jìn)行登錄,驗證模塊實現(xiàn)對用戶的校驗和認(rèn)證。在線查找模塊采用Java Applet小程序技術(shù),嵌入在html文檔中在瀏覽器中運行,實現(xiàn)用戶個人信息的管理,即時消息的發(fā)送與接受。通信模塊采用Java編寫,實現(xiàn)即時消息的轉(zhuǎn)發(fā)與離線信息保存。 關(guān)鍵詞:B/S;JSP;IM;即時通訊AbstractInstant Messaging is now In

4、stant communication on the Internet the most popular method of communication, and all kinds of Instant Messaging software also emerge in endlessly; Service providers also provide more and more rich communication service functions. With the development of the Internet, the use of instant communicatio

5、n will be more widely, instant messaging software is in the ascendant.The system is based on B/S model of instant messaging system, through the IE, the client browser done directly login, data transmission, use JAVA statement development, use Eclipse tools, database with Mysql database management so

6、ftware, through the JDBC connection, convenient communications between the user and making friends.In system design and modeling process, is based on JSP development of the classic MVC three layer development model to development. This instant messaging software system altogether by four modules: lo

7、gin module, validation module, online search module and chat module. Login module implements system through the authentication user name and password to login, validation to the user module implements calibration and authentication. Online search module USES Java Applet small program technology, emb

8、edded in HTML document run in the browser, realize customer information management, sending and receiving the instant messages. Communication module USES Java write, realize the forwarding of instant messaging and offline information storage.Key words: B / S; the JSP; IM; Instant Messaging目 錄第1章 緒論1

9、1.1國內(nèi)外的即時通信軟件開展趨勢11.2本論文的研究內(nèi)容2第2章 系統(tǒng)的開發(fā)環(huán)境及工具簡介42.1 開發(fā)環(huán)境42.2 開發(fā)工具介紹42.2.1 Java簡介42.2.2 Applet簡介52.2.3 JSP簡介52.2.4 JDBC簡介62.2.5 MySQL簡介62.3 MVC三層模塊結(jié)構(gòu)72.3.1 view層72.3.2 control 層82.3.3 model 層8第3章 功能需求分析93.1 總體需求概述993.2.1 登錄模塊93.2.2 驗證模塊103.2.3 在線查找模塊103.2.4 聊天模塊113.3 MySQL與JSP、Java的連接12第4章 后臺數(shù)據(jù)庫的設(shè)計141

10、44.1.1 users表154.1.2 records表154.1.3 online表154.1.4 數(shù)據(jù)庫層164.1.5 模型層17第5章 系統(tǒng)詳細(xì)實現(xiàn)195.1 流程示意圖195.2 各個模塊的實現(xiàn)195.2.1 登錄頁面205.2.2 聊天頁面215.2.3 查看在線用戶235.2.4 效勞器端的顯示25結(jié) 論26致謝27參考文獻(xiàn)28第1章 緒論即時通訊軟件,幾乎是每一個上網(wǎng)用戶都必備的聯(lián)絡(luò)工具。即時通訊軟件除了能夠讓您迅速地在網(wǎng)上找到自己的朋友和工作伙伴,還可以實時交談和傳遞信息,而且,現(xiàn)在不少即時通訊軟件還集成了文件共享、語音聊天、網(wǎng)絡(luò)會議等功能。截止到目前,全球約有近3億多人使

11、用即時通訊軟件進(jìn)行交流,正因為即時通訊軟件擁有數(shù)以億計的用戶和迅速增長的市場,所以各個公司都盯上了中國這個潛在的最大市場,一時間,即時通訊市場硝煙四起。即時通訊軟件最早?E.T SURF HOME:MIRABILIS LTD. PROVIDES NEW SOLUTIONS FOR PEER-TO-PEER INTERNET COMMUNICATIONS?的新聞稿,同時發(fā)布了他們新產(chǎn)品ICQ(I Seek You)的Beta測試版。這天標(biāo)志著Internet上的第一個成熱的即時通訊系統(tǒng)Instant Message System的誕生。即時通訊效勞在誕生之后的幾年時間得到了迅猛開展,成為新增In

12、ternet用戶的3個主要應(yīng)用之一(WEB,電子郵件和即時通訊)。在國內(nèi),1999年2月,深圳騰訊公司正式發(fā)布OICQ99 beta build 0210,開通騰訊即時通訊效勞。2000年5月,騰訊QQ同時在線用戶突破10萬;2001年2月l0日,騰訊QQ同時在線用戶突破100萬。2004年4月份騰訊QQ同時在線人數(shù)最高記錄已經(jīng)突破了600萬大關(guān),現(xiàn)在騰訊公司正在把即時通訊系統(tǒng)往移動通訊方向擴(kuò)展,如今已經(jīng)將即時通訊與 短信息(SMS)成功結(jié)合起來。即時通訊軟件涉及和影響的領(lǐng)域已近越來越廣,其競爭也越來越劇烈。國內(nèi)QQ最大的敵手朗瑪U(kuò)C從2001年開始研發(fā),2002年的12月份UC正式發(fā)布,并且

13、首創(chuàng)了很多技術(shù):UC是國內(nèi)第一個做場景聊天的;UC是第一個把同學(xué)錄和校友錄結(jié)合的;第一個把即時通訊與休閑游戲相結(jié)合的;第一個把發(fā)送動畫與即時通訊相結(jié)合的。在一年的開展里,UC一度到達(dá)峰值在線30萬人,注冊用戶到達(dá)7000萬。但是縱觀這些即時通訊軟件業(yè),都是基于C/S模式的,需要下載客戶端進(jìn)行安裝,用戶名、密碼、聊天記錄等也是存放在本地機(jī)器上,在平安性和方便性上都有所欠缺。設(shè)計并開發(fā)一個基于WEB的即時通訊平臺,對于現(xiàn)階段的學(xué)習(xí)和研究,都是極為有意義的,基于這個前提和起因.然而在眾多的即時通信軟件中很少有效勞提供商同時對Windows、Linux或者M(jìn)ac操作系統(tǒng)提供支持。拋開市場因素,絕大多數(shù)

14、的即時通信軟件都是基于C/S客戶/效勞器方式的,這種的方式不利于軟件跨平臺移植,很容易出現(xiàn)兼容性的問題,而且在C/S方式下臃腫的客戶端也越來越成為眾矢之的。與其不同的是,B/S方式統(tǒng)一了客戶端,將系統(tǒng)功能實現(xiàn)的核心局部集中到效勞器上,簡化了系統(tǒng)的開發(fā)、維護(hù)和使用??蛻魴C(jī)上只要有一個瀏覽器Browser,如Netscape,IE,F(xiàn)irefox或Opera,而不需要考慮用戶使用了哪一種操作系統(tǒng)。因此使用B/S方式開發(fā)即時通信軟件是解決不同操作系統(tǒng)用戶之間進(jìn)行即時通信障礙的有效途徑之一。開發(fā)基于B/S方式的即時通信軟件具有相當(dāng)重要的現(xiàn)實意義,它可以實現(xiàn)不同操作系統(tǒng)用戶之間無障礙的交流,免除了下載安

15、裝客戶端的步驟,給用戶一個更加輕便的方式進(jìn)行溝通。另外,基于B/S方式的即時通信軟件也可以作為企業(yè)客戶效勞部門的一個重要組成局部,使用它可以縮短客戶與企業(yè)間的交流本錢,提高企業(yè)的反響速度更好地為客戶效勞?;谝陨峡紤],本系統(tǒng)需要提供一套完整的用戶管理系統(tǒng),實現(xiàn)用戶的注冊、登錄以及個人信息的管理;一個簡單易用友好的系統(tǒng)即便是入門級的用戶也可以輕易掌握客戶端界面;一個強(qiáng)大快捷提供數(shù)據(jù)包轉(zhuǎn)發(fā)與轉(zhuǎn)存的效勞器端方便了用戶的使用。要實現(xiàn)基于B/S方式的即時通信軟件就需要選擇一套與互聯(lián)網(wǎng)聯(lián)系密切的開發(fā)環(huán)境。選擇Tomcat做Web效勞器實現(xiàn)對用戶的管理。這樣的選擇有不僅能有效的發(fā)揮軟件強(qiáng)大的網(wǎng)絡(luò)功能,還可以

16、極大的節(jié)約開發(fā)本錢。同樣的,基于B/S方式的即時通訊系統(tǒng)需要做到多平臺兼容,就必須要選擇一個能在任意系統(tǒng)上都可以運行的開發(fā)軟件,而Java號稱“一次編譯,處處運行自然是開發(fā)工具中的首選。但并不是所有問題都有簡單明顯的解決方法,事實上,許多問題不可能在預(yù)定的系統(tǒng)規(guī)模之內(nèi)解決。如果問題沒有可行的解,那么花費在這項開發(fā)工程上的任何時間、資源、人力和經(jīng)費都是無謂的浪費。由于開發(fā)軟件所需資源缺乏和交付時間限制的困擾,使得計算機(jī)軟件的開發(fā)變得比擬困難。由于采用了基于B/S方式的結(jié)構(gòu),必定會對客戶端有一定的限制只能在瀏覽器內(nèi)運行。考慮到這一點,可以選擇使用Java Applet和socket技術(shù)進(jìn)行設(shè)計。J

17、ava Applet可以為本即時通信軟件提供一個易用的客戶端界面;通過socket編程技術(shù)可以簡單的實現(xiàn)網(wǎng)絡(luò)信息的傳遞。選用以上兩種技術(shù)手段可以確保程序在瀏覽器中的運行效果,而又不用擔(dān)憂系統(tǒng)功能會被削弱。在開發(fā)軟件的過程中,人們使用了許多保證軟件質(zhì)量的方法分析、設(shè)計和實現(xiàn)軟件,但難免還會在工作中犯錯誤。這樣,在軟件產(chǎn)品中就會隱藏許多錯誤和缺陷,尤其是對規(guī)模大、復(fù)雜性高的軟件更是如此。所以,必須進(jìn)行認(rèn)真、方案、徹底的軟件測試。本系統(tǒng)主要通過聊天主界面,輸入呢稱,和聊天信息,通過點擊確定,跳轉(zhuǎn)到SERVLET里,調(diào)用了DAO的增刪改查方法,然后進(jìn)入DAO的方法。通過連通機(jī)制連通數(shù)據(jù)庫并向后臺發(fā)送語

18、句。實現(xiàn)使用功能,方便人們實現(xiàn)在線聊天。第2章 系統(tǒng)的開發(fā)環(huán)境及工具簡介2.1 開發(fā)環(huán)境Tomcat 效勞器是一個免費的開放源代碼的輕量級Web 應(yīng)用效勞器,它是Apache 軟件基金會Apache Software Foundation的Jakarta 工程中的一個核心工程,由Apache、Sun 和其他一些公司及個人共同開發(fā)而成。由于有了Sun 的參與和支持,最新的Servlet 和JSP 標(biāo)準(zhǔn)總是能在Tomcat 中得到表達(dá)。它在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選。它運行時占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件效勞等開發(fā)應(yīng)用系統(tǒng)常用

19、的功能;而且它還在不斷的改良和完善中,任何一個感興趣的程序員都可以更改它或在其中參加新的功能。2.2 開發(fā)工具介紹2.2.1 Java簡介Java是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計語言以下簡稱Java語言和Java平臺的總稱。用Java實現(xiàn)的HotJava瀏覽器支持Java Applet顯示了Java的魅力:跨平臺、動感的Web、Internet計算2。從此,Java被廣泛接受并推動了Web的迅速開展,常用的瀏覽器現(xiàn)在均支持Java Applet。另一方面,Java技術(shù)也不斷更新。Java分為三個體系J2SE(Java2 Standard Editi

20、on),J2EE(Java 2 Platform,Enterprise Edition),J2ME(Java 2 Micro Edition)。Java平臺由Java虛擬機(jī)Java Virtual Machine和Java 應(yīng)用編程接口Application Programming Interface、簡稱API構(gòu)成。Java 應(yīng)用編程接口為Java應(yīng)用提供了一個獨立于操作系統(tǒng)的 標(biāo)準(zhǔn)接口,可分為根本局部和擴(kuò)展局部。在硬件或操作系統(tǒng)平臺上安裝一個Java平臺之后,Java應(yīng)用程序就可運行。現(xiàn)在Java平臺已經(jīng)嵌入了幾乎所有 的操作系統(tǒng)。這樣Java程序可以只編譯一次,就可以在各種系統(tǒng)中運行。J

21、ava應(yīng)用編程接口已經(jīng)從1.1x版開展到1.2版。目前常用的Java平臺基 于Java1.4,最近版本為Java1.6。2.2.2 Applet簡介Applet是采用Java創(chuàng)立的基于HTML的程序,可通過因特網(wǎng)下載并在接收計算機(jī)的瀏覽器軟件中運行。Applet典型用于為萬維網(wǎng)網(wǎng)頁頁面定制 或添加交互格式元素。包含Applet的網(wǎng)頁被稱為Java- powered頁,可以稱其為Java支持的網(wǎng)頁。當(dāng)用戶訪問這樣的網(wǎng)頁時, Applet被下載到用戶的計算機(jī)上執(zhí)行,但前提是用戶使用的是支持Java的網(wǎng)絡(luò)瀏覽器。由于Applet是在用戶的計算機(jī)上執(zhí)行的,因此它的執(zhí)行速度不受網(wǎng)絡(luò)帶寬或者M(jìn)odem存取

22、速度的限制。用戶可以更好地欣賞網(wǎng)頁上Applet產(chǎn)生的多媒體效果。在Java Applet中,可以實現(xiàn)圖形繪制,字體和顏色控制,動畫和聲音的插入,人機(jī)交互及網(wǎng)絡(luò)交流等功能。 Applet還提供了名為抽象窗口工具箱Abstract Window Toolkit,AWT的窗口環(huán)境開發(fā)工具。 AWT利用用戶計算機(jī)的GUI元素,可以建立標(biāo)準(zhǔn)的圖形用戶界面,如窗口、按鈕、滾動條等等。2.2.3 JSP簡介JSP(JavaServer Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java

23、程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。用JSP開發(fā)的Web應(yīng)用是跨平臺的與Java Servlet一樣,是在效勞器端執(zhí)行的,通常返回該客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。即能在Linux下運行,也能在其他操作系統(tǒng)上運行。JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和 scriptlets訪問存在于效勞端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計和顯示別離,支持可重用的基于組件的設(shè)計,使基于Web的應(yīng)用程序的 開發(fā)變得迅速和容易。Web效勞

24、器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實現(xiàn)建立動態(tài)網(wǎng)頁所需要的功能。 2.2.4 JDBC簡介JDBCJava Data Base Connectivity,Java數(shù)據(jù)庫連接是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC為工具/數(shù)據(jù)庫開發(fā)人員提供了一個標(biāo)準(zhǔn)的API,據(jù)此可 以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠用純 Java API編寫數(shù)據(jù)庫應(yīng)用程序。有了JDBC,向各種關(guān)系

25、數(shù)據(jù)發(fā)送SQL語句就是一件很容易的事。程序員只需用JDBC API寫一個程序就夠了,它可向相應(yīng)數(shù)據(jù)庫發(fā)送SQL調(diào)用。同時,將Java語言和JDBC結(jié)合起來使程序員不必為不同的平臺編寫不同的應(yīng)用程序,只須寫一遍程序就可以讓它在任何平臺上運行,這也是Java語言“編寫一次,處處運行的優(yōu)勢。JDBC使用已有的 SQL標(biāo)準(zhǔn)并支持與其它數(shù)據(jù)庫連接標(biāo)準(zhǔn),如ODBC之間的橋接。實現(xiàn)了所有這些面向標(biāo)準(zhǔn)的目標(biāo)并且具有簡單、嚴(yán)格類型定義且高性能實現(xiàn)的接口。Java 具有鞏固、平安、易于使用、易于理解和可從網(wǎng)絡(luò)上自動下載等特性,是編寫數(shù)據(jù)庫應(yīng)用程序的杰出語言。所需要的只是 Java應(yīng)用程序與各種不同數(shù)據(jù)庫之間進(jìn)行對

26、話的方法。而 JDBC 正是作為此種用途的機(jī)制。它擴(kuò)展了 Java 的功能。例如,用 Java 和JDBC API可以發(fā)布含有 Applet 的網(wǎng)頁,而該 Applet 使用的信息可能來自遠(yuǎn)程數(shù)據(jù)庫企業(yè)也可以用 JDBC 通過 Intranet 將所有職員連到一個或多個內(nèi)部數(shù)據(jù)庫中。2.2.5 MySQL簡介MySQL是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。MySQL的特性如下:1使用C和C+編寫,并使用了多種編譯器進(jìn)行測試,保證源代碼的可移植性。2支持AIX、FreeBSD、HP-UX、Linux、Mac

27、 OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統(tǒng)。3為多種編程語言提供了API。這些編程語言包括C、C+、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。4支持多線程,充分利用CPU資源。5優(yōu)化的SQL查詢算法,有效地提高查詢速度。6既能夠作為一個單獨的應(yīng)用程序應(yīng)用在客戶端效勞器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個庫而嵌入到其他的軟件中提供多語言支持,常見的編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名。7提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫連接途徑

28、。8提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具。9可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫。2.3 MVC三層模塊結(jié)構(gòu)2.3.1 view層這一層主要功能是基于JSP技術(shù)的網(wǎng)頁顯示。JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于效勞端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計和顯示別離,支持可重用的基于組件的設(shè)計,使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。JSP與JavaServlet一樣,是在效勞器端執(zhí)行的,通常返回給客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。

29、JSP與JavaServlet一樣,是在效勞器端執(zhí)行的,通常返回給客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。View層的功能主要用于顯示網(wǎng)頁和內(nèi)容。2.3.2 control 層這一層主要通過servlet這個控件來實現(xiàn),servlet是一種效勞器端的Java應(yīng)用程序,具有獨立于平臺和協(xié)議的特性,可以生成動態(tài)的Web頁面。 它擔(dān)當(dāng)客戶請求Web瀏覽器或其他 客戶程序與效勞器響應(yīng) 效勞器上的數(shù)據(jù)庫或應(yīng)用程序的中間層。 Servlet是位于Web 效勞器內(nèi)部的效勞器端的Java應(yīng)用程序,與傳統(tǒng)的從命令行啟動的Java應(yīng)用程序不同,Servlet由Web效勞器進(jìn)行加載,該Web效

30、勞器必須包含支持Servlet的Java虛擬機(jī)。它底下包含了DAO.ADD和DAO.FINDALL等包,起到連接的作用。2.3.3 model 層這一層是模型層,包括DAO、BEAN,向數(shù)據(jù)庫發(fā)送SQL語句,執(zhí)行增刪改查的功能。BEAN是實體類的包,實體類是與數(shù)據(jù)庫表的字段相對應(yīng)。它是實體類,用來保存數(shù)據(jù)庫表格的中一條記錄的所有字段的數(shù)據(jù)。并且可以驗證這條記錄數(shù)據(jù)的完整性。第3章 功能需求分析3.1 總體需求概述本即時通訊系統(tǒng)包含效勞器端和客戶端兩個局部,由于效勞器主要是用來數(shù)據(jù)的存儲用戶數(shù)據(jù)與協(xié)調(diào)用戶之間的通訊,以及提供消息中轉(zhuǎn)功能,不需要進(jìn)行界面設(shè)計;客戶端需要給用戶一個方便、實用的界面。

31、3.2詳細(xì)功能需求介紹3.2.1 登錄模塊該模塊實現(xiàn)驗證用戶名和密碼是否正確,對用戶的一些不正確輸入進(jìn)行判斷。例如:用戶名、密碼為空,判斷用戶是否在線。用戶身份驗證結(jié)果 NOnoYes 顯示錯誤信息顯示聊天頁面圖3.1 登陸模塊3.2.2 驗證模塊該模塊實現(xiàn)新用戶的注冊,對用戶的一些不正確輸入進(jìn)行判斷。例如:用戶名、密碼為空;密碼與驗證密碼不一致等問題;判斷用戶是否已經(jīng)注冊。 特殊需求:(1)用戶名字符的位數(shù):8-10,必填。(2)密碼字符的位數(shù):6-10,必填,并以掩碼“*顯示。(3 )IP地址由數(shù)字和“.組成,格式為xxx.xxx.xxx.xxx,共15位,xxx的范圍:0-255,必填,

32、(4) 端口號為數(shù)字,范圍80009999,必填。 前置條件:(1) 以合法身份登錄操作系統(tǒng),啟動客戶端頁面。 后置條件:(1) 用戶登錄成功,顯示客戶端主窗體。3.2.3 在線查找模塊用戶在線主要包含聯(lián)機(jī)、忙碌和離開等狀態(tài),在線好友維護(hù)局部包含當(dāng)前在線好友的顯示、用戶信息的修改、實時在線狀態(tài)更新、在線、離線)、搜索添加好友以及刪除好友等功能。自動設(shè)置效勞器端套接字,啟動效勞后監(jiān)聽客戶端的請求,同時顯示連接狀態(tài)和接收請求的信息。顯示效勞器端的IP地址和端口號,顯示當(dāng)前在線人員的詳細(xì)信息,用戶管理如圖3.2所示。用戶用戶管理聊天管理上下線通知好友管理注冊新用戶圖3.2 用戶管理3.2.4 聊天模

33、塊 聊天功能是本即時通訊系統(tǒng)的主要功能、也是整個通訊系統(tǒng)的核心,是在線的雙方進(jìn)行信息傳遞的功能,只要是在線的好友雙方都可以進(jìn)行聊天,并且為每個好友提供單獨的聊天窗口,在聊天窗口中,主要提供輸入聊天信息、顯示聊天信息以及顯示對方昵稱和發(fā)送時間等功能。此外,如果好友處于下線狀態(tài),用戶依然可以向?qū)Ψ桨l(fā)送留言信息,通過效勞器的信息中轉(zhuǎn)效勞讓該好友下次上線時,就會收到對方的留言信息??蛻袅奶炝鞒虉D如圖3.3所示。圖3.3 客戶端聊天流程圖3.3 MySQL與JSP、Java的連接JDBC API 既支持?jǐn)?shù)據(jù)庫訪問的兩層模型C/S,同時也支持三層模型B/S。在兩層模型中,Java applet或應(yīng)用程序?qū)?/p>

34、直接與數(shù)據(jù)庫進(jìn)行對話。這將需要一個JDBC驅(qū)動程序來與所訪問的特定數(shù)據(jù)庫管理系統(tǒng)進(jìn)行通訊。用戶的SQL語句被送往數(shù)據(jù)庫中,而其結(jié)果將被送回給用戶。數(shù)據(jù)庫可以位于另一臺計算機(jī)上,用戶通過網(wǎng)絡(luò)連接到上面。這就叫做客戶機(jī)/效勞器配置,其中用戶的計算機(jī)為客戶機(jī),提供數(shù)據(jù)庫的計算機(jī)為效勞器。網(wǎng)絡(luò)可以是 Intranet它可將公司職員連接起來,也可以是 Internet。 JDBC(Java DataBase Connectivity)是用于執(zhí)行SQL語句的Java應(yīng)用程序接口,由一組用Java語言編寫的類與接口組成。JDBC是一種標(biāo)準(zhǔn),它讓各數(shù)據(jù)庫廠商為Java程序員提供標(biāo)準(zhǔn)的數(shù)據(jù)庫訪問類和接口。JDB

35、C編寫數(shù)據(jù)庫程序的方法一般分為三個步驟: 1建立數(shù)據(jù)源建立數(shù)據(jù)源是指建立ODBC數(shù)據(jù)源。 2建立連接與數(shù)據(jù)庫建立 (String url,String user,String password)。3執(zhí)行SQL語句JDBC提供了Statement類來發(fā)送SQL語句,Statement類的對象由createStatement方法創(chuàng)立。Statement 對象用于將 SQL 語句發(fā)送到數(shù)據(jù)庫中。實際上有三種 Statement 對象,它們都作為在給定連接上執(zhí)行 SQL 語句的包容器:Statement、PreparedStatement它從 Statement 繼承而來和 CallableState

36、ment它從 PreparedStatement 繼承而來。它們都專用于發(fā)送特定類型的 SQL 語句: Statement 對象用于執(zhí)行不帶參數(shù)的簡單 SQL 語句;PreparedStatement 對象用于執(zhí)行帶或不帶 IN 參數(shù)的預(yù)編譯 SQL 語句;CallableStatement 對象用于執(zhí)行對數(shù)據(jù)庫已存在的存儲過程的調(diào)用。Statement 接口提供了執(zhí)行語句和獲取結(jié)果的根本方法。PreparedStatement 接口添加了處理 IN 參數(shù)的方法;而 CallableStatement 添加了處理 OUT 參數(shù)的方法。有些 DBMS 將已存儲過程中的每條語句視為獨立的語句;而另

37、外一些那么將整個過程視為一個復(fù)合語句。在啟用自動提交時,這種差異就變得非常重要,因為它影響什么時候調(diào)用 commit 方法。在前一種情況中,每條語句單獨提交;在后一種情況中,所有語句同時提交。第4章 后臺數(shù)據(jù)庫的設(shè)計數(shù)據(jù)庫是數(shù)據(jù)庫應(yīng)用程序的重要組成局部,設(shè)計結(jié)構(gòu)合理、功能齊全的數(shù)據(jù)庫對于提高數(shù)據(jù)庫應(yīng)用程序的開發(fā)效率和程序的性能都是非常重要的10。根據(jù)用戶需求,確定數(shù)據(jù)庫中要保存的數(shù)據(jù)信息。對用戶需求進(jìn)行分析是數(shù)據(jù)庫設(shè)計的第一個階段。不斷地調(diào)查與研究用戶需求,了解企業(yè)運作流程和系統(tǒng)需求,是設(shè)計概念模型的根底。設(shè)計數(shù)據(jù)的概念模型。概念模型是按用戶的觀點來對數(shù)據(jù)建模,概念模型是用于進(jìn)行信息世界建模的

38、工具,對數(shù)據(jù)庫的設(shè)計具有深刻的影響。 表的內(nèi)容設(shè)計涉及到了整型INTEGER,可變字符型VARCHAR,數(shù)據(jù)型TEXT和日期型DATA。本系統(tǒng)的數(shù)據(jù)庫由三個表組成:users、records、online。用戶密碼用戶名姓名聊天性別注冊傳輸效勞器效勞日期用戶郵箱數(shù)據(jù)庫用戶名記錄表E-R圖如圖4.1所示。效勞內(nèi)容效勞備注 圖4.1 E-R圖4.1.1 users表該表的主要作用是保存用戶注冊的根本信息。該表包含ID用戶名,psw MD5處理后的密碼,email電子郵件,sex性別,Info用戶信息和Data注冊時間六個字段。其結(jié)構(gòu)如表4.2所示。表4.2 users表字段中文名稱字段英文名稱字段

39、類型字段長度是否為空主鍵用戶名IDVarchar20不是是密碼pswVarchar32不是電子郵件emailVarchar20不是性別sexVarchar1不是用戶信息InfoTEXT不是注冊時間DataDATA4.1.2 records表該表主要用于記錄用戶離線時收到的信息,也可以保存用戶的聊天記錄。該表包含ID用戶名,record記錄兩個字段。其ID字段和users表中ID字段相對應(yīng)。其結(jié)構(gòu)如表4.3所示。表4.3 records表字段中文名稱字段英文名稱字段類型字段長度是否為空主鍵用戶名IDVarchar20不是是記錄recordTEXT4.1.3 online表該表記錄用戶的在線狀態(tài),

40、對效勞器端轉(zhuǎn)發(fā)數(shù)據(jù)包有著至關(guān)重要的作用。該表包含name姓名,ID編號兩個字段。其結(jié)構(gòu)如表4.4所示。表4.4 online表字段中文名稱字段英文名稱字段類型字段長度是否為空主鍵用戶名IDVarchar20不是是姓名NAMEINTEGER不是4.1.4 數(shù)據(jù)庫層數(shù)據(jù)庫層的數(shù)據(jù)如圖4.5所示.import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import j

41、ava.sql.Statement;public class DBConnection private static final String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver"private static final String URL="jdbc:sqlserver:/localhost:1433;database=db_shop"public static Connection getConnection(String username,String userpass

42、)Connection conn=null;try Class.forName(driverName);conn=DriverManager.getConnection(URL, username, userpass); catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return conn;public static

43、Connection getConnection()return getConnection("sa","123456");4.1.5 模型層 主要由BEAN下的RecordDTO構(gòu)成。public class RecordDTO private int recordID;private String recordName;private String recordMessage;public int getRecordID() return recordID;public void setRecordID(int recordID) this.reco

44、rdID = recordID;public String getRecordName() return recordName;public void setRecordName(String recordName) this.recordName = recordName;public String getRecordMessage() return recordMessage;public void setRecordMessage(String recordMessage) this.recordMessage = recordMessage;第5章 系統(tǒng)詳細(xì)實現(xiàn) 流程示意圖 如圖5.1

45、所示,通過三層設(shè)計模型把應(yīng)用邏輯,處理過程和顯示邏輯分成不同的組件實現(xiàn)。這些組件可以進(jìn)行交互和重用。VIEW端的CHAT.jsp表是視圖層的文件,把數(shù)據(jù)傳到CONTROL層的DAO包,再傳到模型層的ADD,和FINDALL包里面,最后到數(shù)據(jù)庫層的完成數(shù)據(jù)的提取,最后由DAO.FINDALL傳值到WEB頁面。DAO.ADD()ADD()FINDALL()INSERSELECTVIEWCONTROLMODELDATABASE圖5.1 流程示意圖5.2 各個模塊的實現(xiàn) 事務(wù) 用戶登錄程序 數(shù)據(jù)庫用戶聊天程序 用戶注冊程序圖 5.2 總體流程圖5.2.1 登錄頁面頁面提供用戶的登錄界面及注冊鏈接,提示

46、用戶輸入用戶名和密碼。這個頁面提供表單的post方法,將用戶輸入的信息name和psw發(fā)送給ver.jsp頁面。登錄頁面的表單由兩個表格<table>組成。第一個表格用于放置用戶名和密碼輸入框,第二個表格用于放置用戶提交和重置按鈕。如圖5.3所示. 圖5.3 登錄頁面代碼:<meta -equiv="pragma" content="no-cache"><meta -equiv="cache-control" content="no-cache"><meta -equiv=

47、"expires" content="0"> <meta -equiv="keywords" content="keyword1,keyword2,keyword3"><meta -equiv="description" content="This is my page"><!-<link rel="stylesheet" type="text/css" href="styles.cs

48、s">-> </head> <script type="text/javascript" src="js/demo.js"></script> <body background="image/1421355329.jpg" left=250 top=200 width=500 height=400><center><iframe name="aa" width="450" height="250&q

49、uot; marginwidth="30" marginheight="20" align="center" allowtransparency="true" style="background-color:white"></iframe></center><form action="Chat" id="form1" method="post" target="aa"><

50、;center><table><!-DWLayoutTable-><tr><td align="left" colspan="+2">昵稱:<input type="text" id="s1" name="name" onblur="checknameID()"/></td><input type="submit" value="進(jìn)入聊天" >&l

51、t;/tr><tr><td width="365" height="57" valign="top" style="size:5"><textarea name="content" id="s2" cols="50" wrap="physical" style="height:100">請輸入內(nèi)容</textarea></td><td width

52、="40" valign="top"><input name="提交" type="submit" value="確認(rèn)" style="height:100" style="width:50"/></tr>5.2.2 聊天頁面組成,TESTCHAT.JSP主要用于點擊進(jìn)入聊天之后的頁面顯示。如圖5.4顯示。代碼:!DOCTYPE HTML PUBLIC "-/W3C/DTD HTML 4.01 Transitiona

53、l/EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'testchat.jsp' starting page</title> <meta -equiv="pragma" content="no-cache"><meta -equiv="cache-control" content="no-cache"&g

54、t;<meta -equiv="expires" content="0"> <meta -equiv="keywords" content="keyword1,keyword2,keyword3"><meta -equiv="description" content="This is my page"> <!- <meta content="1" -equiv="refresh"/>

55、-><!-<link rel="stylesheet" type="text/css" href="styles.css"> </head> <body > <c:forEach var="list" items="$list"> <font color="blue" face="幼圓">$list.recordName</font>說: <br/> <f

56、ont face="黑體">$list.recordMessage</font> <br/> </c:forEach>5.2.3 查看在線用戶軟件具有查看在線人數(shù)功能,以下代碼用于查看用戶的狀態(tài)與信息。如圖5.5所示.代碼:public class Chat extends Servlet public void doGet( ServletRequest request, ServletResponse response)throws ServletException, IOException doPost(request,res

57、ponse);public void doPost( ServletRequest request, ServletResponse response)throws ServletException, IOException request.setCharacterEncoding("UTF-8");String name=request.getParameter("name");name=new String(name.getBytes("iso-8859-1"),"UTF-8");String content=

58、request.getParameter("content");content=new String(content.getBytes("iso-8859-1"),"UTF-8");RecordDAO dao=new RecordDAO();ArrayList<RecordDTO> list=new ArrayList<RecordDTO>();if(name=null)list=dao.showMessage(); request.setAttribute("name", name);request.setAttribute("content", content);elsedao.insertRecord(name, content);list=dao.showMessage();request.setAttribute("name", name);r

溫馨提示

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

最新文檔

評論

0/150

提交評論