web課程設計—— 聊天室_第1頁
已閱讀1頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  計算機科學與技術系</b></p><p><b>  課程設計報告 </b></p><p>  2012-2013學年第二學期</p><p><b>  2013年6月</b></p><p><b>  目錄</b>&

2、lt;/p><p><b>  目錄2</b></p><p><b>  第一章、緒 論3</b></p><p>  1.1題目簡要描述3</p><p>  1.2團隊分工安排3</p><p>  第二章、系統(tǒng)需求分析3</p><p>

3、<b>  2.1問題描述3</b></p><p><b>  2.2系統(tǒng)功能3</b></p><p>  第三章、系統(tǒng)設計4</p><p>  3.1邏輯以及物理結構4</p><p>  3.2系統(tǒng)的開發(fā)環(huán)境選擇5</p><p>  3.3系統(tǒng)的數(shù)據(jù)庫設

4、計5</p><p>  3.4系統(tǒng)的界面設計6</p><p>  3.5系統(tǒng)的結構設計6</p><p>  第四章、系統(tǒng)實現(xiàn)及測試8</p><p>  4.1主要模塊的實現(xiàn)8</p><p>  4.2系統(tǒng)實現(xiàn)過程中遇到的主要問題和解決方案8</p><p>  4.3系統(tǒng)實

5、現(xiàn)的特色之處13</p><p>  4.4系統(tǒng)的測試開展13</p><p><b>  第五章、總結13</b></p><p>  第六章、參考文獻14</p><p><b>  緒論</b></p><p>  1.1課程設計名稱:聊天室</p>

6、<p>  設計內(nèi)容:設計一個在線聊天室,實現(xiàn)用戶之間實時地文字聊天。</p><p><b>  任務和要求</b></p><p>  系統(tǒng)內(nèi)用戶分為管理員和普通用戶兩類,普通用戶可以在線聊天,管理員負責維護聊天室和用戶。</p><p>  1系統(tǒng)功能和界面參考QQ聊天室。</p><p>  2

7、提供注冊功能,系統(tǒng)的訪問者可以注冊成為普通用戶。</p><p>  3普通用戶登陸后首先顯示聊天大廳,在大廳中有多個聊天室,選擇其中一個進入后可進行聊天。</p><p>  4用戶在聊天室中可以看到本聊天室的其他用戶,可以對所有人發(fā)言,也可以只對某一個用戶發(fā)言。發(fā)言可以選擇公開和秘密兩種,如果公開則所有人都能看到該發(fā)言內(nèi)容;如果是秘密,則只有接受者才能看到。聊天室的發(fā)言面板采用滾屏

8、方式實時顯示所有用戶的發(fā)言</p><p>  5用戶可以退出聊天室,到大廳后再選擇進入其他聊天室,也可以從大廳退出系統(tǒng)。</p><p>  6管理員登陸后可以維護聊天室和用戶。管理員可以增加、修改和刪除聊天室,可以刪除注冊的普通用戶。</p><p><b>  1.2團隊分工:</b></p><p>  1、

9、注冊、登錄、找回密碼、維護個人信息部分:王冬梅</p><p>  2、聊天發(fā)言部分: 周麗娟</p><p>  3、管理員維護添加修改刪除部分:高昌發(fā)</p><p><b>  二、系統(tǒng)需求分析</b></p><p><b>  2.1問題描述</b></p><p>

10、;  題目要求的是做一個聊天室軟件,能夠?qū)崿F(xiàn)多人同時在線聊天,客戶能夠注冊系統(tǒng)登錄進入大廳并且選擇房間進入房間,在相應的房間內(nèi)可以對其它人私聊或者公共聊天。如果公聊則所有人都能看到該發(fā)言內(nèi)容;如果是秘密,則只有接受者才能看到;還可以維護個人信息,在大廳里修改密碼等操作。而管理員可以維護聊天室和用戶,能夠查看所有用戶,對相關房間進行添加刪除修改查看聊天記錄等操作。</p><p><b>  2.2系統(tǒng)功

11、能</b></p><p>  依據(jù)題目,本模塊需解決的首要問題是管理員登錄并且進入管理員大廳,若管理員不存在還需對其進行注冊。進入后臺有用戶信息管理、聊天室信息管理和聊天室模塊管理。 </p><p>  為了實現(xiàn)這個目標,首先管理員進行登錄,進入管理后臺??梢圆榭醋缘挠脩粜畔?,用戶進入的房間,房間擁有的人數(shù)以及聊天記錄等。數(shù)據(jù)流圖如下所示:</p><

12、p><b>  系統(tǒng)設計</b></p><p>  3.1系統(tǒng)采用的邏輯以及物理結構</p><p>  普通用戶進入網(wǎng)頁進行登錄或者注冊或者找回密碼,登錄后進入大廳并且選擇房間進入房間,在相應的房間內(nèi)可以對其它人私聊或者公共聊天。如果公開則所有人都能看到該發(fā)言內(nèi)容;如果是秘密,則只有接受者才能看到。大廳還可以對用戶信息進行維護和修改、注銷、退出等功能。而管理

13、員可以維護聊天室和用戶信息,能夠?qū)ο嚓P房間和相關用戶進行添加刪除修改的操作。</p><p>  普通用戶登錄流程圖如下:</p><p>  管理員登錄流程如下:</p><p>  3.2 系統(tǒng)的開發(fā)環(huán)境選擇</p><p>  tomcat6.5+SQL server2005 + Java JDK 6.0+Myeclipse6.5<

14、;/p><p>  3.3 系統(tǒng)的數(shù)據(jù)庫設計,各表展示以及表與表之間的E-R關系圖</p><p><b>  表匯總</b></p><p>  表1.用戶信息表(xinxi)</p><p>  表2.管理員信息表(guanli)</p><p>  表3.在線用戶信息表(line)</p&

15、gt;<p>  表4.聊天信息表(chat)</p><p>  表5.房間信息表(room)</p><p><b>  表.6</b></p><p>  3.4 系統(tǒng)的界面設計</p><p><b>  普通用戶登錄界面</b></p><p><

16、;b>  管理員登錄界面:</b></p><p><b>  大廳界面:</b></p><p><b>  3.5系統(tǒng)結構設計</b></p><p>  本系統(tǒng)分為三大模塊,即登錄注冊模塊、聊天室模塊、管理員模塊,具體描述如下:</p><p><b>  四、系統(tǒng)

17、實現(xiàn)及測試</b></p><p>  4.1、主要模塊的設計</p><p>  主要界面包括管理員登錄、用戶信息管理、聊天模塊管理、聊天信息模塊管理,界面如下:</p><p>  guanli.jsp:管理員登陸界面;</p><p>  guanlilogon.jsp:登錄后與數(shù)據(jù)庫進行連接判斷的界面,如果輸入的管理員名稱

18、和密碼與數(shù)據(jù)庫中的相匹配則登錄成功;</p><p><b>  核心代碼:</b></p><p>  <%request.setCharacterEncoding("utf-8");</p><p>  String user=request.getParameter("username");&

19、lt;/p><p>  String pwd=request.getParameter("pwd"); </p><p>  Connection conn = null;</p><p>  PreparedStatement pstm = null;</p><p>  ResultSet rs = null;</p

20、><p>  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");</p><p>  String url="jdbc:sqlserver://localhost:1433;databasename=lts";</p><p>  conn = Driver

21、Manager.getConnection(url,"sa","123456");</p><p>  String sql = "select * from guanliyuan where yonghuming=? and mima=?" ;</p><p>  pstm = conn.prepareStatement(sql

22、);</p><p>  pstm.setString(1,user);</p><p>  pstm.setString(2,pwd);</p><p>  rs = pstm.executeQuery();%><% </p><p>  if(rs.next())</p><p>  { respons

23、e.sendRedirect("houtai.jsp?user="+user);}else{%></p><p>  <h1>用戶名或密碼錯誤!請<a href="guanli.jsp">重新登錄</a>?。?!</h1></p><p>  <%} if(rs!=null) rs.clos

24、e();</p><p>  if(pstm!=null) pstm.close();</p><p>  if(conn!=null) conn.close(); %></p><p>  guanlizc.jsp :管理員的注冊界面;</p><p>  guanlizc1.jsp ,guanlizc2jsp:注冊后的判斷正確與否以

25、及正確后將信息存儲到對應的數(shù)據(jù)庫中去;</p><p>  foundpwd.jsp,found.jsp:忘記密碼,然后根據(jù)當初在注冊時所填的密保問題已經(jīng)密保答案來達到重新設置密碼的目的;right.jsp,error.html,right1.jsp,mimatishi.jsp:在修改密碼過程中,對應的正確或錯誤頁面提示,以及相應頁面出現(xiàn)后對應的處理方法; </p><p>  houta

26、i.jsp:登陸界面成功登陸后,進入到的后臺管理界面;</p><p>  核心代碼:<body></p><p>  <% Date d = new Date();</p><p>  String date = d.toLocaleString();</p><p>  String user1 = request.g

27、etParameter("user");</p><p>  session.setAttribute("user",user1);</p><p>  String user = (String)session.getAttribute("user");%></p><p>  <table

28、border="1" align="center" width="80%" height="550" cellspacing="0" cellpadding="12"></p><p>  <tr bgcolor="cyan" colspan="2

29、"></p><p>  <th colspan="2" height="70" align="center" > </p><p>  <font size="5">聊天室后臺管理系統(tǒng)</font></p><p>  <h

30、4 align="right">今天是<%=date %>,歡迎<%=user %></h4></p><p><b>  </th></b></p><p><b>  </tr></b></p><p>  <tr valign

31、="top" bgcolor="#87F0FF" ></p><p>  <td width="22%"></p><p><b>  <ul></b></p><p>  <li><a href="yonghu.jsp&quo

32、t;>用戶信息管理</a><br></br></li></p><p>  <li><a href="lts.jsp">聊天室模塊管理</a><br></br></li></p><p>  <li><a href="

33、ltxinxi.jsp">聊天信息模塊管理</a><br></br></li></p><p>  <li><a href="#" target="_blank">其它模塊管理</a><br></br></li></p>&l

34、t;p>  <li><a href="#" target="_blank">其它模塊管</a><br></br></li></p><p>  <li><a href="#" target="_blank">其它模塊管</a&g

35、t;<br></br></li></p><p>  <li><h3><a href="dating1.jsp">進入大廳</a></h3></li></p><p>  <li><h3><a href="guanli.js

36、p">退出</a></h3></li></p><p>  </ul> </td></p><p>  <th align="center" size="30">這里是后臺管理!</th></tr></p><p&

37、gt;<b>  </table></b></p><p><b>  </body></b></p><p>  yonghu.jsp:用戶信息管理界面;</p><p><b>  核心代碼: </b></p><p>  <% reques

38、t.setCharacterEncoding("utf-8");</p><p>  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");</p><p>  String url ="jdbc:sqlserver://localhost:1433;databasena

39、me=lts";</p><p>  Connection conn = DriverManager.getConnection(url, "sa","123456");</p><p>  Statement stm = conn.createStatement();</p><p>  String sql =

40、 "select * from xinxi";</p><p>  ResultSet rs = stm.executeQuery(sql);</p><p>  %> <h3>用戶的信息如下:</h3> </p><p>  <table border="1"

41、 align="center" width="100%" height="400" ></p><p>  <tr bgcolor="cyan" align="center"></p><p>  <td>用戶名</td> <td>昵稱

42、</td> <td>性別</td> <td>操作選擇項</td></p><p><b>  </tr></b></p><p>  <% while(rs.next()){%></p><p>  <tr align="center&qu

43、ot; bgcolor="#87F0FF"></p><p>  <td><%=rs.getString("yonghuming")%></td></p><p>  <td><%=rs.getString("nicheng")%></td></p

44、><p>  <td><%=rs.getString("xingbie")%></td></p><p>  <td><a href="chakan.jsp?id=<%=rs.getString("xuhao") %>">查看登錄日期</a>&

45、nbsp;</td></tr></p><p>  <% }if(rs!=null) rs.close(); if(stm!=null) stm.close();</p><p>  if(conn!=null) conn.close(); %></p><p>  chakan.jsp:在用戶信息管理界面中對應的查看用戶最近

46、登陸時間的界面;</p><p><b>  核心代碼:</b></p><p><b>  <%</b></p><p>  request.setCharacterEncoding("utf-8");</p><p>  String id=request.getPar

47、ameter("id");</p><p>  Connection conn = null;</p><p>  Statement stm = null;//PreparedStatement語句發(fā)送SQL語句實現(xiàn)CRUD</p><p>  ResultSet rs = null;</p><p>  Class.f

48、orName("com.microsoft.sqlserver.jdbc.SQLServerDriver");</p><p>  String url="jdbc:sqlserver://localhost:1433;Databasename=lts";</p><p>  conn = DriverManager.getConnection(ur

49、l,"sa","123456");</p><p>  stm = conn.createStatement();</p><p>  String sql = "select * from xinxi where xuhao='"+id+"'";</p><p>  r

50、s=stm.executeQuery(sql);</p><p>  String user="";</p><p>  String time="";</p><p>  while(rs.next()){</p><p>  time=rs.getString("lasttime"

51、;);</p><p>  user=rs.getString("yonghuming");</p><p><b>  } %></b></p><p>  <%=user %>的最后一次登錄的時間為:</p><p>  <ul><li><%=tim

52、e %></li></ul></p><p>  <a href="tichu.jsp?xuhao=<%=id %>" >踢出聊天室</a>&nbsp;&nbsp;<a href="yonghu.jsp">返回</a></p><p>  <

53、;%session.setAttribute("name",user);</p><p>  if(rs!=null) rs.close(); if(stm!=null) stm.close();</p><p>  if(conn!=null) conn.close(); %></p><p>  tichu.jsp:如果用戶最近登陸的

54、時間比較久遠,也就是達到3個月沒有登陸了,然后管理員可以對用戶進行刪除的功能;</p><p>  lts.jsp:聊天室管理界面;</p><p>  核心代碼:<table border="1" align="center" width="100%" height="400" ></p&

55、gt;<p>  <tr bgcolor="cyan" align="center"></p><p>  <td>房間序號</td> <td>房間名稱</td> </p><p>  <td>房間最大人數(shù)</td> <td>操作選擇項<

56、;/td></tr></p><p>  <% while(rs.next()){%></p><p>  <tr align="center" bgcolor="#87F0FF"></p><p>  <td><%=rs.getString("us

57、erid")%></td></p><p>  <td><%=rs.getString("roomname")%></td></p><p>  <td><%=rs.getString("maxnum")%></td></p><p

58、>  <td><a href="edit.jsp?no=<%=rs.getString("userid") %>">編輯</a>&nbsp;</p><p>  <a href="javascript:btnDelete('<%=rs.getString("userid&q

59、uot;)%>')">刪除&nbsp;</a></td></p><p><b>  </tr></b></p><p>  add.jsp,addProc.jsp:聊天室的增添功能;</p><p>  edit.jsp,editProc.jsp:聊天室的修改功能;&

60、lt;/p><p>  shanchu.jsp:聊天室的刪除功能;</p><p>  ltxinxi.jsp:聊天信息管理模塊;</p><p>  ltchaxun.jsp:在聊天信息管理界面中,根據(jù)房間名的不同來查看相應的房間中的用戶聊天信息;</p><p><b>  核心代碼:<%</b></p>

61、;<p>  Connection conn3 = null;</p><p>  Statement stm3 = null;</p><p>  ResultSet rs3 = null;</p><p>  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"

62、);</p><p>  String url3="jdbc:sqlserver://localhost:1433;databasename=lts";</p><p>  conn3 = DriverManager.getConnection(url3,"sa","123456");</p><p>

63、;  stm3 = conn3.createStatement();</p><p>  String sql3 = "select * from chat where room='"+name+"'" ;</p><p>  rs3 = stm3.executeQuery(sql3);%></p><p&g

64、t;  <%while(rs3.next()){ %></p><p>  <%=rs3.getString("yhm")%> <%=rs3.getString("date")%> 說:<%=rs3.getString("lr")%> </p><p>  <% }if(r

65、s3!=null) rs3.close();if(stm3!=null)</p><p>  stm3.close(); if(conn3!=null) conn3.close();</p><p><b>  %></b></p><p>  dating1.jsp:在后臺管理中,管理員可以直接其中進入到大廳中去。</p>

66、<p>  4.2、系統(tǒng)實現(xiàn)過程中遇到的主要問題和解決方案</p><p>  一、在對聊天室信息查詢的模塊中,剛開始時總是不能準確的顯示出正確的界面,老是和其他房間信息混淆,輸出的內(nèi)容也是很混亂的,后來我想到的在從數(shù)據(jù)庫中讀取聊天信息時,首先確定房間這個信息,只有在房間對的情況下,再把相應的信息輸出來,這樣在查看聊天信息這個超連接時就要把房間這個關鍵字傳過去,這樣才能保證房間的正確性,然后在一次從數(shù)

67、據(jù)庫中輸出對應的用戶名、時間以及所說的內(nèi)容,這樣就解決了問題。</p><p>  二、還有就是在用戶管理的時候,我們的管理員是要根據(jù)用戶最近一次登陸的時間來看,如果長時間沒有登陸過(我們這里設置時3個月),則管理員通過手動的方法將該用戶刪除,這樣可以起到管理空間的作用,但是在這個時間的獲取上又出現(xiàn)了問題,就是說用戶每次登陸時時間都會發(fā)生改變,所以,后來我在登陸界面的時候就獲取登陸的時間,并且根據(jù)用戶名這個關鍵字

68、對數(shù)據(jù)可信息表中的用戶信息進行更改,將對應的時間改為此刻登陸的時間,這樣數(shù)據(jù)庫中存儲的時間就是用戶最近登陸的時間了,然后在后臺管理時,在對用戶進行查詢登陸時間時,則直接根據(jù)用戶名查詢數(shù)據(jù)庫中對應的最近登陸的時間,這樣管理員就可以準確的判斷出用戶對賬戶的使用情況,也可以根據(jù)時間去刪除對應的用戶。</p><p>  4.3系統(tǒng)實現(xiàn)的特色之處</p><p>  特色之處:我們管理員可以對每個

69、房間的聊天信息進行查詢,這樣使得功能更加的完善,還有就是管理員刪除用戶不是直接刪除的,而是要根據(jù)用戶登錄的時間來判斷的,也就是說可以查看到用戶最近一次登錄的時間,如果用戶最近一次登錄已經(jīng)是3個月甚至更長的話,管理員就可以對其進行刪除操作,這樣使得更加符合實際一些,也更理性化一些。還有就是聊天室也是活動的,也就是說管理員可以根據(jù)需要對房間的增減和刪除,而且這個操作可以直接影響到數(shù)據(jù)庫,也就是會影響到大廳里面的聊天,這樣可以更貼近需求些,而

70、且管理員也可以從后臺直接進入大廳中,去查看相應的內(nèi)容。</p><p>  4.4系統(tǒng)的測試開展</p><p><b>  管理員登錄界面:</b></p><p>  根據(jù)判斷所填的用戶名和密碼在數(shù)據(jù)庫中是否存在,存在則進入,否則顯示錯誤!</p><p><b>  后臺管理界面:</b>&l

71、t;/p><p>  右上角的時間時在進入的時候獲取當前的時間,然后輸出,至于管理員名是在登陸成功時就將用戶名存起來,然后輸出即可,左邊主要有3個功能,分別有一個超鏈接,超鏈接后在右邊框架中顯示。</p><p><b>  用戶信息管理界面:</b></p><p>  右下角之間顯示的內(nèi)容是從數(shù)據(jù)可中讀取出來的,分別在每行有一個查看登陸時間,這

72、樣可以根據(jù)時間來進行刪除操作。</p><p><b>  查看登錄時間界面:</b></p><p>  這個界面是點擊用戶名為高昌發(fā)后面的查看登陸時間而顯示出來的界面,這樣就可以看到用戶登陸的最近時間。</p><p>  聊天室界面管理界面:</p><p>  這個界面是從聊天室管理的數(shù)據(jù)庫中讀出對應的房間名,以

73、及操作。</p><p><b>  聊天信息模塊界面:</b></p><p>  這個界面的右下角是從聊天室數(shù)據(jù)庫中讀取出來的,不過后面的操作選項則是根據(jù)房間名來從聊天內(nèi)容的數(shù)據(jù)庫中讀取出這個聊天室中聊天的內(nèi)容。</p><p><b>  查看聊天信息界面:</b></p><p>  這個是

74、聊天室名為粉色城堡中的聊天內(nèi)容,可以顯示出所有內(nèi)容。</p><p><b>  總結</b></p><p>  短短兩周的課程設計就這樣結束了,暫時不得不和它說聲再見,但我知道此再見肯定會再次見,而且要深入學習。通過本次課程設計,我感受頗多,盡管上課時也認真聽了老師的講課,但是開始面對自己的題目時,簡單的界面還可以完成的,但一些動態(tài)界面有點棘手,需要認真思考,作出

75、判斷。對jsp的認識也更加地深刻了。在這個過程中,我感覺就像人生的一個縮影,充滿了酸甜苦辣。當一個問題想了好久也無法解決時,我感到沮喪與無助。當經(jīng)過努力解決了一個程序上的難題時,我又感到無比的喜悅。經(jīng)過了這次磨練,我又一次感受到只有付出才能有收獲,成功永遠屬于不懈努力的人們。這次課程設計終于結束了,在設計中遇到了很多邏輯連接問題,在老師的幫助下,終于解決了,對此向老師表示感謝。其實在這個系統(tǒng)中還是有一些功能不是很完善的,需要我在后續(xù)的學

76、習過程中來進一步的完善,通過這次的課程設計,我覺得是的我對web的知識有了一個很整體的概念,也使得學習過程中老師傳授的知識進一步的理解和加深,在一個個的問題的解決過程中,有一種明顯的提高的感覺,也許這就是學習的過程我們最希望的吧,我也希望看到自己能力的不斷提高,在后續(xù)的學習過程中,我一定會更加的努力去學,</p><p><b>  參考文獻</b></p><p>

溫馨提示

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

評論

0/150

提交評論