1.创建一个Web Project项目,导入dwr.jar包。
2.修改web.xml文件如下:
- <?xmlversion="1.0"encoding="UTF-8"?>
- <web-appversion="2.5"
- xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http:
- http:
- <!--dwr核心servlet-->
- <listener>
- <listener-class>org.directwebremoting.servlet.DwrListener</listener-class>
- </listener>
- <servlet>
- <!--dwr核心servelt实现类-->
- <servlet-name>dwr</servlet-name>
- <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
- <!--设置dwr可调式-->
- <init-param>
- <param-name>debug</param-name>
- <param-value>true</param-value>
- </init-param>
- <!--设置ajax的反向技术-->
- <init-param>
- <param-name>activeReverseAjaxEnabled</param-name>
- <param-value>true</param-value>
- </init-param>
- <param-name>initApplicationScopeCreatorsAtStartip</param-name>
- <!--长连接时保持时间-->
- <param-name>maxWaitAfterWrite</param-name>
- <param-value>60</param-value>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <url-pattern>/dwr/*</url-pattern>
- </servlet-mapping>
- <welcome-file-list>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
- </web-app>
3.创建一个SendingMessage.java类
copy
packagecom.yjpeng.dwr;
-
- importjava.util.LinkedList;
- importjava.util.List;
-
- importjavax.naming.LinkLoopException;
- importorg.directwebremoting.Browser;
- importorg.directwebremoting.ScriptSession;
- importorg.directwebremoting.ScriptSessions;
- publicclassSendingMessage{
- privateList<String>messages=newLinkedList<String>();
- voidaddMessage(Stringmessage){
- messages.add(message);
- System.out.println("有客户请求消息:"+message);
- Browser.withCurrentPage(newRunnable(){
- voidrun(){
- ScriptSessions.addFunctionCall("receiveMessage",messages);
- }
- });
- }
4.创建dwr.xml文件
copy
<!DOCTYPEdwrPUBLIC
- "-//GetAheadLimited//DTDDirectWebRemoting3.0//EN"
- "http://getahead.org/dwr/dwr30.dtd">
- <dwr>
- <allow>
- <createcreator="new"javascript="sendingMessage"scope="application">
- <paramname="class"value="com.yjpeng.dwr.SendingMessage"></param>
- </create>
- </allow>
- </dwr>
6.创建一个getMessage.jsp文件
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> <script src="dwr/interface/sendingMessage.js"></script> <script src="dwr/engine.js"></script> <script src="dwr/util.js"></script> <script type="text/javascript"> function sendMessage(){ var message = $("message").value; sendingMessage.addMessage(message); }
function receiveMessage(messages){ var chatlog = ""; for(var data in messages){ chatlog += "<div>" + messages[data] + "</div>"; } dwr.util.setValue("list",chatlog,{escapeHtml:false}); }
</script> </head> <body onload="dwr.engine.setActiveReverseAjax(true);"> <form method="get" action="getMessage.jsp" > input message:<input id="message" type="text"/> <input type="button" value="sendMessage" onclick="sendMessage()"/> <div id="list"></div> </form> </body> </html>
6.把web项目部署到服务器上,启动服务器。分别打开多个浏览器。最后可以看到,在a浏览器发消息,b浏览器会自动出现a浏览器发出的消息。也就是消息的实时传递。 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|