DWR是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。
它包含两个主要的部分:允许JavaScript从WEB服务器上一个遵循了AJAX原则的Servlet中获取数据。另外一方面一个JavaScript库可以帮助网站开发人员轻松地利用获取的数据来动态改变网页的内容。
DWR的配置上一篇已经写过,不会的直接去看上一篇:
DWR(2):DWR配置详情_不死鸟.亚历山大.狼崽子的博客-CSDN博客
下面我们直接提供DWR推送代码:
1 引入依赖在pom.xml文件中引入DWR的依赖
org.directwebremoting
dwr
3.0.0-RELEASE
2 配置dwr.xml文件
3 web.xml
Archetype Created Web Application
uk.ltd.getahead.dwr.DWRServlet
dwr-invoker
uk.ltd.getahead.dwr.DWRServlet
activeReverseAjaxEnabled
true
crossDomainSessionSecurity
false
allowScriptTagRemoting
true
dwr-invoker
/dwr/*
3 消息推送类
新建消息推送类
package test;
import org.directwebremoting.ScriptBuffer;
import org.directwebremoting.ScriptSession;
import org.directwebremoting.WebContext;
import org.directwebremoting.WebContextFactory;
import org.directwebremoting.proxy.dwr.Util;
import java.util.Collection;
public class Dwrpush {
public void send(String msg){
WebContext webContext = WebContextFactory.get();
//获取访问这个页面的所有session,即访问这个页面的所有用户
Collection sessions = webContext.getScriptSessionsByPage("/index1.jsp");
//获取所有session,不限于访问这个页面的所有用户
// Collection sessions = webContext.getAllScriptSessions();
// 构建发送所需的JS脚本
ScriptBuffer sb = new ScriptBuffer();
sb.appendScript("show(");
// 这个msg可以被过滤处理一下,或者做其他的处理操作。这视需求而定。
sb.appendData(msg);
sb.appendScript(")");
Util util = new Util(sessions);
util.addScript(sb);
}
}
4.推送的页面
新建推送接收的页面index1.jsp,代码如下:
<%@ page language="java" pageEncoding="UTF-8"%>
My JSP 'first_dwr.jsp' starting page
注意:
dwr.engine.setActiveReverseAjax(true);表示允许使用推送技术,必须添加。
5 效果如下打开两个浏览器同时访问该页面,在其中一个点击发送消息,会发现其他页面全部都能接受到该消息。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)