《Web開發(fā)》課程設(shè)計(jì)報(bào)告--聊天室
《《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>