程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2EE >> Spring整合DWR comet 實現無刷新 多人聊天室(5)

Spring整合DWR comet 實現無刷新 多人聊天室(5)

編輯:J2EE

6、 客戶端chat.JSP頁面代碼

  1. <%@ page language="Java" import="Java.util.*" pageEncoding="UTF-8"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. %>
  6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD Html 4.01 Transitional//EN">
  7. <Html>
  8. <head>
  9. <base href="<%=basePath%>">
  10. <title>Chat</title>
  11. <meta http-equiv="pragma" content="no-cache">
  12. <meta http-equiv="cache-control" content="no-cache">
  13. <meta http-equiv="expires" content="0">
  14. <script type="text/Javascript" src="${pageContext.request.contextPath }/dwr/engine.JS"></script>
  15. <script type="text/Javascript" src="${pageContext.request.contextPath }/dwr/util.JS"></script>
  16. <script type="text/Javascript" src="${pageContext.request.contextPath }/dwr/interface/ChatService.JS"></script>
  17. <script type="text/Javascript">
  18. function send() {
  19. var time = new Date();
  20. var content = dwr.util.getValue("content");
  21. var name = dwr.util.getValue("userName");
  22. var info = encodeURI(encodeURI(name + " say:\n" + content));
  23. var msg = {"msg": info, "time": time};
  24. dwr.util.setValue("content", "");
  25. if (!!content) {
  26. ChatService.sendMessage(msg);
  27. } else {
  28. alert("發送的內容不能為空!");
  29. }
  30. }
  31. function showMessage(data) {
  32. var message = decodeURI(decodeURI(data.msg));
  33. var text = dwr.util.getValue("info");
  34. if (!!text) {
  35. dwr.util.setValue("info", text + "\n" + data.time + " " + message);
  36. } else {
  37. dwr.util.setValue("info", data.time + " " + message);
  38. }
  39. }
  40. </script>
  41. </head>
  42. <body onload="dwr.engine.setActiveReverseAJax(true);">
  43. <textarea rows="20" cols="60" id="info" readonly="readonly"></textarea>
  44. <hr/>
  45. 昵稱:<input type="text" id="userName"/><br/>
  46. 消息:<textarea rows="5" cols="30" id="content"></textarea>
  47. <input type="button" value=" Send " onclick="send()" style="height: 85px; width: 85px;"/>
  48. </body>
  49. </Html>

首先,你需要導入dwr的engine.JS文件,這個很重要,是dwr的引擎文件。其次你使用的那個類的方法,也需要在導入進來。一般是interface下的,並且在dwr.XML中配置過的create。

上面的JS中調用的charService類中的sendMessage方法,所以在JSP頁面中導入的是ChatService.JS。

在body的onload事件中,需要設置反轉AJax,這個很重要。

showMessage是ChatMessageClIEnt的onApplicationEvent方法中的appendScript中需要執行的方法。data參數也是在那裡傳遞過來的。

每當發送sendMessage方法後就會觸發ChatMessageEvent事件,然後監聽的地方就會執行onApplicationEvent方法,在這個方法中又會執行浏覽器中的showMessage方法。

原文鏈接:http://www.cnblogs.com/hoojo/archive/2011/06/08/2075201.Html

【編輯推薦】

  1. Oracle計劃修復Java SE中的17個漏洞
  2. Java SE 6新年第一次更新 修復Bug超300個
  3. JDK 5和Java SE 6小更新
  4. Java SE 6更新 修復重大安全問題
  5. Java SE 6中的垃圾回收器G1收費是虛驚一場

【責任編輯:艾婧 TEL:(010)68476606】
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved