`

dwr 后台推送技术

阅读更多
sendMsg.jsp页面 ,发送一段消息给后台 ,然后后台将消息推送到showMsg.jsp页面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>dwr3</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
    <servlet>
         <servlet-name>dwr-invoker</servlet-name>
         <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
         <init-param>
          <param-name>debug</param-name>
          <param-value>true</param-value>
         </init-param>
         <!-- 使用polling和comet的方式 -->
         <init-param>
          <param-name>pollAndCometEnabled</param-name>
          <param-value>true</param-value>
         </init-param>
         <load-on-startup>1</load-on-startup>   
    </servlet>
    <servlet-mapping>
         <servlet-name>dwr-invoker</servlet-name>
         <url-pattern>/dwr/*</url-pattern>
    </servlet-mapping>
</web-app>
sendMsg.java 推送类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package com.zf.dwr;
import java.util.Collection;
import org.directwebremoting.ScriptBuffer;
import org.directwebremoting.ScriptSession;
import org.directwebremoting.WebContext;
import org.directwebremoting.WebContextFactory;
import org.directwebremoting.proxy.dwr.Util;
public class SendMsg {
                             
    @SuppressWarnings("deprecation")
    public void sendMsg(String msg){
        //得到上下文
        WebContext contex = WebContextFactory.get();
                                 
        //得到要推送到 的页面  dwr3为项目名称 , 一定要加上。
        Collection<ScriptSession> sessions = contex.getScriptSessionsByPage("/dwr3/showMsg.jsp");
                                 
        //不知道该怎么解释这个 ,
        Util util = new Util(sessions);
                                 
        //下面是创建一个javascript脚本 , 相当于在页面脚本中添加了一句  show(msg);
        ScriptBuffer sb = new ScriptBuffer();
        sb.appendScript("show(");
        sb.appendData(msg);
        sb.appendScript(")");
                                 
        //推送
        util.addScript(sb);
    }
}
sendMsg.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!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=utf-8">
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/interface/SendMsg.js"></script>
<script type="text/javascript" src="jquery-1.7.1.js"></script>
<script type="text/javascript">
    $(function(){
        dwr.engine.setActiveReverseAjax(true);
        $("#but").click(function(){
            SendMsg.sendMsg($("#msg").val());
        });
    });
</script>
<title>Insert title here</title>
</head>
<body>
    <input type="text" id="msg"  />
    <input type="button" value="发送" id="but" />
</body>
</html>
   使用dwr推送技术时  需要有WebContext 对象,但是 WebContext 对象需要通过 WebContextFactory.get();获取 , 而WebContextFactory.get(); 方法只有当页面请求某个java方法时,在该方法中调用WebContextFactory.get(); 才能得到值。 否则是取不到值的。
然后通过WebContext 获取指定的页面 。再向页面推送消息 。
有一个问题是当后来又新开了页面,却收不到消息 。
可以使用一个线程,去定时的更新Collection<ScriptSession> 对象
分享到:
评论

相关推荐

    dwr后台推送

    总的来说,DWR后台推送技术通过长连接或者定期轮询实现了服务器到客户端的数据实时推送,为Web应用提供了类似桌面应用的交互体验。了解并掌握DWR的推送机制,以及在不同版本和框架下的应用,对于提升Web应用的实时性...

    DWR 后台推送(线程监听、多页面推送,附完整实例)

    测试的时候,打开两个页面,分别是生产数据页面还有查看数据页面,当点击生产数据页面后,查看数据页面就会收到从后台推送过来的数据。http://yun.baidu.com/share/link?shareid=1734778619&uk=2031663908

    dwr 消息后台推送

    综上所述,"DWR消息后台推送"涉及到的主要知识点包括DWR的工作原理、后台推送技术的应用、DWR的配置与JavaScript接口使用、服务器端逻辑实现、以及性能优化和兼容性考虑。这个例子为开发者提供了一个实践DWR后台推送...

    springMVC+dwr技术实现消息推送实例

    传统的Ajax技术通常依赖于浏览器发起请求,而DWR则允许服务器主动向客户端推送数据,无需等待用户的操作。这种特性使得DWR在实时应用如聊天、股票报价、在线游戏等场景中非常有用。 **消息推送原理** 消息推送的...

    dwr+spring实现后台向前台推送实例

    本实例是在一些网络资料的基础上整合出来的一个:以后台向前台页面推送消息的一个完整实例工程,采用了spring、dwr反转,实现的是后台向前台不断推送消息,并管理相关用户退出;可以用在如定时任务的桌面消息提醒之...

    Java Dwr实现消息精准推送以及js调用后台+demo

    在“Java Dwr实现消息精准推送以及js调用后台+demo”这个主题中,我们将深入探讨如何利用DWR来实现高效的消息推送和JavaScript与后台Java的交互。以下是一些关键知识点: 1. **DWR基础**:DWR的核心功能是提供一种...

    DWR后台精准推送信息至前台

    在“DWR后台精准推送信息至前台”这个主题中,我们将深入探讨DWR如何实现消息推送,并为初学者提供一个入门的指南。 1. **DWR基础概念**: - **Direct Web Remoting**:DWR的核心理念是创建一种无缝的接口,让...

    dwr消息推送demo

    以后台向前台页面推送消息的一个完整实例工程,采用了spring、dwr反转,实现的是后台向前台不断推送消息,并管理相关用户退出;可以用在如定时任务的桌面消息提醒之类的场景。改变传统的前台定时刷新/请求后台的工作...

    dwr实现前台监控 后台推送即时信息 入门必看资料

    "后台推送即时信息"是DWR的一个重要应用。在传统的HTTP协议下,服务器只能响应客户端的请求,而无法主动发送数据。DWR通过Comet技术打破了这一限制,使得服务器可以在有新消息时主动推送给客户端。具体实现可以通过...

    springMvc + dwr 注解 实现消息推送

    在IT行业中,消息推送是一项关键的技术,特别是在实时性要求较高的应用中,如社交网络、协作工具等。本项目结合了Spring MVC和Direct Web Remoting (DWR)框架,利用注解的方式实现了一种高效的消息推送机制,支持对...

    DWR反向推送

    DWR的核心特性之一就是反向推送技术,也称为服务器推送,它允许服务器主动将数据推送到客户端,而不仅仅是响应用户的请求。 **反向推送(Reverse Ajax)** 反向推送是相对于传统Ajax请求的一种概念,传统Ajax是...

    dwr 消息推送

    在服务器端,可以创建一个后台服务,当有新的消息时,调用DWR的API将消息推送给特定的客户端。 6. **安全性**:DWR提供了安全机制,如CORS(跨源资源共享)配置、IP白名单、会话管理等,确保只有授权的客户端能够...

    dwr3后台推送最简单的使用(根据"说好的729呢"的博客制作)

    在DWR3中,引入了后台推送(Push)功能,这是一种服务器主动向客户端发送数据的技术,不同于传统的HTTP请求-响应模式,它使得实时性更强,常用于构建实时更新的应用,如聊天室、股票报价或在线游戏等。 首先,要...

    dwr2.0后台推送demo,包含第三方登陆

    dwr2.0后台推送demo,包含第三方登陆,响应成功(是根据sessionID)做的判断。 内含dwr2.0.jar,js都在包里的不用另外找的

    基于Java和JavaScript的DWR消息推送设计源码

    该系统模拟了消息推送功能,实现从后台向前台页面实时推送消息。适合DWR初学者上手,通过导入工程并部署在Tomcat服务器上,可以体验实时消息推送的效果。用户在登录页面输入特定密码后,可接收服务端推送的消息,并...

    接收Socket消息通过DWR推送到界面显示

    3. **DWR推送技术**:DWR的推送功能是其一大特色,它使得服务器可以主动将数据推送给客户端,而不是等待客户端发起请求。这种机制通常被称为Comet技术,它可以实现实时性,比如聊天应用、股票报价或者在线游戏等场景...

    DWR推送功能实现实例(前段,后台函数互调)

    在"**DWR推送功能实现实例(前段,后台函数互调)**"中,我们将深入探讨如何利用DWR来实现实时的双向通信。 **DWR的基本原理**: DWR的核心是通过动态生成JavaScript库,使JavaScript可以直接调用Java对象的方法。...

    dwr实现前台监控 后台推送即时信息

    在本文中,我们将探讨如何使用DWR实现前台监控并进行后台即时信息推送。 首先,理解DWR的工作原理至关重要。DWR通过在服务器端运行一个Servlet,这个Servlet负责接收JavaScript的请求,执行相应的Java方法,然后将...

    dwr消息推送 实现的聊天

    标题 "dwr消息推送 实现的聊天" 描述了如何使用Direct Web Remoting (DWR)框架来构建实时的消息推送功能,实现一个聊天应用。DWR是一个Java库,它允许在浏览器和服务器之间进行双向通信,即AJAX的增强版,使得动态...

Global site tag (gtag.js) - Google Analytics