《Web開發(fā)》課程設(shè)計(jì)報(bào)告--聊天室

上傳人:na****u 文檔編號(hào):56906468 上傳時(shí)間:2022-02-22 格式:DOC 頁(yè)數(shù):33 大?。?.09MB
收藏 版權(quán)申訴 舉報(bào) 下載
《Web開發(fā)》課程設(shè)計(jì)報(bào)告--聊天室_第1頁(yè)
第1頁(yè) / 共33頁(yè)
《Web開發(fā)》課程設(shè)計(jì)報(bào)告--聊天室_第2頁(yè)
第2頁(yè) / 共33頁(yè)
《Web開發(fā)》課程設(shè)計(jì)報(bào)告--聊天室_第3頁(yè)
第3頁(yè) / 共33頁(yè)

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

20 積分

下載資源

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

資源描述:

《《Web開發(fā)》課程設(shè)計(jì)報(bào)告--聊天室》由會(huì)員分享,可在線閱讀,更多相關(guān)《《Web開發(fā)》課程設(shè)計(jì)報(bào)告--聊天室(33頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、 《Web開發(fā)》 課程設(shè)計(jì)報(bào)告 (2011— 2012學(xué)年 第 2 學(xué)期) 題 目: 聊 天 室 專 業(yè): 計(jì)算機(jī)網(wǎng)絡(luò)技術(shù) 班 級(jí): 1班 姓名學(xué)號(hào): xxx(1007052139) 指導(dǎo)教師: 成 績(jī): 商丘職業(yè)技術(shù)學(xué)院計(jì)算機(jī)系 2012 年 6 月 5 日 目 錄 目 錄 II 1

2、 概 述 1 1.1 設(shè)計(jì)目標(biāo) 1 1.2 項(xiàng)目規(guī)劃 1 1.3 開發(fā)工具的選擇 2 2 需求分析 3 2.1 需求分析 3 2.2 數(shù)據(jù)庫(kù)表設(shè)計(jì) 4 3 系統(tǒng)總體設(shè)計(jì) 6 3.1系統(tǒng)結(jié)構(gòu) 6 4系統(tǒng)功能模塊實(shí)現(xiàn) 7 4.1 登錄和注冊(cè)界面模塊 7 4.2 選擇聊天室界面模塊 10 4.3 聊天室主界面模塊 12 4.4 用管理員高級(jí)功能管理模塊 20 5 調(diào)試分析 28 6心得體會(huì) 29 致 謝 30 參 考 文 獻(xiàn) 31

3、 final, evitar vinculant quan, una desviació de la prestació de barres d'acer i distorsió esquelet canvis. Gruix de protecció de coixí B ha de ser espaiat coixí precís, adequat. C d'acer esquelets vinculant és completa, apareix inclinat a un costat, filferro d'amarratge haurien de ser lligats en la

4、 forma de vuit. Subjecció trobar les omissions, espaiat de estrep és equivocat ha de ser puntualment ajustat. ⑷ Quan l'abocament de formigó, refor?at per la pressió lateral es produeix on el despla?ament, ajust oportuna. 6.2.3 ⑴ soldadura arc procés de soldadura per neteja oportuna, soldar el refor?

5、 de superfície llisa i suau transició de soldadura, farcit de cràter. B segons el grau d'acer, diàmetre, articulació i soldadura posició, seleccioneu els diàmetres elèctrode adequat i la soldadura actual per garantir la fusió del metall de soldadura i acer bo. L'eix d'acer C hauria de complir amb el

6、s requisits pertinents, garantir que la dimensió és conforme als requisits. Bon contacte D terra de soldadura ha de ser refor?at per evitar d'arc i crema d'acer. 6.3 formigó abocament de formigó 6.3.1 enginyeria cel?lular provoca: vibració que vibra bretxa plantilla falses o falta massa gran conduei

7、x a pèrdua de purins de ciment, més varetes o pedres és massa gran. Precaucions: usar i moure que el vibrador, escala abans d'abocar, l'antiga i la nova gamma conjunta es cura vibrant. Superfície d'instal?lació de plantilla hauria de netejar plantilles i plantilla... 6.3.9 causes d'esquerdes en temp

8、s de conservació General de formigó irregularitats superficials, aigua s'evapora components massa ràpids o pesats en contracció de temperatura. Mesures preventives: immediatament després de l'escena inicial de formigó cobert amb plàstic film i manteniment; posar cobertes de llana de roca a l'alta te

9、mperatura, la humitat celebraciI 1 概 述 1.1 設(shè)計(jì)目標(biāo) 從功能角色上來(lái)講,在線聊天室可以有兩種類型的用戶,普通用戶和管理員。 其中,普通用戶在登錄后,可以選擇性的進(jìn)入不同的聊天室,并通過(guò)聊天界面,向一人或多人發(fā)送聊天消息,進(jìn)行聊天交流。如果是第一次進(jìn)入到該聊天室,還可以通過(guò)本模塊提供的注冊(cè)功能,提交注冊(cè)信息,成為本聊天室的用戶。 管理員在登陸后,除了可以聊天外,還可以擁有各種管理的權(quán)限,比如查看所有在線用戶信息,還可以把一些不遵守聊天規(guī)則的用戶趕出聊天室,甚至從數(shù)據(jù)庫(kù)里把一些惡意聊天用戶除名。 1.2 項(xiàng)

10、目規(guī)劃 本聊天室需要提供如下的界面和功能。 1、需要提供支持用戶登陸以及身份驗(yàn)證的WEB界面和實(shí)現(xiàn)后臺(tái)對(duì)應(yīng)功能的模塊。在這個(gè)模塊中,能根據(jù)登入者擁有的權(quán)限,分別開放不同的權(quán)限。 2、需要一個(gè)支持用戶注冊(cè)的界面和對(duì)應(yīng)的后臺(tái)模塊。 3、需要為普通用戶和管理員提供一個(gè)瀏覽所有聊天室的界面和對(duì)應(yīng)后臺(tái)功能模塊。在這個(gè)界面中,用戶可以選擇性的進(jìn)入不同的聊天室。 4、需要為普通用戶和管理員提供一個(gè)支持多人聊天的界面和對(duì)應(yīng)的后臺(tái)模塊。在這個(gè)界面中用戶和管理員可以選擇聊天對(duì)象,也可以想聊天對(duì)象發(fā)送信息。 5、需要為管理員提供一個(gè)查詢所有用戶的界面和對(duì)應(yīng)的功能模塊,這個(gè)界面其實(shí)就是

11、管理員實(shí)現(xiàn)其管理功能的界面,在這個(gè)界面里,管理員可以實(shí)現(xiàn)“趕人”的功能,也可以實(shí)現(xiàn)“刪除聊天用戶”的動(dòng)作。 1.3 開發(fā)工具的選擇 JSP(JavaServer Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁(yè)HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。用JSP開發(fā)的Web應(yīng)用是跨平臺(tái)的,即能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。 JSP技術(shù)使用Java編

12、程語(yǔ)言編寫類XML的tags和scriptlets,來(lái)封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)的處理邏輯。網(wǎng)頁(yè)還能通過(guò)tags和 scriptlets訪問(wèn)存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁(yè)邏輯與網(wǎng)頁(yè)設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。Web服務(wù)器在遇到訪問(wèn)JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。JSP與Java Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回該客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。JSP的1.0規(guī)范的最后版本是1999年9月推出的,12月又推出了1.1規(guī)范

13、。目前較新的是JSP1.2規(guī)范,JSP2.0規(guī)范的征求意見稿也已出臺(tái)。 JSP頁(yè)面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁(yè)面被客戶端請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁(yè)面返回給客戶端的瀏覽器。Java Servlet 是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP配合才能完成。 JSP的優(yōu)勢(shì) (1)一次編寫,到處運(yùn)行。在這一點(diǎn)上Java比PHP更出色,除了系統(tǒng)之外,代碼不用做任何更改。 (2)系統(tǒng)的多平臺(tái)支持?;旧峡梢栽谒衅脚_(tái)上的任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP/P

14、HP的局限性是顯而易見的。 (3)強(qiáng)大的可伸縮性。從只有一個(gè)小的Jar文件就可以運(yùn)行Servlet/JSP,到由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺(tái)Application進(jìn)行事務(wù)處理,消息處理,一臺(tái)服務(wù)器到無(wú)數(shù)臺(tái)服務(wù)器,Java顯示了一個(gè)巨大的生命力。 (4)多樣化和功能強(qiáng)大的開發(fā)工具支持。這一點(diǎn)與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺(tái)之下。 2 需求分析 2.1 需求分析 21世紀(jì)是網(wǎng)絡(luò)的時(shí)代,Internet的普及已經(jīng)影響了傳統(tǒng)的交流方式。網(wǎng)絡(luò)聊天室系統(tǒng)是計(jì)算機(jī)網(wǎng)絡(luò)發(fā)展的產(chǎn)物,是最為常見、最

15、受廣大互聯(lián)網(wǎng)使用者所認(rèn)可的基于Web的網(wǎng)絡(luò)應(yīng)用系統(tǒng)。隨著互聯(lián)網(wǎng)的發(fā)展,人們通過(guò)網(wǎng)絡(luò)可以更方便快捷地進(jìn)行信息交流和學(xué)習(xí),聊天系統(tǒng)可以為大家提供一個(gè)更好的交流平臺(tái),在這個(gè)平臺(tái)上,人們可以通過(guò)文字與符號(hào)進(jìn)行實(shí)時(shí)的交談、聊天,它是一個(gè)向整個(gè)因特網(wǎng)開放的地方,是提供給網(wǎng)民一個(gè)交友與娛樂(lè)的場(chǎng)所,在聊天室里網(wǎng)民可選擇自已的聊天對(duì)象,與其進(jìn)行對(duì)話交流,是網(wǎng)民之間相互溝通、交流情感的最佳方式之一。 從傳播方式上講, 聊天室傳播是非線性傳播。非線形傳播指聊天室傳播的信息是為無(wú)數(shù)的共享空間的網(wǎng)絡(luò)用戶所發(fā)出的, 任何擁有網(wǎng)絡(luò)傳播權(quán)利的人都可以得到, 網(wǎng)絡(luò)打破了傳統(tǒng)媒體單向傳送信息的格局, 信息傳播者與接收者之間的互

16、動(dòng)變得切實(shí)可行。從傳播的信息內(nèi)涵上講, 聊天室的消息結(jié)構(gòu)是無(wú)中心的。聊天室所給受 眾帶來(lái)的信息與感受作為一種現(xiàn)代生活資源, 在實(shí)現(xiàn)了從傳統(tǒng)大眾傳播的單向傳播向多向傳播的轉(zhuǎn)變后, 極大地拓展了現(xiàn)代生活空間, 使傳播者與受眾之間的直接連通成為可能。這一轉(zhuǎn)變使整個(gè)傳播結(jié)構(gòu)與傳播效果發(fā)生了巨大變化, 是傳統(tǒng)媒體無(wú)法比擬的。 根據(jù)CNNIC 發(fā)布的第十五次中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告, 有3.5%的商業(yè)網(wǎng)站提供網(wǎng)絡(luò)聊天。熱衷于網(wǎng)上聊天的人群大部分集中于16~24 年齡段上, 經(jīng)濟(jì)上沒有獨(dú)立, 又缺乏網(wǎng)上支付手段的特點(diǎn)也是聊天室不為商業(yè)網(wǎng)站看好的重要理由之一。目前經(jīng)營(yíng)商獲得收益的渠道有兩條: 在

17、線廣告和電子商務(wù)。青少年在經(jīng)濟(jì)上沒有自立, 經(jīng)營(yíng)商通常很難通過(guò)電子商務(wù)獲得收入; 而在在線廣告方面, 各商業(yè)網(wǎng)站目前的廣告客戶主要目標(biāo)人群鎖定中、高收入的白領(lǐng)階層, 面向青少年消費(fèi)市場(chǎng)的網(wǎng)上廣告幾乎沒有, 無(wú)法通過(guò)網(wǎng)上廣告獲得收益。因此, 對(duì)于青少年聚集的網(wǎng)上聊天室, 網(wǎng)絡(luò)公司自然沒有太高的熱情。 實(shí)際上, 青少年的消費(fèi)市場(chǎng)一向是規(guī)??捎^、利潤(rùn)豐厚的一塊大蛋糕。無(wú)論流行音樂(lè)、新潮服飾、娛樂(lè)場(chǎng)所, 青少年消費(fèi)都是其中的主力。論市場(chǎng)規(guī)模, 全國(guó)青少年消費(fèi)市場(chǎng)的總規(guī)模不低于一千億。我們看到, 并非聊天的人群本身缺乏商業(yè)價(jià)值, 而是目前沒有好的辦法將這種價(jià)值加以發(fā)掘。在線廣告理應(yīng)成為聊天室獲得商業(yè)收益

18、的主要手段。 隨著研發(fā)技術(shù)的進(jìn)步,qq.msn等聊天軟件的面世,取代了聊天室。同時(shí),聊天室內(nèi)用戶過(guò)激,不法等言辭,也是聊天室逐漸沒落的原因。但是,聊天軟件的局限性,不比聊天室開放性強(qiáng),面向廣。只有真正了解聊天室的主要使用人群, 才能更好地設(shè)置聊天室的主題、話題、頁(yè)面風(fēng)格等。要重視聊天室產(chǎn)品的氛圍經(jīng)濟(jì)效益, 可以成為各種汽車俱樂(lè)部、攀巖俱樂(lè)部、自行車俱樂(lè)部等的合作伙伴, 吸引更多會(huì)員,成為網(wǎng)上會(huì)所。聊天室還應(yīng)注意自身形象的塑造, 只有個(gè)性化、特色化才能使聊天室產(chǎn)品脫穎而出。要注意適當(dāng)?shù)膹V告宣傳。在以上的種種因素下,本課題的研究方向就是運(yùn)用JSP技術(shù)營(yíng)造一個(gè)簡(jiǎn)單,友好的網(wǎng)絡(luò)聊天室,為互聯(lián)

19、網(wǎng)使用者提供學(xué)習(xí),討論和交流的平臺(tái)。 2.2 數(shù)據(jù)庫(kù)表設(shè)計(jì) 在ChatRoom數(shù)據(jù)庫(kù)中建一個(gè)名為userinfo的表,如表3.2所示。 列名 數(shù)據(jù)類型 長(zhǎng)度 可否為空 說(shuō)明 ID int 11 NOT NULL 索引號(hào),主鍵,自增 nickName varchar 50 NOT NULL 用戶昵稱、用戶昵稱 userPassword Varchar 50 NOT NULL 用戶密碼 role tinyint 1 NOT NULL 用戶權(quán)限0代表普通會(huì)員,1代表管理員 lastLoginTime date NULL 用戶最后登陸

20、時(shí)間 表3.2userinfo數(shù)據(jù)表 在ChatRoom數(shù)據(jù)庫(kù)中新建一個(gè)名為msginfo的表,用來(lái)保存聊天信息。在顯示聊天記錄時(shí),可以通過(guò)查詢語(yǔ)句對(duì)不同的用戶顯示不同的信息。如表3.3所示。 列名 數(shù)據(jù)類型 長(zhǎng)度 可否為空 說(shuō)明 ID int 11 NOT NULL 索引號(hào),主鍵,自增 chatRoom varchar 50 NOT NULL 聊天信息對(duì)應(yīng)的房間 msgFrom varchar 50 NOT NULL 聊天信息發(fā)言人 msgTo varchar 50 NOT NULL 聊天信息發(fā)表對(duì)象 chatTim

21、e datetime NOT NULL 聊天信息發(fā)表時(shí)間 chatAction varchar 50 NULL 聊天信息的動(dòng)作和表情 msgContent varchar 200 NOT NULL 聊天信息的內(nèi)容 secret tinyint 1 NOT NULL 0代表非悄悄話,1代表悄悄話 表3.3msginfo表 在ChatRoom數(shù)據(jù)庫(kù)表中新建一個(gè)名為onlineUser的表,用來(lái)保存在線用戶信息。如表3.4所示。 列名 數(shù)據(jù)類型 長(zhǎng)度 可否為空 說(shuō)明 ID int 20 NOT NULL 索引號(hào)、主鍵、

22、自增 chatRoom varchar 50 NOT NULL L 用戶所在的房間 nickName varchar 50 NOT NULL 用戶的昵稱 lastChatRoom dateTime NULL 用戶最后發(fā)言時(shí)間 denyRoom varchar 255 NULL 用戶被封的時(shí)間 表3.4 onlineUser表 3 系統(tǒng)總體設(shè)計(jì) 3.1系統(tǒng)結(jié)構(gòu) 本系統(tǒng)將分為四大模塊,即數(shù)據(jù)庫(kù)通用模塊、用戶登錄與注冊(cè)模塊、聊天主模塊、管理員模塊,具體描述如表3.1所示

23、。 模塊名 文件名 功能描述 數(shù)據(jù)庫(kù)通用管理描述 BaseConn.jsp 連接和數(shù)據(jù)的查詢更新操作 用戶登錄與注冊(cè)模塊 login.jsp 用戶登入界面 chklogin.jsp 用戶登錄后臺(tái)處理界面 Checklogin.java 封裝登陸后的javabean 聊天室模塊 chkSession.jsp 檢查session信息判斷用戶是否登陸 chatRoomList.jsp 聊天房間選擇界面 chatRoomList.java 封裝選擇聊天房間的javabean chatRoom.jsp 聊天框架界面 red

24、irectChatRoom.jsp 轉(zhuǎn)向聊天室中轉(zhuǎn)界面 input.jsp 聊天室輸入界面 sendMsg.jsp 聊天信息發(fā)送界面 userList.jsp 在線用戶列表界面 dataValue.jsp 聊天信息顯示界面 logout.jsp 離開聊天室 changeRoom.jsp 切換聊天房間 Message.java 聊天信息封裝javabean ChatRoom.java 封裝聊天功能的Javabean 管理員模塊 advanced.jsp 管理員管理高級(jí)界面 kick.jsp 踢人功能 delete.jsp 刪除用戶 表3.

25、1 系統(tǒng)結(jié)構(gòu)表 4系統(tǒng)功能模塊實(shí)現(xiàn) 4.1 登錄和注冊(cè)界面模塊 登錄界面模塊是通過(guò)訪問(wèn)數(shù)據(jù)庫(kù)中的userinfo表中的Name和Password兩個(gè)字段來(lái)判斷用戶名和密碼是否匹配,如果匹配就登入成功,否則登入失敗,如果用戶是第一次登錄該聊天室,則自動(dòng)注冊(cè)。如圖4.1所示。 圖4.1 登錄界面 核心代碼: package net.chat; import java.sql.*; import java.util.*; import java.text.SimpleDateFormat; public class CheckLogin { public St

26、ring checklogin(String userName,String userPassword) throws SQLException,ClassNotFoundException { BaseConn conn = null; try { conn = new BaseConn(); String sql = "select * from userInfo where nickName=?"; PreparedStatement ps = conn.preparedStatement(sql

27、); ps.setString(1,userName); ResultSet rs = conn.executeQuery(); if(rs.next()) { if(rs.getString("userPassword").equals(userPassword)) { SimpleDateFormat cal = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time = cal.format(new java.util.Date(

28、)); sql="update userInfo set lastLoginTime=? where nickName=?"; ps=conn.preparedStatement(sql); ps.setString(1,time); ps.setString(2,userName); conn.executeUpdate(); return "SUCCESS_LOGIN"; } else return "WRONG_PASSWO

29、RD"; } else return "NONE_USER"; }catch(SQLException ex) { ex.printStackTrace(); throw ex; }catch(ClassNotFoundException ex) { ex.printStackTrace(); throw ex; } finally { conn.closeDB(); } } public boolean saveToDataBase(String userN

30、ame,String userPassword) throws SQLException,ClassNotFoundException { BaseConn conn = null; try { conn = new BaseConn(); SimpleDateFormat cal = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time = cal.format(new java.util.Date());

31、 String sql = "insert into userInfo(nickName,userPassword,lastLoginTime,role) values(?,?,?,?)"; PreparedStatement ps = conn.preparedStatement(sql); ps.setString(1,userName); ps.setString(2,userPassword); ps.setString(3,time); ps.setInt(4,0);

32、 conn.executeUpdate(); return true; }catch(SQLException ex) { ex.printStackTrace(); throw ex; }catch(ClassNotFoundException ex) { ex.printStackTrace(); throw ex; }finally { conn.closeDB

33、(); } } } 4.2 選擇聊天室界面模塊 如果登錄成功則進(jìn)入選擇聊天室界面的模塊,如圖4.2所示: 圖4.2 選擇聊天室 核心代碼: <%@ page language="java" import="java.util.*,net.chat.*" pageEncoding="GB2312"%> <%@include file="chkSession.jsp"%>

34、ead> 聊天室列表 歡迎您:<%=session.getAttribute("_USER")%>希望您在這里聊得愉快!

36、ut type="radio" name="chatRoom" value="情感傾訴">情感傾訴 <%//這里通過(guò)javaBean組件獲取每個(gè)聊天室房間的在線人數(shù)%> [<%=chatList.countUser("情感傾訴")%>]人

交友天地

37、e> [<%=chatList.countUser("交友天地")%>]人

龍門客棧 [<%=chatList.countUser("龍門客棧")%>]人

38、lue="進(jìn)入">

4.3 聊天室主界面模塊 此界面由三個(gè)用戶輸入模塊、聊天信息顯示模塊和在線用戶列表等三個(gè)模塊組成,如圖4.3所示。 圖4.3聊天室主窗體 核心代碼: package net.chat;

42、 import java.text.SimpleDateFormat; import java.sql.*; public class Message { private String chatRoom; private String msgFrom; private String msgTo; private String chatAction; private String msgContent; private int secret; public void setChatRoom(String chatRoom)

43、 { this.chatRoom = chatRoom; } public void setMsgFrom(String msgFrom) { this.msgFrom = msgFrom; } public void setMsgTo(String msgTo) { this.msgTo = msgTo; } public void setChatAction(String chatAction) { this.chatAction = chatAction; } public void setMsg

44、Content(String msgContent) { this.msgContent = msgContent; } public void setSecret(int secret) { this.secret = secret; } public boolean saveToDataBase()throws SQLException,ClassNotFoundException { BaseConn conn = null; try { conn = new BaseConn(); SimpleDat

45、eFormat cal = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time = cal.format(new java.util.Date()); String sql="insert into msgInfo(chatRoom,msgFrom,msgTo,chatTime,chatAction,msgContent,secret) values(?,?,?,?,?,?,?)"; PreparedStatement ps = conn.preparedStatement(sql);

46、 ps.setString(1,chatRoom); ps.setString(2,msgFrom); ps.setString(3,msgTo); ps.setString(4,time); ps.setString(5,chatAction); ps.setString(6,msgContent); ps.setInt(7,secret); conn.executeUpdate(); sql = "update onlineUser set lastChatTime = ?

47、where nickName=? and chatRoom= ?"; ps = conn.preparedStatement(sql); ps.setString(1,time); ps.setString(2,msgFrom); ps.setString(3,chatRoom); conn.executeUpdate(); return true; }catch(SQLException ex) { ex.printStackTrace(); throw ex; }catch

48、(ClassNotFoundException ex) { ex.printStackTrace(); throw ex; } } } <%@include file="chkSession.jsp"%> <%@ page language="java" import="java.sql.*" pageEncoding="GB2312"%> <% String msgString = ""; try { String sql = "select*from msgInfo where ID in(select top 30 ID fr

50、om msgInfo where chatRoom=? Order by chatTime DESC) order by chatTime"; String userName=session.getAttribute("_USER").toString(); PreparedStatement ps = conn.preparedStatement(sql); ps.setString(1,session.getAttribute("_CHAT_ROOM").toString()); ResultSet rs = conn.executeQuery();

51、//下面while循環(huán)里的程序就是實(shí)現(xiàn)控制聊天信息顯示格式的功能 while(rs.next()) { String msgFrom = rs.getString("msgFrom");//獲取聊天信息發(fā)送者 String msgTo=rs.getString("msgTo");//獲取聊天信息接收者 String action = rs.getString("chatAction");//獲取聊天表情 String msgContent=rs.getString("msgContent");//獲取聊天信息內(nèi)容 int secr

52、et = rs.getInt("secret");//獲取是否悄悄話 //判斷是否系統(tǒng)公告 if(msgFrom.equals("系統(tǒng)公告")) msgString=msgString+"

系統(tǒng)公告:"+msgContent+"
"; //判斷是否悄悄話 else if(secret==0) { //判斷是否使用聊天表情 if(action==null||action.equals("no")) msgString=msgString+"

53、lor=blue>"+msgFrom+"對(duì)"+msgTo+"說(shuō):"+msgContent+"

"; else msgString=msgString+"
" +msgFrom+""+action.replaceAll("B","" +msgTo+"")+msgContent+"
"; }

54、//如果是悄悄話只在發(fā)送者和接收者的頁(yè)面中顯示 else if(msgFrom.equals(userName)||msgTo.equals(userName)) { if(action==null||action.equals("no")) msgString=msgString+"

[悄悄話]" +msgFrom+"對(duì)"+msgTo+"說(shuō):"

55、 +msgContent+"

"; else msgString=msgString+"
[悄悄話]" +msgFrom+""+action.replaceAll("B","" +msgTo+"")+msgContent+"
"; } } }catch(Exce

56、ption ex) { ex.printStackTrace(); out.println("系統(tǒng)維護(hù)"); }finally { conn.closeDB(); } %> <%@ page language="java" cont

57、entType="text/html; charset=GB2312" pageEncoding="GB2312" %> <%@include file="chkSession.jsp"%> <%@page import="java.sql.*"%> <% //檢查當(dāng)前用戶是否已經(jīng)被踢出聊天室,如果已經(jīng)被踢出聊天室后面程序不再執(zhí)行 if(chatRoomObj.denyUser(session.getAttribute("_USER").toString(), session.getAttribute("_CHAT_

60、ROOM").toString())) { out.println(""); out.println(""); //response.sendRedirect("chatRoomList.jsp"); return; } String userName =session.getAttribute("_USER")

61、.toString(); //斷用戶是否已經(jīng)和聊天室斷開連接 if (userName == null) { out.println(""); out.println(""); return; } String chatRoom =(String)session.getAttribute("_CHAT_ROOM").toString(); %>

62、"#0000ff">在線人員 [ <%=list.countUser(chatRoom)%>] 所有人
<% try { //獲取當(dāng)前聊天房間中的所有用戶列表 String sql="select * from onlineUser where chatRoom='"+session.getAttribute("_CHAT_ROOM")+"'"; ResultSet

63、rs = conn.executeQuery(sql); while(rs.next()) { %> [")> <%=rs.getString("nickName")%>]
<% } }catch(Exception ex) { out.println("數(shù)據(jù)庫(kù)維護(hù)"); }finally { } %>

64、DY> 4.4 管理員高級(jí)管理功能界面 如果是管理員登錄,則可通過(guò)高級(jí)功能進(jìn)入高級(jí)管理界面,可以實(shí)現(xiàn)踢人、刪除用戶以及查看所有用戶的功能,如圖4.4所示 圖4.4管理員高級(jí)管理界面 核心代碼: <%@ page language="java" import="java.sql.*" pageEncoding="UTF-8"%>

65、tional//EN"> 高級(jí)管理頁(yè)面 <% try { //檢查用戶是否管理員用戶,如果是管理員用戶才執(zhí)行下面代碼 if(chatRoom.checkAdmin(session.getAttribute("_USE

展開閱讀全文
溫馨提示:
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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


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