j2ee聊天程序(附代碼)_第1頁
j2ee聊天程序(附代碼)_第2頁
j2ee聊天程序(附代碼)_第3頁
j2ee聊天程序(附代碼)_第4頁
j2ee聊天程序(附代碼)_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、湖南農業(yè)大學課程論文學 院:東方科技學院 班 級:08級計算機3班姓 名: 嚴 亮 學 號:課程論文題目:聊天室程序設計課程名稱:J2EE編程技術評閱成績:成績評定教師簽名:日期: 年 月 日網絡聊天程序設計學 生:嚴 亮(東方科技學院08級計算機3班,學號)摘要:網絡已經遍布我們的生活中,網絡聊天室也是人們交流娛樂的好場所。成為人們快速獲取、發(fā)布和傳遞信息的重要渠道,它在人們的政治經濟和生活等各個領域發(fā)揮著重要,滿足了基本聊天的需求,有注冊新用戶,公共聊天和私人聊天。管理后臺等功能。網站總體分為四大模塊,分別是:歡迎界面、管理員模塊、用戶管理模塊、聊天模塊。JAVA能夠快速有效的解決問題,此

2、系統(tǒng)能夠實現信息交互以及信息的保存等功能。 關鍵字: 聊天室,網絡,J2EE 1、J2EE簡介J2EE Java2平臺企業(yè)版(Java 2 Platform, Enterprise Edition) J2EE核心是一組技術規(guī)范與指南,其中所包含的各類組件、服務架構及技術層次,均有共通的標準及規(guī)格,讓各種依循J2EE架構的不同平臺之間,存在良好的兼容性,解決過去企業(yè)后端使用的信息產品彼此之間無法兼容,,企業(yè)內部或外部難以互通的窘境。1.1 J2EE的概念目前,Java 2平臺有3個版本,它們是適用于小型設備和智能卡的Java 2平臺Micro版(Java 2 Platform Micro Edi

3、tion,J2ME)、適用于桌面系統(tǒng)的Java 2平臺標準版(Java 2 Platform Standard Edition,J2SE)、適用于創(chuàng)建服務器應用程序和服務的Java 2平臺企業(yè)版(Java 2 Platform Enterprise Edition,J2EE)。J2EE是一種利用Java 2平臺來簡化企業(yè)解決方案的開發(fā)、部署和管理相關的復雜問題的體系結構。J2EE技術的基礎就是核心Java平臺或Java 2平臺的標準版,J2EE不僅鞏固了標準版中的許多優(yōu)點,例如"編寫一次、隨處運行"的特性、方便存取數據庫的JDBC API、CORBA技術以及能夠在Inter

4、net應用中保護數據的安全模式等等,同時還提供了對 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技術的全面支持。其最終目的就是成為一個能夠使企業(yè)開發(fā)者大幅縮短投放市場時間的體系結構。 1.2 J2EE的優(yōu)勢J2EE為搭建具有可伸縮性、靈活性、易維護性的商務系統(tǒng)提供了良好的機制: 1.2.1. 保留現存的IT資產:由于企業(yè)必須適應新的商業(yè)需求,利用已有的企業(yè)信息系統(tǒng)方面的投資,而不是重新制定全盤方案就變得很重要。這樣,一個以漸進的(而不是激進的,全盤否定的)方式建立在已有系統(tǒng)之上的服務器端平臺機制是

5、公司所需求的。J2EE架構可以充分利用用戶原有的投資,如一些公司使用的BEA Tuxedo、IBM CICS, IBM Encina,、Inprise VisiBroker 以及Netscape Application Server。這之所以成為可能是因為J2EE擁有廣泛的業(yè)界支持和一些重要的'企業(yè)計算'領域供應商的參與。每一個供應商都對現有的客戶提供了不用廢棄已有投資,進入可移植的J2EE領域的升級途徑。由于基于J2EE平臺的產品幾乎能夠在任何操作系統(tǒng)和硬件配置上運行,現有的操作系統(tǒng)和硬件也能被保留使用。 1.2.2. 高效的開發(fā):J2EE允許公司把一些通用的、很繁瑣的服務端

6、任務交給中間供應商去完成。這樣開發(fā)人員可以集中精力在如何創(chuàng)建商業(yè)邏輯上,相應地縮短了開發(fā)時間。高級中間件供應商提供以下這些復雜的中間件服務: o 狀態(tài)管理服務 - 讓開發(fā)人員寫更少的代碼,不用關心如何管理狀態(tài),這樣能夠更快地完成程序開發(fā)。 o 持續(xù)性服務 - 讓開發(fā)人員不用對數據訪問邏輯進行編碼就能編寫應用程序,能生成更輕巧,與數據庫無關的應用程序,這種應用程序更易于開發(fā)與維護。 o 分布式共享數據對象CACHE服務 - 讓開發(fā)人員編制高性能的系統(tǒng),極大提高整體部署的伸縮性。 1.2.3. 支持異構環(huán)境:J2EE能夠開發(fā)部署在異構環(huán)境中的可移植程序?;贘2EE的應用程序不依賴任何特定操作系統(tǒng)

7、、中間件、硬件。因此設計合理的基于J2EE的程序只需開發(fā)一次就可部署到各種平臺。這在典型的異構企業(yè)計算環(huán)境中是十分關鍵的。J2EE標準也允許客戶訂購與J2EE兼容的第三方的現成的組件,把他們部署到異構環(huán)境中,節(jié)省了由自己制訂整個方案所需的費用。 1.2.4. 可伸縮性:企業(yè)必須要選擇一種服務器端平臺,這種平臺應能提供極佳的可伸縮性去滿足那些在他們系統(tǒng)上進行商業(yè)運作的大批新客戶。基于J2EE平臺的應用程序可被部署到各種操作系統(tǒng)上。例如可被部署到高端UNIX與大型機系統(tǒng),這種系統(tǒng)單機可支持64至256個處理器。(這是NT服務器所望塵莫及的)J2EE領域的供應商提供了更為廣泛的負載平衡策略。能消除系

8、統(tǒng)中的瓶頸,允許多臺服務器集成部署。這種部署可達數千個處理器,實現可高度伸縮的系統(tǒng),滿足未來商業(yè)應用的需要。 1.2.5.穩(wěn)定的可用性:一個服務器端平臺必須能全天候運轉以滿足公司客戶、合作伙伴的需要。因為INTERNET是全球化的、無處不在的,即使在夜間按計劃停機也可能造成嚴重損失。若是意外停機,那會有災難性后果。J2EE部署到可靠的操作環(huán)境中,他們支持長期的可用性。一些J2EE部署在WINDOWS環(huán)境中,客戶也可選擇健壯性能更好的操作系統(tǒng)如Sun Solaris、IBM OS/390。最健壯的操作系統(tǒng)可達到99.999%的可用性或每年只需5分鐘停機時間。這是實時性很強商業(yè)系統(tǒng)理想的選擇。1.

9、3 J2EE 的結構這種基于組件,具有平臺無關性的J2EE 結構使得J2EE 程序的編寫十分簡單,因為業(yè)務邏輯被封裝成可復用的組件,并且J2EE 服務器以容器的形式為所有的組件類型提供后臺服務. 因為你不用自己開發(fā)這種服務, 所以你可以集中精力解決手頭的業(yè)務問題。 容器和服務容器設置定制了J2EE服務器所提供得內在支持,包括安全,事務管理,JNDI(Java Naming and Directory Interface)尋址,遠程連接等服務,以下列出最重要的幾種服務: J2EE安全(Security)模型可以讓你配置 web 組件或enterprise bean ,這樣只有被授權的用戶才能訪問

10、系統(tǒng)資源. 每一客戶屬于一個特別的角色,而每個角色只允許激活特定的方法。你應在enterprise bean的布置描述中聲明角色和可被激活的方法。由于這種聲明性的方法,你不必編寫加強安全性的規(guī)則。 J2EE 事務管理(Transaction Management)模型讓你指定組成一個事務中所有方法間的關系,這樣一個事務中的所有方法被當成一個單一的單元. 當客戶端激活一個enterprise bean中的方法,容器介入一管理事務。因有容器管理事務,在enterprise bean中不必對事務的邊界進行編碼。要求控制分布式事務的代碼會非常復雜。你只需在布置描述文件中聲明enterprise bea

11、n的事務屬性,而不用編寫并調試復雜的代碼。容器將讀此文件并為你處理此enterprise bean的事務。 JNDI 尋址(JNDI Lookup)服務向企業(yè)內的多重名字和目錄服務提供了一個統(tǒng)一的接口,這樣應用程序組件可以訪問名字和目錄服務. J2EE遠程連接(Remote Client Connectivity)模型管理客戶端和enterprise bean間的低層交互. 當一個enterprise bean創(chuàng)建后, 一個客戶端可以調用它的方法就象它和客戶端位于同一虛擬機上一樣. 生存周期管理(Life Cycle Management)模型管理enterprise bean的創(chuàng)建和移除,一

12、個enterprise bean在其生存周期中將會歷經幾種狀態(tài)。容器創(chuàng)建enterprise bean,并在可用實例池與活動狀態(tài)中移動他,而最終將其從容器中移除。即使可以調用enterprise bean的create及remove方法,容器也將會在后臺執(zhí)行這些任務。 數據庫連接池(Database Connection Pooling)模型是一個有價值的資源。獲取數據庫連接是一項耗時的工作,而且連接數非常有限。容器通過管理連接池來緩和這些問題。enterprise bean可從池中迅速獲取連接。在bean釋放連接之可為其他bean使用。 容器類型 J2EE應用組件可以安裝部署到以下幾種容器中

13、去: EJB 容器管理所有J2EE 應用程序中企業(yè)級bean 的執(zhí)行. enterprise bean 和它們的容器運行在J2EE 服務器上.Web 容器管理所有J2EE 應用程序中JSP頁面和Servlet組件的執(zhí)行. Web 組件和它們的容器運行在J2EE 服務器上. 應用程序客戶端容器管理所有J2EE應用程序中應用程序客戶端組件的執(zhí)行. 應用程序客戶端和它們的容器運行在J2EE 服務器上. Applet 容器是運行在客戶端機器上的web瀏覽器和 Java 插件的結合.。2.網絡聊天室系統(tǒng)2.1網絡聊天室系統(tǒng)設計的目的和意義 從世界上第一臺計算機誕生至今只有半個多世紀,然而正因為它的方便、

14、快捷、實用,已被應用到各個領域。隨著網絡的出現,信息資源的實時共享成為現實,更重要的是它提供了一種極為直接的交互方式,當然這種交互不單是指數據、信息之間的傳遞,也包括人與人之間的互相交流,各種聊天軟件和在線聊天室正是承載這類交互的媒介。J2EE體系結構提供中間層集成框架用來滿足無需太多費用而又需要高可用性、高可靠性以及可擴展性的應用的需求。通過提供統(tǒng)一的開發(fā)平臺,J2EE降低了開發(fā)多層應用的費用和復雜性,同時提供對現有應用程序集成強有力支持,完全支持Enterprise JavaBeans,有良好的向導支持打包和部署應用,添加目錄支持,增強了安全機制,提高了性能。隨著互聯網的發(fā)展,人們通過網絡

15、可以更方便快捷地進行信息交流和學習,聊天系統(tǒng)可以為大家提供一個更好的交流平臺,在這個平臺上,人們可以通過文字與符號進行實時的交談、聊天,它是一個向整個因特網開放的地方,是提供給網民一個交友與娛樂的場所,在聊天室里網民可選擇自已的聊天對象,與其進行對話交流,是網民之間相互溝通、交流情感的最佳方式之一。同時它已成為各網站提供的一個服務標準,是吸引網民,提高人氣的一個重要方式。 本網絡聊天室是用最新的JSP(JavaServer Pages)技術實現,主要有公共聊天、私人聊天、趣味競猜、管理后臺等功能。通過聊天室系統(tǒng)的設計,熟悉網站建設基本操作。包含網頁制作、服務器的建立與管理、數據庫建立與使用等,

16、掌握網站的基本架構、服務器與數據庫的連接等,強化自己的基本設計能力。 2.2網絡聊天室系統(tǒng)功能 實現聊天室基本功能, 與聊天室成員一起聊天,可以與聊天室成員私聊, 可以改變聊天內容風格,用戶注冊(含頭像)、登錄,服務器監(jiān)控聊天內容,服務器過濾非法內容,服務器發(fā)送通知,服務器踢人,保存服務器日志,保存用戶聊天信息。2.3 網絡聊天室系統(tǒng)設計技術 2.3.1 服務器端1.處理用戶注冊2.處理用戶登錄3.處理用戶發(fā)送信息4.處理用戶得到信息5.處理用戶退出2.2.2 客戶端1.用戶注冊界面及結果2.用戶登錄界面及結果3.用戶發(fā)送信息界面及結果4.用戶得到信息界面及結果5.用戶退出界面及結果2.4 性

17、能需求運行環(huán)境:Windows 9x、2000、xp、2003,Linux必要環(huán)境:JDK 1.5 以上硬件環(huán)境:CPU 400MHz以上,內存64MB以上2.5 客戶端結構ChatClient.java 為客戶端程序啟動類,負責客戶端的啟動和退出。Login.java 為客戶端程序登錄界面,負責用戶帳號信息的驗證與反饋。Register.java 為客戶端程序注冊界面,負責用戶帳號信息的注冊驗證與反饋。ChatRoom.java 為客戶端程序聊天室主界面,負責接收、發(fā)送聊天內容與服務器端的Connection.java 親密合作。Windowclose 為ChatRoom.java的內部類,

18、負責監(jiān)聽聊天室界面的操作,當用戶退出時返回給服務器信息。Clock.java 為客戶端程序的一個小程序,實現的一個石英鐘功能。2.6系統(tǒng)實現原理當用戶聊天時,將當前用戶名、聊天對象、聊天內容、聊天語氣和是否私聊進行封裝,然后與服務器建立Socket連接,再用對象輸出流包裝Socket的輸出流將聊天信息對象發(fā)送給服務器端;當用戶發(fā)送聊天信息時,服務端將會收到客戶端用Socket傳輸過來的聊天信息對象,然后將其強制轉換為Chat對象,并將本次用戶的聊天信息對象添加到聊天對象集Message中,以供所有聊天用戶訪問。接收用戶的聊天信息是由多線程技術實現的,因為客戶端必須時時關注更新服務器上是否有最新

19、消息,在本程序中設定的是3秒刷新服務器一次,如果間隔時間太短將會增加客戶端與服務器端的通信負擔,而間隔時間長就會讓人感覺沒有時效性,所以經過權衡后認為3秒最佳,因為每個用戶都不可能在3秒內連續(xù)發(fā)送信息。當每次用戶接收到聊天信息后將會開始分析聊天信息然后將適合自己的信息人性化地顯示在聊天信息界面上。2.7 問題陳述1.接受用戶注冊信息并保存在一個基于文件的對象型數據庫。2.能夠允許注冊過的用戶登陸聊天界面并可以聊天。3.能夠接受私聊信息并發(fā)送給特定的用戶。4.服務器運行在自定義的端口上1001。5.服務器監(jiān)控用戶列表和用戶聊天信息(私聊除外)。6.服務器踢人,發(fā)送通知。7.服務器保存日志。3.詳

20、細設計3.1 網絡聊天室系統(tǒng)總體設計  圖3.1網站總體模塊圖 網站總體分為四大模塊,分別是:歡迎界面、管理員模塊、用戶管理模塊、聊天模塊。 其中歡迎模塊就是開始的歡迎頁面,是全網站的首頁,也是帶領用戶進入本網站的向導,其中包含進入登錄界面和進入注冊界面兩個鏈接。  圖3.2管理員模塊 管理員模塊是管理員進行對網站的管理使用的模塊,有管理員登錄頁面、管理員管理頁面和管理員操作反饋頁面等組成,主要實現對已注冊用戶和在線用戶的管理,通過對用戶的了解確定用戶這冊身份的去與留。這主要通過管理員擁有的對數據庫操作的權限,從而決定是否從數據庫內將用戶信息刪除以達到踢出用戶的功

21、能。利用網站內提供的javaBean實現和數據庫連接,在管理員操作頁面內設有動態(tài)delete刪除SQL語句,通過<jsp:userBean/>語句連接數據庫,通過獲取文本框內管理員輸入的用戶名,設立相應數據集,對應數據庫,首先執(zhí)行select選取操作以確定數據庫中是否有管理員輸入的用戶名,若錯誤的用戶名則提示管理員錯誤信息,若正確的用戶名則對數據庫執(zhí)行delete操作,刪除數據庫內用戶的信息,從而達到刪除用戶的的功能。圖3.3 用戶模塊 用戶模塊主要包括用戶登錄和用戶注冊兩個單元,分別是用來給用戶登錄和用戶注冊使用的頁面。已注冊用戶的登錄實現主要通過將用戶的提交用戶名與數據庫中的對

22、比,查找是否有該用戶名,使用動態(tài)select選取SQL語句。如果數據庫內沒有該用戶名,則該用戶顯然尚未注冊,反饋相應信息;如果有該用戶名則繼續(xù)對應用戶提交的密碼與數據庫內該用戶名項的密碼相對比,一樣則允許用戶登錄,并將頁面轉到聊天界面,否則提示相應錯誤信息。并同時將登錄成功的用戶的用戶名寫進application從而在聊天界面的用戶列表里能被顯示出來。4實現效果1.導入數據庫2.導入工程3.運行測試4.運行服務器監(jiān)聽5.運行客戶端6.運行第二個用戶5 網絡聊天室系統(tǒng)數據庫設計 .4.1數據庫 6 網絡聊天室系統(tǒng)使用說明 6.1網絡聊天室系統(tǒng)操作說明注冊頁面提供了多個輸入框,分別供用戶輸入其用戶

23、名、密碼及密碼確認、e-mail和qq等,在確認用戶名沒有沖突后,將用戶所填信息輸入數據庫,以供用戶再次登錄使用。對輸入的用戶名及密碼項有必填要求,并對用戶名長度有2-10字節(jié)長度要求,即如果是使用英文用戶名,那么您的用戶名就不能超過10個字母,而如果您使用的是中文用戶名的話,您的用戶名就不能超過5個漢字了,密碼及密碼確認項則必須相同,e-mail的格式也必須正確,否則會在左上方有相應錯誤提示。圖6.1注冊界面截圖 用戶的申請帳號是有長度限制的,如后面標記“長度是能是2-10之間”,即只能是2-10個字節(jié),如果使用英文名注冊的話,就只能在2-10個字母之間,中文名的話就在一個到五個漢字之間,還

24、有e-mail的格式需要填寫正確!帳號、密碼、密碼確認、e-mail這三項是必填的,因此少寫一項或某項不合要求的話,會被拒絕注冊的,當然,會有相應的信息提示,可按提示操作。 6.2聊天界面的一些說明 聊天對象的選擇中,是不能對自己說話的,當然同樣,你也不能對大家說“悄悄話”,只能是公共聊天。 7 結束語 本文討論了如何利用j2ee技術開發(fā)聊天室系統(tǒng),基本滿足了結構化、界面友好、速度快、安全性以及穩(wěn)定性等特點。系統(tǒng)著重研究并實現了網絡應用的部分。根據實現的情況看,具有較友好的聊天界面生成效果,以及流暢的網絡通信效果。生成的聊天室可以達到基本的聊天要求,具有較高的研究價值。系統(tǒng)具有目前聊天室的基本

25、功能:包括支持多種頭像,字色,語氣選擇,支持emote,支持私聊,支持在線聊友查找,支持分屏顯示,支持用戶定制自己的私人頭像,支持臟話過濾,支持嘉賓聊天。屏蔽掉自己討厭的人物,可以給所有聊友發(fā)公共信息。具有速度快,高穩(wěn)定性,占用系統(tǒng)資源少,用戶界面友好等特點。J2EE 帶動了Java在企業(yè)級的發(fā)展,但隨著一些輕量級組件的出現,J2EE的臃腫和開發(fā)難度高的缺點越來越引起了許多人的注意,EJB2.0也被許多人稱為累贅。隨著Spring,Hibernate的不斷完善和發(fā)展,EJB3.0出現了,成為了未來Java 企業(yè)級開發(fā)的新的方向。通過畢業(yè)設計,發(fā)現自己在理論研究和實際工作能力等方面都得到了提高,

26、受益匪淺。同時在老師的指導和同學的幫助下,及時總結研究成果,這些無疑會對我今后的工作和學習帶來很大的幫助。 8 參考文獻 1. 吳目誠. DREAMWEAVER MX 2004中文版數據庫網頁制作應用基礎教程M.北京:中國鐵道出版社, 2006,23-170; 2. 薩師煊.數據庫系統(tǒng)概論M.北京: 高等教育出版, 2000,15-240; 3. 孫鑫. Java Web開發(fā)詳解-XML+XSLT+Servlet+JSP深入剖析與實例應用M.北京:電子工業(yè)出版社,2006年4月,53-177; 4 Bruce Eckel(美).java編程思想M.北京:機械工業(yè)出版社, 2005年5月,344

27、-348;311; 5 計磊,李里.精通j2ee 整合應用案例M.北京:人民郵電出版社,2006年8月,343-383; 附源代碼:AppServer.javaimport java.io.*;import .*;import java.util.*;/* * <p> * Title: HappyChat聊天系統(tǒng)服務器程序 * </p> * <p> * Description: 聊天服務器 * </p> * <p> * Copyright: Copyright (c) 2006 * </p> * <p> * F

28、ilename: AppServer.java * </p> * 創(chuàng)建服務器<br /> * * version 1.0 * */public class AppServer extends Thread private ServerSocket serverSocket;private ServerFrame sFrame;private static Vector userOnline = new Vector(1, 1);private static Vector v = new Vector(1, 1);/* * 創(chuàng)建服務器 啟動服務監(jiān)聽1001端口 * */p

29、ublic AppServer() sFrame = new ServerFrame();try serverSocket = new ServerSocket(1001);/ 獲取服務器的主機名和IP地址InetAddress address = InetAddress.getLocalHost();sFrame.txtServerName.setText(address.getHostName();sFrame.txtIP.setText(address.getHostAddress();sFrame.txtPort.setText("1001"); catch (IOException e) fail(e, "不能啟動服務!");sFrame.txtStatus.setText("已啟動.");this.start(); / 啟動

溫馨提示

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

評論

0/150

提交評論