版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 本科畢業(yè)設(shè)計(jì)(論文)</p><p> 題 目 基于Web的聊天室構(gòu)建 </p><p> 系(院) 計(jì)算機(jī)工程系 </p><p> 專 業(yè) 電子信息科學(xué)與技術(shù) </p><p> 班 級(jí)
2、 081 </p><p> 學(xué) 號(hào) </p><p> 學(xué)生姓名 </p><p> 指導(dǎo)教師 </p><p><b> 摘 要</b>&
3、lt;/p><p> 聊天室是Web站點(diǎn)提供的常用服務(wù)之一,它給網(wǎng)絡(luò)用戶帶來(lái)了在線實(shí)時(shí)交流的機(jī)會(huì),而且使用起來(lái)不需要安裝專門的聊天軟件,只需要瀏覽器即可。Web聊天室系統(tǒng)由于其方便、靈活和易于使用的特點(diǎn)而廣受歡迎。</p><p> 本文論述了開發(fā)一個(gè)簡(jiǎn)單的Web在線聊天室系統(tǒng)所用到的關(guān)鍵技術(shù)和方法。其中運(yùn)用了 JavaScript、MySQL數(shù)據(jù)庫(kù)等等, 對(duì)上述技術(shù)的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的
4、討論,B/S模式等,實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的Web在線聊天室系統(tǒng)的設(shè)計(jì)與開發(fā),并詳細(xì)討論了該系統(tǒng)的實(shí)現(xiàn)過(guò)程及其結(jié)構(gòu)。</p><p> 關(guān)鍵字:聊天室,數(shù)據(jù)庫(kù),B/S模式</p><p><b> Abstract</b></p><p> ChatRoom is one of ordinary services of the website.
5、It gives users the opportunity to communicate on the network every time.And it only depends on web browser, so you don't have to install any special software on your computer. ChatRoom are widely welcomed for its won
6、derful feathers such as conveninence and flexibility and easy usability.</p><p> This thesis introduces the critical technology and method to build a simple ChatRoom, such as JavaScript、Oracle DataBase and
7、so on. To the technology mentioned above there are many detailed descriptions in this thesis. Also this thesis gives detailed description to the B/S model and the process to design and build a simple online ChatRoom.<
8、/p><p> Key Words: ChatRoom,DataBase,B/S mode</p><p><b> 目 錄</b></p><p><b> 前 言- 1 -</b></p><p> 第一章主要技術(shù)- 3 -</p><p> 1.1 JSP服務(wù)
9、器技術(shù)- 3 -</p><p> 1.2 JavaBean技術(shù)- 4 -</p><p> 1.3 Servlet技術(shù)- 5 -</p><p> 1.4 Eclipse開發(fā)工具- 6 -</p><p> 1.5 Tomcat應(yīng)用服務(wù)器技術(shù)- 8 -</p><p> 1.6 MySQL數(shù)據(jù)庫(kù)
10、- 8 -</p><p> 1.7 Dreamweaver網(wǎng)頁(yè)開發(fā)工具- 9 -</p><p> 第二章系統(tǒng)設(shè)計(jì)- 11 -</p><p> 2.1系統(tǒng)功能- 11 -</p><p> 2.2系統(tǒng)總體設(shè)計(jì)- 11 -</p><p> 2.3系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)- 17 -</p>
11、<p> 第三章功能測(cè)試- 18 -</p><p> 3.1用戶注冊(cè)- 18 -</p><p> 3.2用戶登錄- 20 -</p><p> 3.3用戶選擇聊天房間功能- 22 -</p><p> 3.4用戶聊天功能- 23 -</p><p> 3.4.1顯示功能- 23 -
12、</p><p> 3.4.2用戶信息修改功能- 24 -</p><p> 3.4.3處理功能- 24 -</p><p> 3.4.4輸入功能- 26 -</p><p> 3.5一些問(wèn)題的解決方案- 27 -</p><p> 3.5.1邊框處理(HTML中的問(wèn)題)- 27 -</p&g
13、t;<p> 3.5.2登錄頁(yè)面中的驗(yàn)證碼問(wèn)題- 27 -</p><p> 3.5.3其他問(wèn)題- 28 -</p><p> 結(jié) 論- 29 -</p><p> 致 謝- 30 -</p><p> 參考文獻(xiàn)- 31 -</p><p><b> 前 言</b
14、></p><p> 在這個(gè)信息極其發(fā)達(dá)的時(shí)代,我們目前可以用來(lái)進(jìn)行信息交流的方法也有非常多,比如電報(bào)、電話、電子郵件、OICQ等等通訊手段,但是這些或者不方便或者有局限性或者有費(fèi)用的問(wèn)題,比如電話就是屬于費(fèi)用比較高的一種方式,而且一般情況下不能進(jìn)行多人會(huì)談,只能雙方通話,那么一個(gè)需要幾個(gè)人一起討論的會(huì)議就不能舉行,一般情況下都需要花費(fèi)大量的人力物力把這幾個(gè)人聚集到同一地點(diǎn)才能進(jìn)行討論。非但費(fèi)時(shí)費(fèi)力費(fèi)錢而
15、且效果也不一定很好。電子郵件則不是一種及時(shí)聯(lián)系的手段,需要一定時(shí)間才能到達(dá),只能作為一種輔助交流的手段。但是,聊天室這個(gè)就能很好的解決這個(gè)問(wèn)題,我們不需要聚集在同一地點(diǎn),各自在不同的地點(diǎn)就可以在聊天室中發(fā)言,大家互相討論。而且好的聊天室還有各種表情符號(hào)等可以加強(qiáng)我們的表達(dá)。而且費(fèi)用低廉,信息交流速度快,只有這樣,才能在這個(gè)涌動(dòng)的社會(huì)中加強(qiáng)聯(lián)系,創(chuàng)造出更多的財(cái)富。</p><p> 聊天室是當(dāng)今廣泛應(yīng)用的一種網(wǎng)絡(luò)
16、服務(wù), 它為廣大網(wǎng)民提供了一種方便快捷的溝通方式, 在線聊天是上網(wǎng)的重要活動(dòng)之一。第十六次CNNIC 調(diào)查結(jié)果顯示: 在網(wǎng)絡(luò)用戶經(jīng)常使用的網(wǎng)絡(luò)服務(wù)/功能調(diào)查中, 網(wǎng)上聊天( 聊天室、QQ、ICQ 等)占被調(diào)查人群的42.6%, 處于第四位, 作為操作簡(jiǎn)便也是出現(xiàn)最早的網(wǎng)上聊天方式, 聊天室聊天又是其中最普及的一種。而多數(shù)人認(rèn)為聊天室是一種用來(lái)消遣而缺乏實(shí)際價(jià)值的東西, 許多大型網(wǎng)站建立了聊天室, 聚攏人氣。目前, 多數(shù)網(wǎng)站擁有一個(gè)甚至幾
17、個(gè)屬于自己的聊天室。其基本運(yùn)作方式為: 網(wǎng)上提供一個(gè)供訪問(wèn)者可以相互交流的界面,訪問(wèn)者通常需要先在網(wǎng)站登記,然后以登記的名字和密碼進(jìn)入聊天的界面,在這個(gè)界面下,訪問(wèn)者與他人可通過(guò)鍵盤輸入文字或符號(hào)來(lái)表述各自的意義,從而達(dá)成相互溝通。由于技術(shù)含量不高, 對(duì)啟動(dòng)資金要求較低, 政策較寬松, 所以聊天室的進(jìn)入壁壘比較低, 私人也可以有自己的聊天室。正是這個(gè)原因, 目前聊天室市場(chǎng)競(jìng)爭(zhēng)比較激烈, 基本上各大門戶網(wǎng)站都有聊天室, 如新浪聊天室、網(wǎng)易
18、聊天室、搜狐聊天室, 也有一些專門的聊天室網(wǎng)站?,F(xiàn)階段中國(guó)的聊天室市場(chǎng)集中度不高, 大型商</p><p> 本課題根據(jù)Web應(yīng)用系統(tǒng)的特點(diǎn),結(jié)合用戶對(duì)在線聊天室系統(tǒng)的實(shí)際需求,研究了一個(gè)基于Java技術(shù)的在線聊天室,給出了聊天室的系統(tǒng)結(jié)構(gòu),實(shí)現(xiàn)了群聊,私聊等功能的開發(fā)。結(jié)合目前軟件工程、數(shù)據(jù)庫(kù)應(yīng)用程序等領(lǐng)域的先進(jìn)技術(shù),以Eclipse為平臺(tái),通過(guò)Java編程語(yǔ)言、MySQL數(shù)據(jù)庫(kù)技術(shù)進(jìn)行開發(fā)。</p&g
19、t;<p> 本系統(tǒng)的開發(fā)工作分為以下幾個(gè)主要階段:</p><p> (1)系統(tǒng)需求分析與系統(tǒng)的功能設(shè)計(jì)。包括系統(tǒng)詳細(xì)調(diào)查和用戶需求分析,確定系統(tǒng)的開發(fā)方案。</p><p> (2)數(shù)據(jù)庫(kù)的設(shè)計(jì)。根據(jù)所采集到的信息設(shè)計(jì)E-R圖、創(chuàng)建數(shù)據(jù)表。</p><p> (3)系統(tǒng)的功能模塊的劃分以及實(shí)現(xiàn)。根據(jù)系統(tǒng)所管理的數(shù)據(jù)的類別,對(duì)數(shù)據(jù)操作進(jìn)行功能
20、的劃分,并逐個(gè)實(shí)現(xiàn)功能模塊。</p><p> (4)系統(tǒng)的整體測(cè)試。將單個(gè)實(shí)現(xiàn)的功能合并在一起,對(duì)于整個(gè)系統(tǒng)進(jìn)行初步的調(diào)試,從中找出某些錯(cuò)誤和不足,進(jìn)行及時(shí)的改正。</p><p><b> 第一章主要技術(shù)</b></p><p> 1.1 JSP服務(wù)器技術(shù)</p><p> 本網(wǎng)站使用JSP技術(shù)。JSP是Ja
21、vaServer Pages的簡(jiǎn)稱,是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。在傳統(tǒng)的網(wǎng)頁(yè)HTML文件(*.htm,*.html)中加入JAVA程序片段(Scriptlet)和JSP標(biāo)記(tag),就構(gòu)成了JSP網(wǎng)頁(yè)(*.jsp)。1998年4月Sun公司發(fā)布JSP 0.90規(guī)范,1999年1月Sun公司又發(fā)布了0.92規(guī)范,同時(shí)推出支持JSP的Web服務(wù)器的Java Web Server
22、 2.0,JSP也開始流行起來(lái),同年11月Sun公司發(fā)布了JSP 1.1規(guī)范,同時(shí)推出JSWDK 1.0.1和Servlet 2.2版,2000年9月Sun公司發(fā)布JSP 1.2規(guī)范和Java Servlet API 2.3。JSP技術(shù)在這短短的幾年中取得了突破性的發(fā)展,并在各地廣為流行,可見(jiàn)其必有得天獨(dú)厚的優(yōu)勢(shì)。JSP具備跨平臺(tái)運(yùn)行能力,安全性比較高,運(yùn)行效率也比較快,備受大中型企業(yè)和公司,以及銀行金融機(jī)構(gòu)青睞。利用JSP技術(shù),動(dòng)態(tài)信
23、息由JSP頁(yè)面來(lái)表現(xiàn),JSP頁(yè)面由安裝在WEB服務(wù)器或者使用JSP引擎接受客戶端的相應(yīng)</p><p> JSP技術(shù)具有以下的特點(diǎn):</p><p> (1)將內(nèi)容的生成和顯示進(jìn)行分離 </p><p> 使用JSP技術(shù),Web頁(yè)面開發(fā)人員可以使用HTML或者XML標(biāo)識(shí)來(lái)設(shè)計(jì)和格式化最終頁(yè)面。使用JSP標(biāo)識(shí)或者小腳本來(lái)生成頁(yè)面上的動(dòng)態(tài)內(nèi)容(內(nèi)容是根據(jù)請(qǐng)求來(lái)變化
24、的,例如請(qǐng)求賬戶信息或者特定的一瓶酒的價(jià)格)。生成內(nèi)容的邏輯被封裝在JSP標(biāo)識(shí)和JavaBeans/EJB組件中,并且捆綁在小腳本中,所有的腳本在服務(wù)器端運(yùn)行。如果核心邏輯被封裝在標(biāo)識(shí)和JavaBeans/EJB中,那么其他人,如Web管理人員和頁(yè)面設(shè)計(jì)者,能夠編輯和使用JSP頁(yè)面,而不影響內(nèi)容的生成,在服務(wù)器端,JSP引擎解釋JSP標(biāo)識(shí)和小腳本,生成所請(qǐng)求的內(nèi)容(例如,通過(guò)訪問(wèn)JavaBeans組件,使用JDBC(TM)技術(shù)訪問(wèn)數(shù)據(jù)庫(kù)
25、,或包含文件),并且將結(jié)果以HTML(或者XML)頁(yè)面的形式送回瀏覽器。這有助于作者保護(hù)自己的代碼,而又保證任何基于HTML的Web瀏覽器的完全可用性,在不同的WEB應(yīng)用服務(wù)器上運(yùn)行。</p><p> (2)生成可重用的組件 </p><p> 絕大多數(shù)JSP頁(yè)面依賴于可重用的、跨平臺(tái)的組件(如JavaBeans組件或者Enterprise JavaBeans)來(lái)執(zhí)行應(yīng)用程序所要求的
26、更為復(fù)雜的處理。開發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使得這些組件為更多的使用者或客戶團(tuán)體所使用?;诮M件的方法加速了總體開發(fā)過(guò)程,并且使得各種組織在他們現(xiàn)有的技能和優(yōu)化結(jié)果的開發(fā)努力中得到平衡。</p><p> (3)采用標(biāo)識(shí)簡(jiǎn)化頁(yè)面開發(fā) </p><p> Web頁(yè)面開發(fā)人員不會(huì)都是熟悉腳本語(yǔ)言的編程人員。JavaServer Page技術(shù)封裝了許多功能,這些功能是在易用
27、的、與JSP相關(guān)的XML標(biāo)識(shí)中進(jìn)行動(dòng)態(tài)內(nèi)容生成所需要的。標(biāo)準(zhǔn)的JSP標(biāo)識(shí)能夠訪問(wèn)和實(shí)例化JavaBeans組件,設(shè)置或檢索組件屬性,下載Applet,以及執(zhí)行用其他方法更難于編碼和耗時(shí)的功能。通過(guò)開發(fā)定制標(biāo)識(shí)庫(kù),JSP技術(shù)是可以發(fā)展的。今后,第三方開發(fā)人員和其他人員可以為常用功能創(chuàng)建自己的標(biāo)識(shí)庫(kù)。這使得Web頁(yè)面開發(fā)人員能夠使用熟悉的工具和如同標(biāo)識(shí)一樣執(zhí)行特定功能的構(gòu)件來(lái)工作。</p><p> 1.2 Jav
28、aBean技術(shù)</p><p> JavaBean是使用Java語(yǔ)言描述的軟件組件模型,簡(jiǎn)單地說(shuō),它就是一個(gè)可以重復(fù)使用的Java類。JavaBean可分為可視化組件和非可視化組件,其中可視化組件包括簡(jiǎn)單的GUI元素(例如,文本框、按鈕)及一些報(bào)表組件等。非可視化組件是在實(shí)際開發(fā)中經(jīng)常被使用到的并且在應(yīng)用程序中起著至關(guān)重要的作用。其主要功能是用來(lái)封裝業(yè)務(wù)邏輯(功能實(shí)現(xiàn))、數(shù)據(jù)庫(kù)操作(例如,數(shù)據(jù)處理、連接數(shù)據(jù)庫(kù))
29、等。 </p><p> 在實(shí)際的開發(fā)過(guò)程中,通常會(huì)出現(xiàn)重復(fù)的代碼或者段落,此時(shí)就會(huì)大大降低程序的可重用性并且浪費(fèi)時(shí)間。使用JavaBean就可以大大簡(jiǎn)化程序的設(shè)計(jì)過(guò)程并且方便了其它程序的重復(fù)使用。</p><p> JavaBean在服務(wù)器端的應(yīng)用具有非常強(qiáng)大的優(yōu)勢(shì),非可視化的JavaBean可以非常好地實(shí)現(xiàn)控制邏輯、業(yè)務(wù)邏輯、表示層之間的分離,從而大大降低了它們之間的耦合度。非可視
30、化的JavaBean現(xiàn)在多用于后臺(tái)處理,這樣會(huì)使系統(tǒng)具有一定的靈活性。 </p><p> 一個(gè)基本的Jsp頁(yè)面就是由普通html標(biāo)簽&Java程序片組成,如果程序片&html大量交互在一起,就顯得頁(yè)面混雜,不易維護(hù)。Jsp頁(yè)面應(yīng)當(dāng)將數(shù)據(jù)的處理過(guò)程指派給一個(gè)或幾個(gè)bean來(lái)完成,我們只需在jsp頁(yè)面中調(diào)用這個(gè)bean即可。不提倡大量的數(shù)據(jù)處理都用Java程序片來(lái)完成。在Jsp頁(yè)面中調(diào)用bean,可以有效地分離靜
31、態(tài)部分和動(dòng)態(tài)部分。</p><p> JavaBean是Java程序的一種,所使用的語(yǔ)法和其它類似的Java程序一致。在程序中使用JavaBean具有以下優(yōu)點(diǎn):</p><p> (1)可以實(shí)現(xiàn)代碼的重復(fù)利用。</p><p> (2)易編寫、易維護(hù)、易使用。</p><p> ?。?)它可以壓縮在jar文件中,以更小的體積在網(wǎng)絡(luò)中應(yīng)用
32、 </p><p> (4)完全是Java語(yǔ)言編寫,可以在任何安裝了Java運(yùn)行環(huán)境的平臺(tái)上的使用,而不需要重新編譯。 </p><p> 編寫JavaBean就是編寫一個(gè)Java的類,這個(gè)類創(chuàng)建的一個(gè)對(duì)象稱做一個(gè)Bean。為了能讓使用這個(gè)bean的應(yīng)用程序構(gòu)建工具(比如JSP引擎)知道這個(gè)bean的屬性和方法,只需在類的方法命名上遵守以下規(guī)則:</p><p>
33、; ?。?)如果類的成員變量的名字是xxx,那么為了更改或獲取成員變量的值,即更改或獲取屬性,在類中可以使用兩個(gè)方法:</p><p> ● getXXX():用來(lái)獲取屬性xxx。</p><p> ● setXXX():用來(lái)修改屬性xxx。</p><p> (2)對(duì)于boolean類型的成員變量,即布爾邏輯類型的屬性,允許使用"is“代替上面
34、的"get"和"set"。</p><p> ?。?)類中方法的訪問(wèn)屬性都必須是public的。</p><p> ?。?)類中如果有構(gòu)造方法,那么這個(gè)構(gòu)造方法也是public的并且沒(méi)有參數(shù)。 </p><p> 1.3 Servlet技術(shù)</p><p> Servlet是一種服務(wù)器端的Java應(yīng)
35、用程序,具有獨(dú)立于平臺(tái)和協(xié)議的特性,可以生成動(dòng)態(tài)的Web頁(yè)面。它源于請(qǐng)求/響應(yīng)模式,如它可以接收來(lái)自客戶端瀏覽器的Http請(qǐng)求,并產(chǎn)生一個(gè)響應(yīng),然后將這個(gè)響應(yīng)發(fā)送到客戶端。,是HTTP服務(wù)器上的數(shù)據(jù)庫(kù)或應(yīng)用程序之間的中間層。</p><p> Servlet是位于Web 服務(wù)器內(nèi)部的服務(wù)器端的Java應(yīng)用程序,與傳統(tǒng)的從命令行啟動(dòng)的Java應(yīng)用程序不同,Servlet由Web服務(wù)器進(jìn)行加載,該Web服務(wù)器必須包
36、含支持Servlet的Java虛擬機(jī)。</p><p> Servlet是在服務(wù)器上運(yùn)行的小程序。這個(gè)詞是在Java applet的環(huán)境中創(chuàng)造的,Java applet是一種當(dāng)作單獨(dú)文件跟網(wǎng)頁(yè)一起發(fā)送的小程序,它通常用于在客戶端運(yùn)行,結(jié)果得到為用戶進(jìn)行運(yùn)算或者根據(jù)用戶互作用定位圖形等服務(wù)?!?lt;/p><p> 服務(wù)器上需要一些程序,常常是根據(jù)用戶輸入訪問(wèn)數(shù)據(jù)庫(kù)的程序。這些通常是使用公共
37、網(wǎng)關(guān)接口(CGI)應(yīng)用程序完成的。然而,在服務(wù)器上運(yùn)行Java,這種程序可使用Java編程語(yǔ)言實(shí)現(xiàn)。在通信量大的服務(wù)器上,Java servlet的優(yōu)點(diǎn)在于它們的執(zhí)行速度更快于CGI程序。各個(gè)用戶請(qǐng)求被激活成單個(gè)程序中的一個(gè)線程,而創(chuàng)建單獨(dú)的程序,這意味著各個(gè)請(qǐng)求的系統(tǒng)開銷比較小。</p><p> Servlet的生命周期包括三個(gè)過(guò)程加載和實(shí)例化:Servlet容器負(fù)責(zé)加載和實(shí)例化Servlet.當(dāng)容器啟動(dòng)
38、時(shí),或者在容器檢測(cè)到需要這個(gè)Servlet來(lái)響應(yīng)第一個(gè)請(qǐng)求時(shí),創(chuàng)建Servlet實(shí)例.初始化:當(dāng)Servlet被第一次請(qǐng)求的時(shí)候, Servlet引擎就初始化這個(gè)Servlet,調(diào)用init()方法來(lái)完成初始化工作.請(qǐng)求處理:當(dāng)Servlet對(duì)象創(chuàng)建后,調(diào)用具體的service()方法為用戶提供服務(wù).服務(wù)終止:當(dāng)Servlet對(duì)象初始化后就常留內(nèi)存中,直到服務(wù)器停止才需要被銷毀, Servlet引擎調(diào)用destory()方法把Se
39、rvlet對(duì)象銷毀.</p><p> 1.4 Eclipse開發(fā)工具</p><p> Eclipse 是一個(gè)開放源代碼的、基于 Java 的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過(guò)插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開發(fā)工具(Java Development Tools,JDT)。 </p>
40、<p> Eclipse是著名的跨平臺(tái)的自由集成開發(fā)環(huán)境(IDE)。最初主要用來(lái)Java語(yǔ)言開發(fā),但是目前亦有人通過(guò)插件使其作為其他計(jì)算機(jī)語(yǔ)言比如C++和Python的開發(fā)工具。Eclipse的本身只是一個(gè)框架平臺(tái),但是眾多插件的支持使得Eclipse擁有其他功能相對(duì)固定的IDE軟件很難具有的靈活性。許多軟件開發(fā)商以Eclipse為框架開發(fā)自己的IDE。</p><p> Eclipse 最初由OT
41、I和IBM兩家公司的IDE產(chǎn)品開發(fā)組創(chuàng)建,起始于1999年4月。IBM提供了最初的Eclipse代碼基礎(chǔ),包括Platform、JDT 和PDE。目前由IBM牽頭,圍繞著Eclipse項(xiàng)目已經(jīng)發(fā)展成為了一個(gè)龐大的Eclipse聯(lián)盟,有150多家軟件公司參與到Eclipse項(xiàng)目中,其中包括Borland、Rational Software、Red Hat及Sybase等。Eclipse是一個(gè)開發(fā)源碼項(xiàng)目,它其實(shí)是 Visual Age f
42、or Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其開放源碼,任何人都可以免費(fèi)得到,并可以在此基礎(chǔ)上開發(fā)各自的插件,因此越來(lái)越受人們關(guān)注。還有包括Oracle在內(nèi)的許多大公司也紛紛加入了該項(xiàng)目,并宣稱Eclipse將來(lái)能成為可進(jìn)行任何語(yǔ)言開發(fā)的IDE集大成者,使用者只需下載各種語(yǔ)言的插件即可。</p><p> 雖然大多數(shù)用戶很樂(lè)于將 Eclipse 當(dāng)作 Java ID
43、E 來(lái)使用,但 Eclipse 的目標(biāo)不僅限于此。Eclipse 還包括插件開發(fā)環(huán)境(Plug-in Development Environment,PDE),這個(gè)組件主要針對(duì)希望擴(kuò)展 Eclipse 的軟件開發(fā)人員,因?yàn)樗试S他們構(gòu)建與 Eclipse 環(huán)境無(wú)縫集成的工具。由于 Eclipse 中的每樣?xùn)|西都是插件,對(duì)于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場(chǎng)所。&l
44、t;/p><p> 基于 Eclipse 的應(yīng)用程序的突出例子是 IBM 的 WebSphere Studio Workbench,它構(gòu)成了 IBM Java 開發(fā)工具系列的基礎(chǔ)。例如,WebSphere Studio Application Developer 添加了對(duì) JSP、servlet、EJB、XML、Web 服務(wù)和數(shù)據(jù)庫(kù)訪問(wèn)的支持。</p><p> Eclipse的主要組成:
45、</p><p> Eclipse是一個(gè)開放源代碼的軟件開發(fā)項(xiàng)目,專注于為高度集成的工具開發(fā)提供一個(gè)全功能的、具有商業(yè)品質(zhì)的工業(yè)平臺(tái)。它主要由Eclipse項(xiàng)目、Eclipse工具項(xiàng)目和Eclipse技術(shù)項(xiàng)目三個(gè)項(xiàng)目組成,具體包括四個(gè)部分組成——Eclipse Platform、JDT、CDT和PDE.JDT支持Java開發(fā)、CDT支持C開發(fā)、PDE用來(lái)支持插件開發(fā),Eclipse Platform則是一個(gè)開放
46、的可擴(kuò)展IDE,提供了一個(gè)通用的開發(fā)平臺(tái)。它提供建造塊和構(gòu)造并運(yùn)行集成軟件開發(fā)工具的基礎(chǔ)。Eclipse Platform允許工具建造者獨(dú)立開發(fā)與他人工具無(wú)縫集成的工具從而無(wú)須分辨一個(gè)工具功能在哪里結(jié)束,而另一個(gè)工具功能在哪里開始。</p><p> 1.5 Tomcat應(yīng)用服務(wù)器技術(shù)</p><p> Tomcat 服務(wù)器是一個(gè)免費(fèi)的開放源代碼的Web 應(yīng)用服務(wù)器,是Apache 軟
47、件基金會(huì)(Apache Software Foundation)的Jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun 和其他一些公司及個(gè)人共同開發(fā)而成。因?yàn)門omcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java 愛(ài)好者的喜愛(ài)并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web 應(yīng)用服務(wù)器。</p><p> Tomcat 很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平
48、衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進(jìn)和完善中,任何一個(gè)感興趣的程序員都可以更改它或在其中加入新的功能。</p><p> Tomcat 是一個(gè)小型的輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問(wèn)用戶不是很多的場(chǎng)合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選。對(duì)于一個(gè)初學(xué)者來(lái)說(shuō),可以這樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apache 服務(wù)器,可利用它響應(yīng)對(duì)HTML 頁(yè)面的訪問(wèn)請(qǐng)求。實(shí)際上Tomcat 部分
49、是Apache 服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行tomcat 時(shí),它實(shí)際上作為一個(gè)與Apache 獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。當(dāng)配置正確時(shí),Apache 為HTML頁(yè)面服務(wù),而Tomcat 實(shí)際上運(yùn)行JSP 頁(yè)面和Servlet。另外,Tomcat和IIS、Apache等Web服務(wù)器一樣,具有處理HTML頁(yè)面的功能,另外它還是一個(gè)Servlet和JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式。不過(guò),Tomcat處理靜
50、態(tài)HTML的能力不如Apache服務(wù)器。</p><p> 1.6 MySQL數(shù)據(jù)庫(kù)</p><p> MySQL是一個(gè)精巧的SQL數(shù)據(jù)庫(kù)管理系統(tǒng),雖然它不是開放源代碼的產(chǎn)品,但在某些情況下你可以自由使用。由于它的強(qiáng)大功能、靈活性、豐富的應(yīng)用編程接口(API)以及精巧的系統(tǒng)結(jié)構(gòu),受到了廣大自由軟件愛(ài)好者甚至是商業(yè)軟件用戶的青睞,特別是與Apache和PHP/PERL結(jié)合,為建立基于數(shù)據(jù)
51、庫(kù)的動(dòng)態(tài)網(wǎng)站提供了強(qiáng)大動(dòng)力。</p><p> MySQL是一個(gè)真正的多用戶、多線程SQL數(shù)據(jù)庫(kù)服務(wù)器。SQL(結(jié)構(gòu)化查詢語(yǔ)言)是世界上最流行的和標(biāo)準(zhǔn)化的數(shù)據(jù)庫(kù)語(yǔ)言。MySQL是以一個(gè)客戶機(jī)/服務(wù)器結(jié)構(gòu)的實(shí)現(xiàn),它由一個(gè)服務(wù)器守護(hù)程序mysqld和很多不同的客戶程序和庫(kù)組成。</p><p> SQL是一種標(biāo)準(zhǔn)化的語(yǔ)言,它使得存儲(chǔ)、更新和存取信息更容易。例如,你能用SQL語(yǔ)言為一個(gè)網(wǎng)站檢
52、索產(chǎn)品信息及存儲(chǔ)顧客信息,同時(shí)MySQL也足夠快和靈活以允許你存儲(chǔ)記錄文件和圖像。</p><p> MySQL 主要目標(biāo)是快速、健壯和易用。最初是因?yàn)槲覀冃枰@樣一個(gè)SQL服務(wù)器,它能處理與任何可不昂貴硬件平臺(tái)上提供數(shù)據(jù)庫(kù)的廠家在一個(gè)數(shù)量級(jí)上的大型數(shù)據(jù)庫(kù),但速度更快,MySQL就開發(fā)出來(lái)。自1996年以來(lái),我們一直都在使用MySQL,其環(huán)境有超過(guò)40個(gè)數(shù)據(jù)庫(kù),包含10,000個(gè)表,其中500多個(gè)表超過(guò)7百萬(wàn)行
53、,這大約有100個(gè)吉字節(jié)(GB)的關(guān)鍵應(yīng)用數(shù)據(jù)。</p><p> MySQL數(shù)據(jù)庫(kù)的主要功能只在組織和管理很龐大或復(fù)雜的信息和基于WEB的庫(kù)存查詢請(qǐng)求不僅僅為客戶提供信息,而且還可以為您自己使用數(shù)據(jù)庫(kù)可以提供如下功能: </p><p> ?。?)減少記錄編檔的時(shí)間 </p><p> ?。?)減小記錄檢索時(shí)間 </p><p> ?。?
54、)靈活的查找序列 </p><p> (4)靈活的輸出格式 </p><p> ?。?)多個(gè)用戶同時(shí)訪問(wèn)記錄 </p><p> 1.7 Dreamweaver網(wǎng)頁(yè)開發(fā)工具</p><p> Dreamweaver是美國(guó)macromedia公司開發(fā)的集網(wǎng)頁(yè)制作和管理網(wǎng)站于一身的所見(jiàn)即所得網(wǎng)頁(yè)編輯器,它是第一套針對(duì)專業(yè)網(wǎng)頁(yè)設(shè)計(jì)師特別發(fā)展的
55、視覺(jué)化網(wǎng)頁(yè)開發(fā)工具,利用它可以輕而易舉地制作出跨越平臺(tái)限制和跨越瀏覽器限制的充滿動(dòng)感的網(wǎng)頁(yè)。</p><p> Dreamweaver與其它同類軟件相比主要有以下優(yōu)點(diǎn):</p><p> 不生成冗余代碼??梢暬木W(wǎng)頁(yè)編輯器,都要把使用者的操作轉(zhuǎn)換成html代碼。一般的編輯器都會(huì)生成大量的冗余代碼,給網(wǎng)頁(yè)以后的修改帶來(lái)了極大的不方便,同時(shí)還增加了網(wǎng)頁(yè)文件的大小。Dreamweaver則在
56、使用時(shí)完全不生成冗余代碼,避免了諸多麻煩。而且,通過(guò)設(shè)置,還可用Dreamweaver清除掉網(wǎng)頁(yè)文件原有的冗余代碼。</p><p> 方便的代碼編輯。可視化編輯和源代碼編輯都有其長(zhǎng)處和短處。有時(shí)候,直接用源代碼編輯會(huì)很有效。Dreamweaver提供了html快速編輯器和自建的html編輯器,能方便自如的在可視化編輯狀態(tài)和源代碼編輯狀態(tài)間切換。</p><p> 強(qiáng)大的動(dòng)態(tài)頁(yè)面支持。
57、Dreamweaver的Behavior能在使用者不懂java script的情況下,往網(wǎng)頁(yè)中加入豐富的動(dòng)態(tài)效果。Dreamweaver還可精確的對(duì)層進(jìn)行定位,再加上timeline功能,可生成動(dòng)感十足的動(dòng)態(tài)層效果。</p><p> 操作簡(jiǎn)便。首先,Dreamweaver提供的歷史面板、html樣式、模版、庫(kù)等功能避免了重復(fù)勞動(dòng),使用者不必重復(fù)輸入相同的內(nèi)容、格式。其次,Dreamweaver能直接往頁(yè)面中插
58、入Flash、Shockwave等插件,經(jīng)過(guò)設(shè)置后還可直接調(diào)用相應(yīng)的軟件對(duì)這些插件進(jìn)行編輯。最后,Dreamweaver與Fireworks集成緊密,可直接調(diào)用Fireworks對(duì)頁(yè)面的圖像進(jìn)行修改、優(yōu)化。</p><p> 優(yōu)秀的網(wǎng)站管理功能。在定義的本地站點(diǎn)中,改變文件的名稱、位置,Dreamweaver會(huì)自動(dòng)更新相應(yīng)的超級(jí)鏈接。Check in和Check out功能可協(xié)調(diào)多個(gè)使用者對(duì)遠(yuǎn)程站點(diǎn)的管理。&l
59、t;/p><p> 便于擴(kuò)展。使用者可給Dreamweaver安裝各種插件,使其功能更強(qiáng)大。使用者若有興趣,還可自己給Dreamweaver制作插件,使Dreamweaver更適應(yīng)個(gè)人的需求。</p><p><b> 第二章系統(tǒng)設(shè)計(jì)</b></p><p><b> 2.1系統(tǒng)功能</b></p><
60、;p> (1)實(shí)現(xiàn)用戶的注冊(cè)與登錄功能,使用戶成為聊天室的合法用戶。</p><p> (2)實(shí)現(xiàn)聊天室基本功能,能接收各個(gè)用戶的發(fā)言,在聊天輸入?yún)^(qū)域輸入自己的發(fā)言內(nèi)容、在聊天顯示區(qū)域看到聊天的內(nèi)容,能與所喜歡的用戶進(jìn)行私聊,即說(shuō)悄悄話;</p><p> (3)可以根據(jù)聊友的聚集情況來(lái)選擇自己喜歡的房間進(jìn)入聊天室;</p><p> (4)擁有在線名
61、單區(qū),顯示在線聊友及其所在房間;</p><p> (5)擁有發(fā)言區(qū),讓聊友能夠讓按照個(gè)性化的風(fēng)格來(lái)發(fā)表自己的觀點(diǎn),并提供讓聊友選擇聊天對(duì)象,私聊等功能;</p><p> (6)用戶可以在聊天過(guò)程中更換房間,修改自己的密碼及基本資料。</p><p> (7)普通用戶在積分大于1000分時(shí)就具備了管理員功能成為高級(jí)用戶,高級(jí)用戶可以將不遵守聊天室規(guī)定、胡亂發(fā)
62、言的聊友踢出聊天室。</p><p><b> 2.2系統(tǒng)總體設(shè)計(jì)</b></p><p> 該聊天系統(tǒng)主要由用戶注冊(cè)、用戶登錄、選擇聊天室房間、輸入聊天內(nèi)容、顯示聊天內(nèi)容、更換聊天室房間、查看在線好友、修改用戶資料、修改用戶密碼、用戶退出共十大聊天模塊組成,系統(tǒng)的組成圖如下所示:</p><p> 圖2.1 系統(tǒng)總體流程圖</p&
63、gt;<p> 聊天室的首頁(yè)是歡迎頁(yè)面,它提供了用戶登錄和用戶注冊(cè)兩個(gè)入口。</p><p> 用戶的注冊(cè)模塊是常規(guī)的注冊(cè),主要包含用戶名、用戶密碼、性別、年齡、郵箱、以及用于密碼保護(hù)的問(wèn)題和回答。用戶填寫完會(huì)對(duì)注冊(cè)使用對(duì)用戶所填寫的信息驗(yàn)證,看是否符合要求然后提交,存入MySQL數(shù)據(jù),以便后續(xù)操作的查詢和操作。若用戶注冊(cè)成功,則可以永久性的使用此用戶名和密碼。如若失敗,則重新注冊(cè)或退出。用戶注
64、冊(cè)的流程圖如下所示:</p><p> 圖2.2用戶注冊(cè)流程圖</p><p> 用戶使用已經(jīng)注冊(cè)過(guò)的用戶名登錄,聊天室會(huì)從數(shù)據(jù)庫(kù)user_table表中查詢用戶名和密碼,另外還要輸入驗(yàn)證碼,驗(yàn)證用戶輸入的用戶名是否存在以及密碼和驗(yàn)證碼正確性,若是用戶名存在且密碼和驗(yàn)證碼正確,則用戶登錄成功,其積分就會(huì)加2分。再選擇房間,將用戶相關(guān)信息暫存入數(shù)據(jù)庫(kù),若果暫存成功,則選擇房間成功;否則選
65、擇房間失敗,用戶可以重新選擇或退出。若是用戶名不存在,密碼或驗(yàn)證碼正確則用戶登錄失敗,用戶可檢查相關(guān)信息再次登錄或退出。用戶登錄選擇房間流程圖如下圖:</p><p> 圖2.3用戶登錄選擇房間流程圖</p><p> 基本操作單元中在線用戶列表顯示當(dāng)前在線用戶的用戶名、所在聊天室以及用戶的積分。用戶列表通過(guò)查詢?cè)诰€聊友數(shù)據(jù)表,顯示用戶的一些關(guān)于聊天的基本信息。</p>
66、<p> 基本操作單元中用戶基本資料的修改是根據(jù)用戶名和問(wèn)題回答來(lái)修改年齡和郵箱。用戶名是通過(guò)session傳遞過(guò)來(lái)的。sql語(yǔ)句根據(jù)用戶名等于傳入的用戶名和輸入的問(wèn)題回答是否與數(shù)據(jù)庫(kù)中相匹配決定是否能修改成功。其流程圖如下所示:</p><p> 圖2.4 用戶資料修改流程圖</p><p> 基本操作單元中用戶密碼的修改根據(jù)session中傳入的用戶名找到數(shù)據(jù)庫(kù)中對(duì)應(yīng)的
67、記錄,再根據(jù)數(shù)據(jù)庫(kù)中的舊密碼驗(yàn)證輸入的舊密碼是否正確,如是正確,則修改操作是成功。否則失敗,用戶可以重新修改或不再修改。其流程圖如下所示:</p><p> 圖2.5 用戶密碼修改流程圖</p><p> 基本操作單元中用戶注銷將在線用戶表中對(duì)應(yīng)的信息刪除,再將session里的對(duì)應(yīng)信息清空來(lái)實(shí)現(xiàn)的。</p><p> 顯示模塊是用戶的發(fā)言區(qū),所有的談話都將在
68、這里得到顯示,無(wú)論是公告、對(duì)所有人的聊天或者是私聊的話語(yǔ)。但是如果是私聊則只有聊天對(duì)象和自己看得到聊天內(nèi)容,其他人是看不到的。信息的得到是通過(guò)輸入?yún)^(qū)獲得(用戶自己的一些發(fā)言),或系統(tǒng)自動(dòng)生成(對(duì)某用戶的進(jìn)入或某戶被踢出的一些系統(tǒng)提示)的。用戶可以根據(jù)自己的喜好選擇和大家一起聊天或和某人進(jìn)行私聊。顯示單元的文字條數(shù)在多于顯示頁(yè)面大小的時(shí)候會(huì)自動(dòng)產(chǎn)生滾動(dòng)條并滾動(dòng),這只要通過(guò)window.scroll()函數(shù)就可以實(shí)現(xiàn)了,以保持最新的聊天內(nèi)容
69、在顯示單元顯示。用戶查看聊天記錄也是顯示頁(yè)面實(shí)現(xiàn)的,所有聊天記錄在信息未清除(服務(wù)器重啟后或用戶的發(fā)言在超過(guò)200條時(shí),系統(tǒng)會(huì)自動(dòng)清楚所有記錄內(nèi)容,以便丟棄不再需要的已發(fā)送內(nèi)容記錄。)之前都會(huì)顯示在該頁(yè)面上。</p><p> 輸入單元是用戶進(jìn)行聊天的主要單元,用戶的發(fā)言、聊天對(duì)象、表情用語(yǔ)、是否私聊、是否退出私聊或者是否退出聊天室,都是通過(guò)輸入?yún)^(qū)實(shí)現(xiàn)的。這里是用戶的操作界面。用戶可以在聊天對(duì)象的文本框中輸入自
70、己喜歡的聊友給他發(fā)送信息或給所有人發(fā)送信息(默認(rèn)是給所有人發(fā)送信息),當(dāng)用戶勾選了“悄悄話”,則該用戶的發(fā)言就只有他所輸入的聊天對(duì)象可以看到,其他人是看不到的,如果沒(méi)有勾選(即退出了私聊),則他的發(fā)言是在線聊友都可以看到的。表情用語(yǔ)、字體、字體顏色、字體樣式等都是下拉式列表框,可以直觀的選取,用戶的發(fā)言內(nèi)容是將是所有這些的組合文字。離開按鈕是調(diào)用用戶退出頁(yè)面,即logout.jsp頁(yè)面,從而將用戶從當(dāng)前用戶列表的session中刪除該用
71、戶名,并從在線聊友表中刪除,實(shí)現(xiàn)用戶的退出。“聊天幫助”鏈接可以查看一些關(guān)于如何使用本聊天室的說(shuō)明信息?!案呒?jí)功能”鏈接是高級(jí)用戶具備的管理員功能,可以踢出其他在線用戶。</p><p> 高級(jí)功能是高級(jí)用戶具有的類似于管理員的功能。當(dāng)某用戶的積分大于1000分時(shí),該用戶就具備了該功能,啟用該功能后可以根據(jù)下拉框選擇要踢出的用戶名,踢人成功后會(huì)有提示框,提示所選用戶已經(jīng)被踢出。被踢出的用戶將不能再聊天,其他用戶
72、可以給他留言,但他是不能看到的,因?yàn)樵谒芸吹降臅r(shí)候聊天信息已經(jīng)被清空了。被踢出的用戶可以正常登錄聊天室,但要在服務(wù)器重啟之后,才能繼續(xù)正常聊天。</p><p> 2.3系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)</p><p> 本W(wǎng)eb聊天室采用的數(shù)據(jù)庫(kù)是MySQL數(shù)據(jù)庫(kù),共有兩張表,數(shù)據(jù)庫(kù)所有表的截圖如下:</p><p> 圖2.6 user_table表</p>
73、<p> 圖2.7user_list表</p><p><b> 第三章功能測(cè)試</b></p><p> 本聊天室大部分頁(yè)面都包含了頭頁(yè)面和尾頁(yè)面,是通過(guò)JSP的動(dòng)作指令實(shí)現(xiàn)的,主要實(shí)現(xiàn)代碼為:</p><p> <jsp:include page="header.jsp"></jsp
74、:include></p><p> <jsp:include page="footer.jsp"></jsp:include></p><p><b> 3.1用戶注冊(cè)</b></p><p> 用戶注冊(cè)是JSP頁(yè)面、JavaBean和Servlet的結(jié)合,JSP負(fù)責(zé)注冊(cè)的顯示,使用ja
75、vascript在表單提交之前對(duì)用戶填寫的信息進(jìn)行驗(yàn)證,驗(yàn)證通過(guò),表單提交給Servlet,Servlet通過(guò)調(diào)用JavaBean決定注冊(cè)是否成功,JavaBean會(huì)將用戶提交的表單信息封裝并處理,然后顯示相應(yīng)的信息,失敗可再回到注冊(cè)頁(yè)面,若成功則可連接到登錄頁(yè)面。</p><p> 該部分功能實(shí)現(xiàn)如下所示:</p><p> 圖3.1 用戶注冊(cè)成功功能</p><
76、p> 主要實(shí)現(xiàn)部分代碼為: </p><p> RegisterCheckBean rcb = new RegisterCheckBean(rb);</p><p> if (rcb.validate())</p><p><b> {</b></p><p> out.println("<
77、;div align='center'>");</p><p> out.println("<br><br><br><br><br>");</p><p> out.println("該用戶已經(jīng)存在,請(qǐng)重新<a href='register.jsp
78、39;>注冊(cè)</a>!");</p><p> out.println("</div>");</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b>
79、;</p><p><b> try</b></p><p><b> {</b></p><p> stmt.executeUpdate("insert into usertable(username,psw,sex,age,mail,question,reply) values('"&
80、lt;/p><p> + username</p><p><b> + "','"</b></p><p> + password</p><p><b> + "','"</b></p><p>
81、<b> + sex</b></p><p><b> + "','"</b></p><p><b> + age</b></p><p><b> + "','"</b></p>&
82、lt;p><b> + mail</b></p><p><b> + "','"</b></p><p> + question</p><p><b> + "','"</b></p><p&
83、gt; + reply + "')");</p><p> out.println("<div align='center'>");</p><p> out.println("<br><br><br><br><br>");<
84、;/p><p> out.println("注冊(cè)成功!,請(qǐng)<a href='login.jsp'>登錄</a>或返回<a href='index.jsp'>首頁(yè)</a>");</p><p> out.println("</div>");</p>
85、<p><b> }</b></p><p> catch (SQLException e)</p><p><b> {</b></p><p> e.printStackTrace();</p><p><b> }</b></p>&l
86、t;p><b> finally</b></p><p><b> {</b></p><p><b> try</b></p><p><b> {</b></p><p> if (conn != null)</p>&l
87、t;p><b> {</b></p><p> conn.close();</p><p><b> }</b></p><p> if (stmt != null)</p><p><b> {</b></p><p> stmt.c
88、lose();</p><p><b> }</b></p><p><b> }</b></p><p> catch (SQLException e)</p><p><b> {</b></p><p> e.printStackTrac
89、e();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> 3.2用戶登錄</b></p><p> 用戶登錄功能類似于用戶注冊(cè),也
90、是通過(guò)以上幾種技術(shù)的集合來(lái)實(shí)現(xiàn)的,用戶注冊(cè)時(shí),若成功則將用戶信息保存到數(shù)據(jù)庫(kù)中,而用戶登錄時(shí),若成功則將表單上的信息與數(shù)據(jù)庫(kù)中對(duì)應(yīng)的信息作比較,若符合就可以成功跳轉(zhuǎn)。實(shí)現(xiàn)代碼與用戶注冊(cè)類似。其功能實(shí)現(xiàn)如下圖所示:</p><p> 圖3.2 用戶登錄成功功能</p><p><b> 主要實(shí)現(xiàn)部分代碼為</b></p><p> Stri
91、ng input = request.getParameter("rand");</p><p> LoginBean lb = new LoginBean();</p><p> lb.setUsername(request.getParameter("username"));</p><p> lb.setPassw
92、ord(request.getParameter("password"));</p><p> String username = lb.getUsername();</p><p> LoginCheckBean lcb = new LoginCheckBean(lb);</p><p> if (input.equals(session
93、.getAttribute("rand")))</p><p><b> {</b></p><p> if (lcb.validate())</p><p><b> {</b></p><p> String integral = null;</p>&
94、lt;p> session.setAttribute("username", username);</p><p><b> try</b></p><p><b> {</b></p><p> rs = stmt.executeQuery("select integral f
95、rom usertable where username = '"</p><p> + username + "'");</p><p> if (rs.next())</p><p><b> {</b></p><p> integral = rs.getStr
96、ing(1);</p><p><b> }</b></p><p> int i = Integer.parseInt(integral);</p><p> i = i + 2;</p><p> String s = "" + i;</p><p> sessi
97、on.setAttribute("integral", s);</p><p> stmt.executeUpdate("update usertable set integral=integral+2 where username='"</p><p> + username + "'");</p>
98、;<p><b> }</b></p><p> catch (SQLException e)</p><p><b> {</b></p><p> e.printStackTrace();</p><p><b> }</b></p>
99、<p><b> finally</b></p><p><b> {</b></p><p><b> try</b></p><p><b> {</b></p><p> if (conn != null)</p>
100、<p><b> {</b></p><p> conn.close();</p><p><b> }</b></p><p> if (stmt != null)</p><p><b> {</b></p><p> stmt
101、.close();</p><p><b> }</b></p><p><b> }</b></p><p> catch (SQLException e)</p><p><b> {</b></p><p> e.printStackTr
102、ace();</p><p><b> }</b></p><p><b> }</b></p><p> out.println("<div align='center'>");</p><p> out.println("<
103、br><br><br><br><br>");</p><p> out.println("登錄成功!<br><br>");</p><p> out.println("請(qǐng)進(jìn)入聊天選擇頁(yè)面,選擇您所要進(jìn)入的聊天室!");</p><p>
104、 out.println("<a href='choose.jsp'>選擇聊天室</a>");</p><p> out.println("</div>");</p><p><b> }</b></p><p><b> else&l
105、t;/b></p><p><b> {</b></p><p> out.println("<div align='center'>");</p><p> out.println("<br><br><br><br><b
106、r>");</p><p> out.println("登錄失?。?lt;br><br>");</p><p> out.println("您輸入的用戶名不存在或密碼出錯(cuò),請(qǐng)重新<a href='login.jsp'>登錄</a>");</p><p&g
107、t; out.println("<div align='center'>");</p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><
108、;b> {</b></p><p> out.println("<div align='center'>");</p><p> out.println("<br><br><br><br><br>");</p><p&g
109、t; out.println("登錄失??!<br><br>");</p><p> out.println("您輸入的驗(yàn)證碼不正確,請(qǐng)重新<a href='login.jsp'>登錄</a>");</p><p> out.println("<div align=&
110、#39;center'>");</p><p><b> }</b></p><p> 3.3用戶選擇聊天房間功能</p><p> 用戶登錄成功后就可以連接到選擇聊天房間的頁(yè)面,用戶可以根據(jù)自己的喜好選擇聊天房間,在用戶登錄并成功選擇聊天房間后,用戶的用戶名、所選聊天室和用戶的積分就會(huì)被添加到user_list表
111、中,只有在用戶退出或被他人踢出后用戶的這些信息才會(huì)從user_list中被刪除。</p><p> 該功能也是通過(guò)JSP頁(yè)面、JavaBean和Servlet相結(jié)合實(shí)現(xiàn)的。該部分主要實(shí)現(xiàn)功能圖如下所示:</p><p> 圖3.3 聊天室選擇功能圖</p><p><b> 主要實(shí)現(xiàn)代碼為: </b></p><p&g
112、t; private String chatroom;</p><p> public String getChatroom()</p><p><b> {</b></p><p> return chatroom;</p><p><b> }</b></p><p
113、> public void setChatroom(String chatroom)</p><p><b> {</b></p><p> this.chatroom = chatroom;</p><p><b> }</b></p><p> stmt.executeUpdat
114、e("insert into user_list </p><p> values('"+username+"','"+chatroom+"','"+integral+"')");</p><p> valid = true;</p><p
115、> ChooseBean cb = new ChooseBean();</p><p> cb.setUsername(request.getParameter("username"));</p><p> cb.setChatroom(request.getParameter("chatroom"));</p><p
116、> ChooseCheckBean ccb = new ChooseCheckBean(cb);</p><p> if(ccb.validate())</p><p><b> {</b></p><p> goToPage("main.jsp", request, response);</p>
117、<p><b> }</b></p><p> 用戶相應(yīng)信息的是在JavaBean處理時(shí)被添加到數(shù)據(jù)表中的。</p><p><b> 3.4用戶聊天功能</b></p><p> 聊天室的主頁(yè)面是用框架技術(shù)構(gòu)建的,對(duì)于不支持框架的瀏覽器是無(wú)法訪問(wèn)的,聊天主頁(yè)面主要集成了四個(gè)頁(yè)面,即顯示頁(yè)面(show.
118、jsp)、用戶信息修改頁(yè)面(right.jsp)、處理頁(yè)面(transact.jsp)和輸入頁(yè)面(input.jsp)。</p><p><b> 3.4.1顯示功能</b></p><p> 顯示頁(yè)面將用戶的一些發(fā)言顯示出來(lái),也可以實(shí)現(xiàn)聊天記錄的查看,其實(shí)現(xiàn)功能圖如下所示:</p><p> 圖3.4 顯示聊天內(nèi)容功能圖</p&g
119、t;<p><b> 主要實(shí)現(xiàn)代碼為:</b></p><p> <script language="javascript" type="text/javascript"></p><p> function GetData(url) {</p><p> url = &
120、quot;class_method.jsp?action=transact.jsp";</p><p><b> try </b></p><p><b> {</b></p><p> DataLoad.src = url;</p><p> } catch (e) {</
121、p><p> return false;</p><p><b> }</b></p><p><b> {</b></p><p> var timeoutid = setTimeout("GetData()", 2000);</p><p><
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于web的聊天室畢業(yè)論文
- 基于web的聊天室畢業(yè)論文
- jsp基于web的聊天室構(gòu)建論文
- jsp基于Web的聊天室構(gòu)建論文.doc
- java聊天室畢業(yè)論文
- 畢業(yè)論文asp聊天室
- 聊天室(java)-畢業(yè)論文
- 畢業(yè)論文---多人聊天室設(shè)計(jì)
- jsp在線聊天室-畢業(yè)論文
- 畢業(yè)論文 java聊天室的設(shè)計(jì)
- 畢業(yè)論文——網(wǎng)上聊天室
- 基于web的聊天室開題報(bào)告
- 基于java的聊天室設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 基于java的聊天室設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 基于web的聊天室開題報(bào)告
- 畢業(yè)論文——網(wǎng)上聊天室 (3)
- 畢業(yè)論文——網(wǎng)上聊天室 (3)
- 畢業(yè)論文——網(wǎng)上聊天室 (2)
- 畢業(yè)論文——網(wǎng)上聊天室 (3)
- 畢業(yè)論文---網(wǎng)絡(luò)聊天室的規(guī)劃和設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論