效果:服务器端发出消息,各个客户端及时接受消息。
1,要使用dwr的ajaxReverse 技术首先要在web.xml里给dwr的servlet加上下列参数配置:
<param-name>activeReverseAjaxEnabled</param-name>
<param-value>true</param-value>
2,服务器端代码:
public class MyReverse {
public void sendMes(String mes){
send("系统消息:"+mes);
}
public void send(final String output) {
String page = ServerContextFactory.get().getContextPath() + "/client.jsp";
Browser.withPage(page, new Runnable() {
public void run() {
Util.setValue("news", output); //news 客户端级水平里面textarea的id
}
});
}
}
3.dwr配置:
<create javascript="myrevsrse" creator="new">
<param name="class" value="com.dwr.MyReverse"/>
</create>
3.服务端 (server.jsp用于发消息也就是管理员界面)
<html>
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/myrevsrse.js"></script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
<script type="text/javascript">
function sendnews(){
var new_content = ${'newcontent'}.value;
myrevsrse.sendMes(new_content);
}
</script>
</head>
<body>
<input type="text" name="newcontent">
<input type = "button" value="发消息" οnclick="sendnews()"/>
</body>
客户端:
<html>
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<head>
<<script type="text/javascript">
</script>
</head>
<body οnlοad="dwr.engine.setActiveReverseAjax(true);">
<textarea rows="20" cols="20" id="news"></textarea>
</body>
</html>
测试:
我们打开一个服务端,2和客户端:(请大家务必放大看,ctrl+鼠标滑轮滚动。)
服务端发出消息,点击发消息后,个客户端将同步显示服务端发出的消息。
代码理解(后续);