九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

基于jsp技術和ajax技術實現的網絡聊天室的設計.doc

上傳人:good****022 文檔編號:116778390 上傳時間:2022-07-06 格式:DOC 頁數:81 大小:1.10MB
收藏 版權申訴 舉報 下載
基于jsp技術和ajax技術實現的網絡聊天室的設計.doc_第1頁
第1頁 / 共81頁
基于jsp技術和ajax技術實現的網絡聊天室的設計.doc_第2頁
第2頁 / 共81頁
基于jsp技術和ajax技術實現的網絡聊天室的設計.doc_第3頁
第3頁 / 共81頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《基于jsp技術和ajax技術實現的網絡聊天室的設計.doc》由會員分享,可在線閱讀,更多相關《基于jsp技術和ajax技術實現的網絡聊天室的設計.doc(81頁珍藏版)》請在裝配圖網上搜索。

1、 編號 淮安信息淮安信息職業(yè)職業(yè)技技術術學院學院 畢畢業(yè)業(yè)論論文文 題 目基于 JSP 技術和 Ajax 技術實現的聊天室設計 學生姓名王萬爽 學 號35011219 院 系 計算機與通信工程學院 專 業(yè)計算機應用技術 班 級350112 指導教師李剛 顧問教師 二一三年十月 摘摘 要要 隨著互聯網的飛速發(fā)展,聊天室這種比較古老的交流方式已經被眾多人所 認可。通過聊天室在線聊天已成為網絡上人與人之間的溝通、交流和聯系的一 種方式。為此,越來越多的網站開始提供在線的聊天功能。與此同時,聊天室 也以其方便、快捷、低成本等優(yōu)勢受到眾多企業(yè)的親睞,很多企業(yè)的網站中也 加入了聊天室,以達到增進企業(yè)與消費

2、者、消費者與消費者之間的相互交流和 聯系的目的。 傳統的互聯網絡聊天室,以顯示在線用戶和用戶信息的實時傳送,需要定 期刷新頁面。刷新頁面,不僅要占用一定的系統資源和網絡帶寬,也會出現 “白屏”現象,這對良好的用戶體驗是非常不利的。 Ajax 是一個新的 web 應用, 使用 Ajax 技術的發(fā)展不僅解決了頁面刷新帶來的白屏問題,也減少了對服務器 和網絡傳輸的負載。 我做的這個設計就是通過 JSP 和 Ajax 實現的無刷新聊天室。 關鍵詞:JSP;Ajax;網絡聊天室;無刷新 Abstract With the rapid development of Internet, chat rooms

3、 that compare the old way of communication has been recognized by many people. By online chat chat room has become the Internet interpersonal communication, a way of communication and contact. Therefore, more and more websites started offering online chat. Chat rooms, meanwhile, also with its conven

4、ient, fast, low-cost advantages such as affected by many enterprises, many enterprise site has joined the chat room, in order to achieve between the enterprises and consumers, customers and consumers to communicate and contact purpose. Traditional Internet chat rooms in order to display online users

5、 and user messages sent in real time, the need to regularly refresh the page. Page refresh not only to take up some system resources and network bandwidth, but there is also a “black and white“ phenomenon is very detrimental to a good user experience. Ajax is a new web application, the chat room sys

6、tem using Ajax technology development not only solved the page refreshes bring black and white issues, but also reduce the load on the server and network transmission. I do this is designed by the JSP and Ajax no refresh the chat room Keywords: Jsp;Ajax;Internet chat rooms;Nofresh; 目目 錄錄 摘摘 要要I Abst

7、ract.II 第一章第一章 緒論緒論.1 1.1 系統現狀.1 1.2 國內外主要研究成果.1 1.3 課題的主要內容及章節(jié)安排.3 第二章第二章 系統開發(fā)環(huán)境和關鍵技術系統開發(fā)環(huán)境和關鍵技術.4 2.1 系統的開發(fā)環(huán)境.4 2.2 APPLICATION 對象.4 2.3 AJAX 技術.5 2.4 監(jiān)控用戶在線狀態(tài)6 2.5 JSP 技術.6 第三章第三章 系統分析與設計系統分析與設計.9 3.1 系統分析.9 3.1.1 聊天室功能需求分析.9 3.1.2 聊天室功能性能分析.9 3.2 系統運行環(huán)境.9 3.3 系統預覽和項目流程圖.10 第四章第四章 系統的實現系統的實現.12 4

8、.1 用戶登錄模塊.12 4.2 聊天室主體功能模塊.13 4.3 實時獲取并顯示在線人員列表.14 4.4 實現用戶發(fā)言.15 4.5 實時顯示聊天內容.19 4.6 退出聊天室.20 第五章第五章 總結與總結與致致謝謝.22 參考文獻參考文獻.24 第一章 緒論 1.1 系統現狀 在人們的生活中,信息技術的飛速發(fā)展正在發(fā)生深刻變化。人與人之間的 對話是不再局限于面對面,網上聊天室提供了信息交流的另一個地方。傳統的 聊天室,以顯示在線用戶和用戶信息的實時傳送,需要定期刷新頁面。刷新頁 面,不僅要占用一定的系統資源和網絡帶寬,也會出現“白屏”的現象,這對 良好的用戶體驗是非常不利的。而使用 A

9、jax 技術開發(fā)的聊天室,不僅可以解決 頁面刷新帶來白屏的問題,也減少了對服務器和網絡傳輸的負載。 隨著互聯網應用的普及,web 應用以其良好的擴展性、易于部署、維護方便 等優(yōu)點逐漸成為軟件開發(fā)的主流。早期的 Web 應用采用的是同步交互過程,即 用戶首先向 Web 服務器提交一個請求或行為呼叫,服務器接收到客戶請求后執(zhí) 行相應處理操作,最后向用戶返回處理結果。服務器在處理請求時,用戶處于 等待狀態(tài),有時如果超過了服務器響應時間,甚至返回“頁面不可用”等提示。 另外,當我們只想改變頁面的部分數據時,用戶的請求會導致服務器重新返回 整個頁面內容,包括那些沒有改變的數據,這不但增加了網絡傳輸的數據

10、量, 還影響了客戶端的響應時間,為什么我們不能“按需”獲取數據呢?Ajax 技術可 以很好的解決上述 web 應用中存在的問題。Ajax 技術是 Web2.0 的核心之一,本 質上是一種 RIA(RichIllternet Application)技術。RIA 是指具有高度互動性 和豐富用戶體驗的網絡應用程序,它既具有消息確認、無刷新頁面之下提供快 捷的界面響應、拖放式等桌面應用程序的特點,同時又具有部署簡單、跨平臺 等 Web 應用程序的特點。Ajax 技術提供了客戶端與服務器異步通信的能力,從 而使用戶從請求一響應一再請求的循環(huán)中解脫出來,同時降低了網絡傳輸的數 據量,提高了客戶端的響應速

11、度,改善了用戶使用體驗,使得 web 應用可以接 近甚至達到類似“桌面應用”的效果。 而 Ajax 有上述優(yōu)勢,例如 Google Suggest,Gmail,Google Map 等等交互 程序中都使用了異步通訊技術。不知不覺中,Ajax 應用程序占據了整個網絡的 每一個角落??v觀所有的應用程序,更好的用戶體驗是其的共同目標,在瀏覽器 中實現桌面用戶界面體驗是 Web 開發(fā)的一種趨勢。Ajax 技術從谷歌到 IBM,甲 骨文,雅虎,BEA 系統公司,紅帽,Novell 公司獲得業(yè)界眾多的 IT 巨頭的支持, 其快速發(fā)展是值得期待的。技術創(chuàng)新和標準化是 Ajax 技術發(fā)展的必由之路,而 W3C

12、 已成立了工作小組,專門從事 Ajax 的規(guī)范發(fā)展工作。 1.2 國內外主要研究成果 Ajax技術的精髓是用異步交互替代了傳統的同步交互,所以當用戶操作時間 大于服務器響應時間的時候,使用 Ajax的效果非常明顯。而當程序性能的瓶頸在于 服務器響應時間的時候, Ajax 無法解決程序運行緩慢的問題。 因此,Ajax 是更適合 在網絡上的互動頻繁輕量級的應用程序。在 Ajax 開發(fā)的應用程序中,Google 公 司成功將 Ajax 技術應用到他們的商業(yè)產品。Google 地圖和 Google Suggest 都 應用了這項技術。當用戶使用谷歌地圖查看地圖(包括地圖的縮放和平移地圖) ,并沒有提交

13、任何請求到服務器,你就可以瀏覽到地圖的各個部分。在這里, 它是 Ajax 技術的應用,使得地圖是不刷新的方式,但每個顯示原始數據的基礎 上以增量方式顯示 。在這種方式下,用戶覺得就像是在自己的計算機上查看本地 的地圖。微軟也在積極開發(fā) Ajax 應用程序:它將 Ajax 技術應用到的 MSN Space 上面。當用戶使用 MSN Space 提交回復評論時,瀏覽器會暫時停頓,然后刷新 顯示用戶提交的評論,這是應用了 Ajax 的原理。目前,Ajax應用最普遍的領域 是GIS-Map 方面。GIS的區(qū)域搜索強調快速響應, Ajax 的特點正好符合這種要求。 在應用Ajax 技術開發(fā)過程當中,處于

14、核心位置的 Ajax引擎實際上是一些復雜的 JavaScript程序。 隨著網絡應用和界面表現的復雜化,使用面向過程的 JavaScript 語言描述表現邏輯將會變得很困難。同時 , JavaScript的兼容性和調試都會成為使 用Ajax 技術的一個障礙。為了解決這些問題,開發(fā)人員已經開發(fā)出了一些基于Ajax 技術的框架,方便了開發(fā)人員使用 ,有利于Ajax 技術的進一步推廣。當然,任何技 術都是有局限性的, Ajax 也不例外。 Ajax更新頁面無需刷新重載,這也使傳統的一 些用戶交互行為變得不可用,如后退、前進和刷新等。另外,移動設備(如手機、 PDA 等)現在還不能很好的支持Ajax,

15、Ajax 對流媒體的支持也沒有Java Applet和 Flash這樣成熟的技術好。 因此,一些輔助的平臺和插件的開發(fā)也將是 Ajax技術應 用當中重要的一部分。 Ajax 把大量的運算從服務器轉移到了客戶端瀏覽器,這意味著瀏覽器將承受 更大的負擔,而不再是簡單的文檔顯示功能。 聊天室作為一個能夠吸引人氣的欄目,在現代網絡應用中隨處可見。它的作 用是給不同的用戶提供一個交流信息的場所。用戶在聊天室中可以發(fā)布信息, 就如同所有用戶都在一個個真正室內聊天一樣。 傳統的聊天室程序一般設置在客戶端的網頁自動刷新。刷新在這樣的數據 會帶來一些缺點,例如:每次刷新服務器應該重新獲取數據,大大提高了服務 器

16、上的負載,此刷新過程正在進行,這將是非常嚴重的影響服務器的性能;每 次刷新過程中會產生大量無用數據,不斷刷新頁面,用戶在客戶端方面,將導 致屏幕閃爍。解決屏幕閃動最重要的一條原則就是,將改動的地方顯示到客戶 端,而那些不需要改動的地方則盡量不要讓用戶感覺到變化。一個更好的解決 辦法是使用 Ajax 技術的無刷新聊天室應用。 現在的聊天室通過四個主要功能模塊實現了聊天室中用戶登錄、注銷、環(huán) 境設置、發(fā)送消息、讀取消息和查看在線用戶列表等。聊天室系統為用戶提供 了聊天場所,操作員可對后臺網站的風格、廣告鏈接等進行設置;用戶可以根據 個人的習慣選擇字體、文字顏色和表情等;前臺聊天室具有私聊的功能,私

17、聊的 內容僅供私聊雙方查看;聊天者可自己手動清除聊天內容。操作員可通過客戶 端處理模塊獲取界面元素從而得到聊天內容或與服務器交互更新客戶端頁面響 應用戶事件。服務器端響應模塊可提供聊天室界面元素信息獲得提交數據。 1.3 課題的主要內容及章節(jié)安排 現在,多渠道的信息源、網絡化的數據分布、快捷醫(yī)用的交互操作、智能 化的分析決策等特點越來越成為衡量優(yōu)良聊天軟件的關鍵,因此,該網絡聊天 室是基于jsp語言運行于MyEclipse Java平臺上,利用的技術主要是,使用配置 文件作為數據管理。為實現和方便客戶端間通信,在客戶端進行了人性化的界 面設計,用戶可以輸入用戶名,登陸界面,改變字體顏色等功能。

18、 第一章對本次課題的背景及意義、課題現狀、課題內容與目標進行了深入 的闡述。 第二章介紹了系統的開發(fā)環(huán)境和關鍵技術,例如 Ajax 技術、JSP 技術、滾 屏顯示技術等等。 第三章是系統分析與設計。將對系統進行需求分析,對組成系統的功能模 塊進行劃分,對每個模塊將要實現的功能進行闡述和說明。對系統的結構進行 設計,設計共享數據結構。 第四章是系統實現,分別介紹了服務器端和客戶端每個功能的執(zhí)行過程, 畫出主要模塊的流程圖。 第五章是總結與致謝。 最后,對本設計進行歸納總結,全面闡述本次設計中的體會。 第二章 系統開發(fā)環(huán)境和關鍵技術 2.1 系統的開發(fā)環(huán)境 MyEclipse Java 如圖 1-

19、1 系統開發(fā)環(huán)境。 圖 1-1 系統開發(fā)環(huán)境 2.2 Application 對象 Application 對象是一個環(huán)境上下文(context)對象,用于保存應用程序 中的所有公有數據,服務器啟動并且自動創(chuàng)建 Application 對象以后,只要沒 有關閉服務器,Application 對象將一直存在,并且可以被所有用戶共享。 Application 對象為 JSP 提供的內置對象,可以直接使用,但在 servlet 中, 需要通過以下代碼來獲取該對象的實例,才可以使用該對象。 ServletContext application=getServletContext(); Applicat

20、ion 對象提供了很多方法,我的設計中,只使用了 setAttribute()和 getAttribute()方法。 首先來介紹 setAttribute()方法,該方法用于將一個對象綁定到一個屬性 上,該屬性在整個 Servlet 上下文中都適用。setAttribute()方法的語法格式 如下;Application. setAttribute(String name,Object object); 參數說明:name:用于指定的一個屬性名該屬性在整個 Servlet 上下文都 適用。object:用于指定屬性值。 如本設計中的,設置保存聊天信的 Application 對象的屬性的具體代

21、碼如 下: application。setAttribute(“message”.sourceMessage); 下面我們再來介紹 getAttribute()方法,該方法用于返回 Application 對 象的指定屬性的值。如果不存在該屬性,則返回 null。getAttribute()方法的 基本語法如下: Application。getAttribute(String name);參數說明:Name:用于指定 一個屬性名。 本設計中,設置獲取聊天信息的 Application 對象的屬性的具體代碼如下: StringsourceMessage=application.getAttrib

22、ute(“message”).toString(); 2.3 Ajax 技術 Ajax 是一種創(chuàng)建交互式網頁的 web 開發(fā)技術。Ajax 的一個非常成功的案例 就是 Google,當用戶在 Google 的搜索輸入框中輸入關鍵字的時候。他會提示與 關鍵字相關的另一些關鍵字。用戶可以對自己喜歡的一些關鍵字進行選擇,這 樣既方便了用戶定位自己的需要,又可以很好的引導搜索結果。 在 Ajax 應用中,頁面中用戶的操作將通過 Ajax 引擎與服務器進行通信,然后 將返回結果提交給客戶端頁面的 Ajax 引擎,而有 Ajax 引擎決定這些數據插入 到頁面的任何位置。 Ajax 的最大特點的就是很好的用

23、戶體驗,大多數使用 Ajax 技術的 web 應用 程序,比同類沒有使用的 web 應用程序的用戶體驗要好的多,盡管他們都能完 成相類似的功能。例如,一個普通的用戶注冊頁面,如果用戶希望知道注冊的 用戶名是否已經注冊過了,那只能等提交表單到服務器以后并重新來到一個新 的頁面,才知道用戶名是否可用,這種情況每次單擊按鈕都會導致幾秒鐘的延 遲和屏幕刷新,但事實上頁面改動的地方卻只有很少一部分,Ajax 正在打破這 種狀況,是頁面再無刷新的情況下,完成某些與服務器的交互功能。大大提高 了用戶的體驗感。 2,Ajax 不是單一的技術,而是四種技術的集合,有 javascript ,css,Dom XM

24、LHttpRequestAjax 程序是用 javascript 語言寫成的。Ajax 程序 可以使用 CSS 來控制頁面的樣式。DOM,指的是文本對象模型,它是一個 web 頁 面的對象模型,可以用 javascript 來操作的頁面結構。XMLHttpRequest 對象用 來在后臺向服務器端發(fā)送請求,數據的格式可以使任何的文本格式,如 XML、純 文本。他也是 Ajax 進行異步通信的 關鍵元素。 這四種技術各司其職,其中 javascript 是其他三中的粘合劑,javascript 可以通過修改 DOM 的結構來改變界面,或者完全改變 DOM 的結構來重新繪制用 戶界面;XMLHtt

25、pRequest 對象則用來與服務器進行異步通信,javascript 也正 是通過控制他來提交請求和獲取最新數據的。 Ajax 也會大量使用 DHTML 進行編程,并且它與服務器端的異步通信能力使得一 個 web 頁面的使用壽命大大增長,用戶交互性大大增強了。 Ajax 技術的優(yōu)缺點: 作為富客戶端技術之一的 Ajax 的最大優(yōu)點,就是再不更新整個頁面的前提下維 護數據。這使得 web 應用程序能夠更為迅捷的回應用戶動作,并避免了在網絡 上發(fā)送那些沒有改變過的信息。與其他富客戶端技術不同,Ajax 不需要任何瀏 覽器插件,直接通過瀏覽器內置的 javascript 控制瀏覽器的內容和行為即可

26、。 而其他的富客戶端技術往往需要安裝插件,并且以一個單獨的進程來運行這些 富客戶端,一旦處理不當,很可能造成速度很慢的后果。 缺點:就是 Ajax 在不同的瀏覽器運行時,由于各個瀏覽器之間的差異,是的開 發(fā)者在眾多不同的平臺和瀏覽器上經過嚴格的測試,但是隨著 Ajax 技術的成熟, 一些簡化跨平臺的 Ajax 程序庫,也相繼問世,程序員可以使用這些運行庫進行 Ajax 的開發(fā),也不擔心 Ajax 的跨平臺性。還有一個缺點就是;他動態(tài)改變的內 容無法保存到本地或通過收藏夾來保存。這其實是因為 Ajax 改變?yōu)g覽器的內容 和行為,往往是通過修改網頁的 DOM 和 CSS 來控制的,這些新消息都僅僅

27、在瀏 覽器窗口沒關之前存在于內存里。 Ajax 更適合有少量頁面內容需要改變的客戶端編程,如果頁面的大多說內容都 需要改變的時候,還是建議使用讓整個頁面刷新的方式較好。 2.4 監(jiān)控用戶在線狀態(tài) 在聊天室程序中需要實時監(jiān)控用戶在線狀態(tài),當用戶非正常退出時(如: 沒有單擊“退出聊天室”按鈕,也沒有單擊窗口的關閉“按鈕” ,而是直接將頁 面轉向其他網站) ,能夠保證將該用戶從列表中刪除??梢詰?Servlet 中的監(jiān) 聽器(HttpBingListener 接口)實現此效果。 2.5 JSP 技術 JSP(JavaServer Pages)是由 Sun Microsystems 公司倡導、許多公

28、司參與 一起建立的一種動態(tài)網頁技術標準。JSP 技術有點類似 ASP 技術,它是在傳統的 網頁 HTML 文件(*.htm,*.html)中插入 Java 程序段(Scriptlet)和 JSP 標記(tag), 從而形成 JSP 文件(*.jsp)。 用 JSP 開發(fā)的 Web 應用是跨平臺的,即能在 Linux 下運行,也能在其他操作系統上運行。 JSP 技術使用 Java 編程語言編寫類 XML 的 tags 和 scriptlets,來封裝產生動態(tài)網頁的處理邏輯。網頁還能通過 tags 和 scriptlets 訪問存在于服務端的資源的應用邏輯。JSP 將網頁邏輯與網頁設 計和顯示分離

29、,支持可重用的基于組件的設計,使基于 Web 的應用程序的開發(fā) 變得迅速和容易。 Web 服務器在遇到訪問 JSP 網頁的請求時,首先執(zhí)行其中的 程序段,然后將執(zhí)行結果連同 JSP 文件中的 HTML 代碼一起返回給客戶。插入的 Java 程序段可以操作數據庫、重新定向網頁等,以實現建立動態(tài)網頁所需要的 功能。 JSP 與 Java Servlet 一樣,是在服務器端執(zhí)行的,通常返回該客戶端的 就是一個 HTML 文本,因此客戶端只要有瀏覽器就能瀏覽。 JSP 的 1.0 規(guī)范的最 后版本是 1999 年 9 月推出的,12 月又推出了 1.1 規(guī)范。目前較新的是 JSP1.2 規(guī)范,JSP2

30、.0 規(guī)范的征求意見稿也已出臺。 JSP 頁面由 HTML 代碼和嵌入其中 的 Java 代碼所組成。服務器在頁面被客戶端請求以后對這些 Java 代碼進行處 理,然后將生成的 HTML 頁面返回給客戶端的瀏覽器。Java Servlet 是 JSP 的 技術基礎,而且大型的 Web 應用程序的開發(fā)需要 Java Servlet 和 JSP 配合才能 完成。JSP 具備了 Java 技術的簡單易用,完全的面向對象,具有平臺無關性且 安全可靠,主要面向因特網的所有特點。 JSP 技術的強勢 (1)一次編寫,到處運行。在這一點上 Java 比 PHP 更出 色,除了系統之外,代碼不用做任何更改。

31、(2)系統的多平臺支持?;旧?可以在所有平臺上的任意環(huán)境中開發(fā),在任意環(huán)境中進行系統部署,在任意環(huán) 境中擴展。相比 ASP/PHP 的局限性是顯而易見的。 (3)強大的可伸縮性。從 只有一個小的 Jar 文件就可以運行 Servlet/JSP,到由多臺服務器進行集群和負 載均衡,到多臺 Application 進行事務處理,消息處理,一臺服務器到無數臺 服務器,Java 顯示了一個巨大的生命力。 (4)多樣化和功能強大的開發(fā)工具 支持。這一點與 ASP 很像,Java 已經有了許多非常優(yōu)秀的開發(fā)工具,而且許多 可以免費得到,并且其中許多已經可以順利的運行于多種平臺之下。 JSP 技術 的弱勢

32、 (1) 與 ASP 一樣,Java 的一些優(yōu)勢正是它致命的問題所在。正是由于 為了跨平臺的功能,為了極度的伸縮能力,所以極大的增加了產品的復雜性。 (2) Java 的運行速度是用 class 常駐內存來完成的,所以它在一些情況下所 使用的內存比起用戶數量來說確實是“最低性能價格比”了。從另一方面,它 還需要硬盤空間來儲存一系列的.java 文件和.class 文件,以及對應的版本文 件。 JSP 六種內置對象: request, response, out, session, application, config, pagecontext, page, exception. 一.requ

33、est 對象: 該對象封裝了用 戶提交的信息,通過調用該對象相應的方法可以獲取封裝的信息,即使用該對 象可以獲取用戶提交信息。 二.response 對象: 對客戶的請求做出動態(tài)的響應, 向客戶端發(fā)送數據。 三session 對象 1.什么是 session:session 對象是一 個 JSP 內置對象,它在第一個 JSP 頁面被裝載時自動創(chuàng)建,完成會話期管理。 從一個客戶打開瀏覽器并連接到服務器開始,到客戶關閉瀏覽器離開這個服務 器結束,被稱為一個會話。當一個客戶訪問一個服務器時,可能會在這個服務 器的幾個頁面之間反復連接,反復刷新一個頁面,服務器應當通過某種辦法知 道這是同一個客戶,這就

34、需要 session 對象。 2session 對象的 ID:當一個 客戶首次訪問服務器上的一個 JSP 頁面時,JSP 引擎產生一個 session 對象,同 時分配一個 String 類型的 ID 號,JSP 引擎同時將這個 ID 號發(fā)送到客戶端,存 放在 Cookie 中,這樣 session 對象和客戶之間就建立了一一對應的關系。當客 戶再訪問連接該服務器的其他頁面時,不再分配給客戶新的 session 對象,直 到客戶關閉瀏覽器后,服務器端該客戶的 session 對象才取消,并且和客戶的 會話對應關系消失。當客戶重新打開瀏覽器再連接到該服務器時,服務器為該 客戶再創(chuàng)建一個新的 se

35、ssion 對象。 四aplication 對象 1什么是 application: 服務器啟動后就產生了這個 application 對象,當客戶再所訪問 的網站的各個頁面之間瀏覽時,這個 application 對象都是同一個,直到服務 器關閉。但是與 session 不同的是,所有客戶的 application 對象都是同一個, 即所有客戶共享這個內置的 application 對象。 2application 對象常用方法: (1)public void setAttribute(String key,Object obj): 將參數 Object 指定 的對象 obj 添加到 app

36、lication 對象中,并為添加的對象指定一個索引關鍵字。 (2)public Object getAttribute(String key): 獲取 application 對象中含 有關鍵字的對象。 五out 對象 out 對象是一個輸出流,用來向客戶端輸出數 據。out 對象用于各種數據的輸出。 第三章 系統分析與設計 3.1 系統分析 3.1.1 聊天室功能需求分析 用戶登錄,包括用戶是否在線 實時顯示在線人員列表及在線人數 用戶發(fā)言,包括顯示聊天內容和滾屏顯示聊天信息 安全退出聊天室,包括單擊關閉按鈕退出聊天室。 3.1.2 聊天室功能性能分析 普通用戶能夠登錄的聊天室進行文本的聊

37、天,能夠方便的實現公共交談、 選擇顏色、添加文字表情等。可以用 Ajax 實現無刷新操作。 3.2 系統運行環(huán)境 在開發(fā)聊天室系統時,需要具備下面的軟件環(huán)境: 服務器端: 操作系統:WindowsXP。 Web 服務器:Tomcat6.0。 Java 開發(fā)包:MyEclipse。 客戶器端: IE6.0。 3.3 項目流程圖和系統預覽 (1)項目流程圖 聊天室的系統流程,如圖 3-1 用戶登錄聊天室是否在線 進入聊天室 主界面 發(fā)送聊天內 容 顯示聊天內 容 選擇聊天對 象 選擇表情文 字 文字顏色 輸入發(fā)言內 容 是 否 圖 3-1 項目流程圖 (2)為了是使大家對本模塊有一定的了解,下面將

38、給出聊天室的主界面預覽 效果圖。聊天室的登錄界面如圖 3-2 登錄界面.輸入用戶名,然后單擊“進入” 按鈕,將進入聊天室的主界面,如圖 3-3 主界面。 圖 3-2 登錄界面 圖 3-3 主界面 第四章 系統的實現 4.1 用戶登錄模塊 當用戶訪問聊天室時,首先進入的是登錄聊天室頁面。在該頁面中,用戶輸入自己 喜歡的用戶名,如圖 4-1 登錄界面,單擊進入按鈕,系統將判斷輸入的用戶名是否被占 用,如果被占用將給出提示。 圖 4-1 登錄界面 聊天室 functionfunction check() ifif(form1.username.value=“) alert(“請輸入用戶名!“);fo

39、rm1.username.focus();returnreturn falsefalse; elseelse ifif(form1.username.value=“) alert(“請不要輸入非法字符!“);form1.username.focus();returnreturn falsefalse; 用戶名: 4.2 聊天室主體功能模塊 在用戶登錄頁面中輸入用戶名,單擊“進入”按鈕即可進去聊天室的主界面。如圖 4-2 聊天室主體功能模塊,在頁面中包括頁面頭部、在線人員列表區(qū)、聊天內容顯示區(qū)和 用戶發(fā)言區(qū) 4 部分。 圖 4-2 聊天室主體功能模塊 4.3 實時獲取并顯示在線人員列表 在設計聊

40、天室程序時,為了讓用戶及時了解在線用戶,并與其他用戶交流,需要提 供實時獲取并顯示在線人員列表的功能。這小節(jié)介紹聊天室的主界面中,左側顯示在線 人員列表及在線人數。如圖 4-3 在線人員列表圖。 圖 4-3 在線人員列表圖 為了實時顯示在線人員列表,這里應用了 Ajax 技術。實現實時顯示在線人員列表的 具體步驟如下: 1、編寫自定義的 JavaScript 函數 showOnline(),用于實例化 Ajax 對象, showOline()函數的具體代碼如下: functionfunction showOnline() varvarloader=newnewnet.AjaxRequest(“

41、online.jsp?nocache=“+newnew Date().getTime(),deal_online,onerror,“GET“); 其中?nocache=“+newnew Date().getTime()的用處是更新在線人員列表。 2、Ajax 進行異步請求目標的 URL 地址是 onlin.jsp,即 JSP 文件。在該文件中,主 要是將保存在集合類中的在線人員列表顯示到頁面。Online.jsp 頁面的代碼如下: 歡迎來到心之語聊天室! 所有 人 0) String username=“; amount=vector.size(); forfor(intint i=0;i )

42、“ 當前在線人 3、在聊天室的主界面中,將左側用于顯示在線人員列表的單元格的 id 屬性設置為 online,用于實時顯示在線人員列表,具體代碼如下: 在線人員列表 4、編寫 Ajax 的回調函數 deal_online(),用于將獲取的在線人員列表賦值給 id 為 online 的標記的 innerHYML 屬性。Deal_online()函數的具體代碼如下: function deal_online() online.innerHTML=this.req.responseText; 5、為了讓頁面載入后就調用 Ajax 獲取在線人員列表,并且每隔 10 秒鐘便獲取一次 數據,還需要在頁面中

43、添加 JavaScript 代碼,具體代碼如下: window.setInterval(“showOnline();“,10000); window.onload=functionfunction() showOnline(); /當頁面載入后顯示在線人員列表 4.4 實現用戶發(fā)言 在聊天室程序中一個必不可少的功能就是實現用戶發(fā)言,設計中,用戶發(fā)言區(qū)位于 聊天室主界面的底部,如圖:4-4 用戶發(fā)言模塊。 圖 4-4 用戶發(fā)言模塊 實現用戶發(fā)言的具體步驟如下: 1、在頁面的合適位置添加用于收集用戶發(fā)言信息的表單及表單元素,關鍵代碼如下: $username 對 表情 無表情的 微笑著 笑呵呵地

44、熱情的 溫柔的 紅著臉 幸福的 嘟著嘴 熱淚盈眶的 依依不舍的 得意的 神秘兮兮的 惡狠狠的 大聲的 生氣的 幸災樂禍的 同情的 遺憾的 正義凜然的 嚴肅的 慢條斯理的 無精打采的 說: 字體顏色: 默認顏色 紅色熱情 藍色開朗 桃色浪漫 綠色青春 青色清爽 紫色拘謹 暗夜興奮 深藍憂郁 卡其制服 鎦金歲月 湖波蕩漾 發(fā)亮藍紫 愛的暗示 墨綠深沉 煙雨蒙蒙 聊天對象文本框設置為只讀屬性是用戶就不能手動輸入聊天對象,因此還需要提供 選擇聊天對象的功能,可以通過在主頁面中添加選擇聊天對講的 JavaScript 自定義函數及 在線人員列表中添加超鏈接實現。實現將選擇的聊天對象添加到聊天對象文本框的

45、 JavaScript 代碼如下: functionfunction set(selectPerson) /自動添加聊天對象 ifif(selectPerson!=“$username“) form1.to.value=selectPerson; elseelse alert(“請重新選擇聊天對象!“); 2、編寫自定義的 JavaScript 函數 send(),用于調用 Ajax 實現用戶發(fā)言。在函數中, 首先驗證用戶輸入信息的合法性然后再將提交的表單的內容連接為一個參數字符串,最 后實例化 Ajax 對象。Send()函數的具體代碼如下: functionfunction send()

46、/驗證聊天信息并發(fā)送 ifif(form1.to.value=“) alert(“請選擇聊天對象!“);returnreturn falsefalse; ifif(form1.content1.value=“) alert(“發(fā)送信息不可以為空!“);form1.content1.focus();returnreturn falsefalse; VarVarparam=“from=“+form1.from.value+“ varvarloader=newnewnet.AjaxRequest(“Messages?action=sendMessage“,deal_send,onerror, “PO

47、ST“,param); 3、在聊天室相關的 Servlet 實現類中添加發(fā)送聊天信息的方法 sendMessages()。在 該方法中,首先獲取用戶發(fā)言的相關信息,并將發(fā)言信息保存在應用程序對象 ServletContext 中,然后通過 RequsetDispatcher 對象的 forward()方法將請求轉發(fā)。 SendMessages()方法的具體代碼如下: publicpublic voidvoid sendMessages(HttpServletRequest request, HttpServletResponse response) throwsthrows ServletEx

48、ception, IOException response.setContentType(“text/html;charset=UTF-8“); request.setCharacterEncoding(“UTF-8“); Random random = newnew Random(); String from = request.getParameter(“from“); /發(fā)言人 String face = request.getParameter(“face“); /表情 String to = request.getParameter(“to“); /接收者 String color

49、= request.getParameter(“color“); /字體顏色 String content = request.getParameter(“content“); /發(fā)言內容 String sendTime =new Date().toLocaleString(); /發(fā)言時間 ServletContext application = getServletContext(); String sourceMessage = application.getAttribute(“message“).toString(); trytry /發(fā)言時間 sourceMessage += “

50、+ from + “ + face + “對“ + to + “說:“ + “ + content + “(“ + sendTime + “) “;application.setAttribute(“message“,sourceMessage); request.getRequestDispatcher(“Messages?action=getMessages catchcatch (Exception ex) Logger.getLogger(Messages.classclass.getName().log(Level.SEVERE, nullnull, ex); 4.5 實時顯示聊天內

51、容 在聊天室程序中另一個必不可少的功能就是顯示聊天內容。這個版塊是在主界面的 右側,如圖 4-5 聊天內容模塊。 圖 4-5 聊天內容模塊 在實現顯示聊天內容功能時,為了實時顯示聊天內容,這里應用了 Ajax 技術,技術 Ajax 重構的方法,實現實時顯示聊天內容的具體步驟如下: 1、編寫自定義的 JavaScript 函數 showContent(),用于實例化 Ajax 對象。 showContent()函數的具體代碼如下: functionfunction showContent() varvarloader1=newnewnet.AjaxRequest(“Messages?action

52、=getMessages 2、從上可以看出,Ajax 進行異步請求目標的 URL 地址為 MessagesAction?action=getMessage。從該 URL 地址可以看出,在進入主界面前會調用 聊天室相關的 Servlet 實現類中的 getMessages()。getMessage()方法的具體代碼如下: publicpublic voidvoid getMessages(HttpServletRequest request,HttpServletResponse response) response.setContentType(“text/html;charset=UTF-8

53、“); trytry request.getRequestDispatcher(“content.jsp“).forward(request, response); catchcatch (Exception ex) Logger.getLogger(Messages.classclass.getName().log(Level.SEVERE, nullnull, ex); 3、編寫顯示聊天內容的 JSP 頁面 content.jsp,在該頁面中只需要應用 EL 表達式將 返回的執(zhí)行結果輸出即可,具體代碼如下: $message 4、在聊天室主界面的右側俠士聊天內容的單元格中添加一個 id 屬

54、性為 content 的 標記,用于實時顯示聊天內容,具體代碼如下:聊天內容 5、編寫 Ajax 的回調函數 deal_content(),在這個函數中,首先獲取 Ajax 處理頁面的 返回值,然后取出字符串中的 Unicode 空白符,最后判斷在獲取信息時是否產生錯誤, 如果是,則退出聊天室,否則將獲取的聊天內容輔助給 id 為 cotent 的標記的 innerHTML 屬性,deal_content()函數的具體代碼如下: functionfunction deal_content() varvar returnValue=thisthis.req.responseText;/獲取Aja

55、x處理頁的返回值 varvar h=returnValue.replace(/s/g,“);/去除字符串中的Unicode空白符 ifif(h=“error“) /alert(“您的賬戶已經過期,請重新登錄!“); Exit(); elseelse content.innerHTML=sysBBS+returnValue+“; document.getElementById(content).scrollTop = document.getElementById(content).scrollHeight*2;/當聊天信息超過一屏時, 設置最先發(fā)送的聊天信息不顯示 6、為了讓頁面載入后就調用

56、Ajax 獲取聊天內容,并且每隔一秒便獲取一次數據,還 需要在頁面中添加 JavaScript 代碼,具體代碼如下: window.setInterval(“showOnline();“,10000); window.onload=functionfunction() showOnline(); /當頁面載入后顯示在線人員列表 4.6 退出聊天室模塊 在我設計的聊天室中提供了兩種退出聊天室的方法,一種是單擊主頁面中的“退出 聊天室” 按鈕,另一種是單擊瀏覽器的“關閉”按鈕。需要注意的是,無論采用哪種方 法都會彈出如圖 4-6 退出提示。 圖 4-6 退出提示 實現安全退出聊天室的具體步驟如下:

57、 1、在主頁面的合適位置添加“退出聊天室”按鈕,并在按鈕的 onClick 事件中調用 自定義的 javaScript()函數 Exit(),關鍵代碼如下: 2、編寫自定義的 JavaScript 函數 Exit(),在該函數中首先將頁面重定向到退出聊 天室頁面 leave.jsp,然后彈出“彈出歡迎您下次光臨!”對話框,具體代碼如下: functionfunction Exit() window.location.href=“l(fā)eave.jsp“; alert(“歡迎您下次光臨!“); 3、編寫退出聊天室的頁面 leave.jsp,在該頁面中,首先銷毀 Session,然后將頁 面重新定向到

58、登錄頁面。Leave.jsp 頁面的完整代碼如下: 總結 經過一個多月的畢業(yè)設計與開發(fā),聊天室已基本完成,系統需求功能基本 實現,測試運行基本與需求相符。該系統完成了用戶登錄、發(fā)送信息、公開聊 天、查看在線人員的功能。操作簡便,易于使用。 在畢業(yè)設計的初期階段,我主要學習了與本課題相關的理論知識,包括: Ajax、jsp 等相關知識。 在查閱大量資料制訂了系統需求后,在老師的指導下我著手制定了系統的 需求分析規(guī)格說明書和系統概要說明書。接著便進入了系統詳細設計和編碼階 段,在這個階段,由于自己動手經驗不足和對開發(fā)工具的陌生,系統遇到了很 多大大小小的問題,在一次次克服困難的過程中,我得到了極大

59、的鍛煉,基本 上掌握了一些的編程技巧,同時也獲得了許多寶貴的軟件開發(fā)經驗和技巧,這 為我今后的學習工作打下了堅實的基礎。 在這段時間里我學到了很多以前沒有學到的知識,同時也將以前所學過的 知識運用到實踐項目中,在提高理論知識的基礎上,也充分地鍛煉了自己的動 手能力。 當然這個系統還存在許多有待完善之處: 功能相對較少,有待于添加,比方說像文件傳輸,查找,語音等功能。 在文字傳送的同時增加表情發(fā)送的功能; 界面設計的不夠精致美觀。由于自己經驗不足且時間有限,所以界面設計不 盡人意; 用戶的權限設置應更加嚴謹,層次更加清晰,多功能的實現不同權限的用 戶對系統不同功能的操作。 除了以上列舉的一些不足

60、之處外,此系統還有其它很多功能需要增強,由 于個人水平有限,時間也比較緊,只能實現系統的基本操作,對其它功能我想 更進一步的學習并完善。 通過這次畢業(yè)設計,我更深刻的認識到了教學實踐在大學課程中的重要性, 同時也發(fā)覺到了自己在學習方面存在的不足之處,在以后的學習中我會努力改 進這些不足、不斷提高自己的動手實踐能力。 致 謝 衷心感謝在做畢業(yè)設計的這幾個月中老師的幫助,首先要向我的導師致以 崇高的敬意。導師在專業(yè)課程的學習、素材的收集、課題的確立、資料的查閱 都給以的熱忱的關懷和細心的指導。老師嚴謹的治學態(tài)度、淵博的學識、對事 業(yè)的兢兢業(yè)業(yè)、不斷進取的精神,為我今后的生活及工作樹立了榜樣,我的點

61、 滴進步無不凝結著導師的心血。 還要感謝各位任課老師,老師們深厚的學術功底、旺盛的工作熱情和平易 近人的態(tài)度是我學習的榜樣。 感謝審閱本文的老師,感謝你們在百忙之中抽出寶貴時間來審閱本文,并 期待你們的批評指正。 最后,再次向各位老師的關心和幫助表示衷心的感謝! 參考文獻 1 譚日森.Ajax 技術的特點及發(fā)展前景J.黑龍江科技信息,2007,21:87. 2 張峰,宋莉.JSP 的研究與應用J.科技信息(學術研究),2008,03:1415. 3 劉亮亮,王寧,王亞飛.XMLHttpRequest 異步功能在 Web 開發(fā)中的實現J.黑龍江科 技信息, 2009,29:3. 4 Linda

62、Dailey PaulsonBuilding rich web applications with AjaxJ.Computer,2005,10:1417. 5 Mark Frydenberg.A Multi-Tiered Web Development Capstone Project Using Databases, Web Services, and AJAXJ.Information Systems Education Journal,2008,37:315. 6 黃華.AJAX 技術及應用綜述J.科技資訊,2007,11:87. 7 王錕,方明.Ajax 技術研究與應用J.現代電子技

63、術,2007,6:9398. 8 韓學洲.基于 AJAX 的 Web 應用存在問題研究J.寧波職業(yè)技術學院學報, 2008,05:8486. 9 冉春玉, 童瑩.Web2.0 與 Ajax 技術解析J.河南科技,2010,09:5556. 10 呂林濤, 萬經華, 周紅芳.基于 AJAX 的 Web 無刷新頁面快速更新數據方法J.計 算機應用研究,2006,11:199223. 11 冉春玉, 童瑩.Ajax 技術及其 Web 開發(fā)J.福建電腦,2007,07:100101. 12利用網絡聊天室進行數字參考咨詢服務研究以碧聊聊天室為實例 胡國芳,楊 新涯.J. 情報雜志, 2004, (05)

64、 計算機科學與技術專業(yè) 畢業(yè)實習及畢業(yè)論文畢業(yè)實習及畢業(yè)論文(設計設計)規(guī)范規(guī)范 計算機科學與工程學院 計算機科學與技術系 2015 年 03 月 目目 錄錄 一一. 畢業(yè)實習及畢業(yè)論文畢業(yè)實習及畢業(yè)論文(設計設計)的主要目的的主要目的.1 二二. 指導教師選聘及對指導教師的要求指導教師選聘及對指導教師的要求.1 三三. 畢業(yè)實習分組及實施計劃畢業(yè)實習分組及實施計劃.3 四四. 畢業(yè)論文畢業(yè)論文(設計設計)的選題的選題.3 五畢業(yè)實習及畢業(yè)論文五畢業(yè)實習及畢業(yè)論文(設計設計)的進度控制的進度控制4 六、畢業(yè)論文的結構與格式六、畢業(yè)論文的結構與格式7 七、畢業(yè)實習以及畢業(yè)論文七、畢業(yè)實習以及畢業(yè)

65、論文(設計設計)成績評定成績評定10 八、畢業(yè)設計的歸檔工作八、畢業(yè)設計的歸檔工作10 九、畢業(yè)實習及畢業(yè)論文九、畢業(yè)實習及畢業(yè)論文(設計設計)領導小組領導小組12 附件附件 1:任:任務務書的填寫格式書的填寫格式.14 附件附件 2:開題報告的填寫格式:開題報告的填寫格式.18 附件附件 3:文獻綜述格式:文獻綜述格式.22 附件附件 4:實習報告封面格式:實習報告封面格式.27 附件附件 5:實習鑒定表格式:實習鑒定表格式.28 附件附件 6:實習成績評定表格式:實習成績評定表格式.29 附件附件 7:畢業(yè)論文格式的基本要求:畢業(yè)論文格式的基本要求.30 附件附件 8:畢業(yè)設計袋封面填寫格式:畢業(yè)設計袋封面填寫格式.39 附件附件 9:畢業(yè)論文驗收表:畢業(yè)論文驗收表.40 附件附件 10:畢業(yè)設計:畢業(yè)設計(論文論文)評論標準評論標準.41 附件附件 1111:畢業(yè)設計資料電子文檔目錄結構:畢業(yè)設計資料電子文檔目錄結構.46 根據學院有關學生實習的規(guī)定和本專業(yè)教學計劃的安排,對計算機科學與技術專 業(yè)學生畢業(yè)實習及畢業(yè)論文(設計)作如下具體安排: 一一. . 畢業(yè)實習及畢業(yè)論文畢業(yè)實習及畢業(yè)論文( (設計設計) )的主要目的的主要目的 1、 畢業(yè)實習的主要目的: (1) 通過畢業(yè)實習,使學生從理論走

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!