DWR(3):DWR推送功能

DWR(3):DWR推送功能,第1张

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 效果如下

打开两个浏览器同时访问该页面,在其中一个点击发送消息,会发现其他页面全部都能接受到该消息。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1321416.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-12
下一篇 2022-06-12

发表评论

登录后才能评论

评论列表(0条)

保存