js代码:(还需要导入dwr的相应js)
<script>
window.onload=function(){
//想实现推送 这一句是必需的!!!!!!!!!!!!!!!!!!
dwr.engine.setActiveReverseAjax(true);
$("all").onclick=function(){
var msg= $("userName").value+"说: "+$("inputText").value;
ChatService.SendMsg(msg);
}
};
//展示消息 后台会调用该方法
var toDisplay=function(msg){
$("show").innerHTML= $("show").innerHTML+"<br/>"+msg;
}
</script>
服务器端代码:
public class ChatService {
//页面调用该方法
public void SendMsg(String msg){
this.Send(msg);
}
//改方法处理后调用页面的方法,从而改变页面
public void Send(String msg){
WebContext ctx = WebContextFactory.get();
String page = ctx.getCurrentPage();
Collection<ScriptSession> sessions = ctx.getScriptSessionsByPage(page);
//确定需要推送给谁
Util util = new Util(sessions);
// 调用js中的toDisplay函数,将msg显示在页面上
util.addFunctionCall("toDisplay", msg);
}
}
dwr.xml:
<?xml version="1.0" encoding="gbk"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "/WEB-INF/dwr10.dtd">
<dwr>
<allow>
<create javascript="ChatService" creator="new">
<param name="class" value="service.ChatService">
</param>
</create>
<create javascript="MoreFunctionChatService" creator="new">
<param name="class" value="service.MoreFunctionChatService">
</param>
</create>
</allow>
</dwr>
web.xml需要加:
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>pollAndCometEnabled</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
分享到:
相关推荐
4. **Reverse Ajax**: DWR提供了逆向AJAX功能,即服务器可以主动向客户端推送数据,而无需客户端触发。 接下来,`dwr-noncla.jar`可能包含非版权许可的版本或者特定的构建,用于某些特殊环境或避免版权问题。具体...
### dwr消息推送功能 Direct Web Remoting (DWR) 是一种开源框架,它简化了JavaScript与服务器端Java代码之间的交互。DWR 提供了一种简单的方法来将 Java 对象暴露给 JavaScript,允许 JavaScript 调用 Java 方法,...
DWR推送技术的实现主要涉及以下几个关键组件: 1. **DWR Engine**:这是DWR的核心部分,负责处理JavaScript与服务器端Java对象之间的交互。它通过AJAX(Asynchronous JavaScript and XML)技术在客户端和服务器之间...
本实例主要关注DWR的消息推送功能,这在创建实时更新的应用如聊天室、股票报价或在线游戏等场景中非常有用。 1. **DWR框架概述** DWR框架的核心是将Java对象暴露给JavaScript,使得前端可以像操作本地对象一样操作...
在本文中,我们将深入探讨如何使用DWR实现服务器到客户端的消息推送。 1. **DWR基本概念** DWR的核心功能是提供一种方式让Java方法可以直接调用JavaScript函数,反之亦然。这使得服务器能够实时地向浏览器发送数据...
DWR的核心特性是它支持AJAX(Asynchronous JavaScript and XML)以及服务器推送技术,极大地提高了Web应用的用户体验。 **服务器推送技术**: 传统的HTTP协议是基于请求-响应模型的,即客户端发起请求,服务器响应...
本文将详细介绍如何实现DWR的服务器推送功能。 一、DWR简介 DWR的核心功能是通过AJAX技术创建了一个JavaScript到Java的桥梁,使得开发者可以像操作本地对象一样操作远程服务器上的对象。它支持自动类型转换、错误...
总的来说,结合DWR和Spring,我们可以构建出一个高效、可扩展的消息推送系统,使得Web应用能够实时地与用户互动,提升用户体验。在实际项目中,还需要考虑安全性、错误处理、性能监控等方面,确保系统的稳定性和可靠...
在本文中,我们将深入探讨如何使用DWR(Direct Web Remoting)与Java技术结合实现Web消息推送功能。DWR是一种JavaScript库,它允许在浏览器和服务器之间进行实时、双向通信,为Web应用提供了类似AJAX的功能,但更加...
**DWR(Direct Web Remoting)消息推送完整示例** DWR(Direct Web Remoting)是一种JavaScript库,它允许Web应用程序在客户端与服务器之间进行实时的、双向的通信。DWR使得开发人员能够轻松地调用Java方法并更新...
在DWR3中,"推送消息"功能是其特性之一,它使得服务器能够主动向客户端推送数据,而不仅仅是响应客户端的请求。这种技术通常被称为Comet或长轮询,可以用于实现实时通信,如聊天应用、股票报价、在线游戏等场景。 ...
### dwr实现消息精确推送详解 #### 一、前言 Direct Web Remoting(DWR)是一种开源技术,它使得JavaScript可以直接调用服务器端的Java方法成为可能,从而简化了客户端与服务器之间的交互过程。本篇文章将详细介绍...
1. **反向Ajax**:DWR允许服务器主动推送数据到客户端,而不仅仅是响应客户端的请求。这种功能在实时更新和通知场景中非常有用。 2. **自动JavaScript生成**:DWR能够自动生成与Java类对应的JavaScript接口,这意味...
**DWR (Direct Web Remoting) 服务器主动推送示例代码** DWR(Direct Web Remoting)是一个开源的Java库,允许Web应用程序在浏览器和服务器之间进行双向通信,即服务器可以主动向客户端推送数据,而不仅仅是响应...
在实现DWR推送时,主要涉及以下几个关键组件和步骤: 1. **DWR配置**:首先,需要在Web应用的`web.xml`配置文件中添加DWR的Servlet配置,这将启用DWR引擎并定义允许访问的类和方法。 2. **Java后端**:创建一个...
以后台向前台页面推送消息的一个完整实例工程,采用了spring、dwr反转,实现的是后台向前台不断推送消息,并管理相关用户退出;可以用在如定时任务的桌面消息提醒之类的场景。改变传统的前台定时刷新/请求后台的工作...
里面有详细的注释说明,主要实现DWR推送、线程监听、事件监听、主动推送。。写得不好,请见谅。。然后有个特别需要注意的,部署好项目以后,访问的方式是:http://localhost:9999/MonitorSystem/indexTo,特别注意...
这个"免积分"的例子可能是为了帮助开发者理解如何在DWR框架下实现实时的数据推送,而无需通过复杂的积分系统或者其他权限验证。这种推送技术在Web应用中非常有用,可以用来更新用户界面而无需手动刷新页面。 首先,...
3. **逆向AJAX(Reverse AJAX)**:DWR的核心特性之一,它通过长轮询、IFrame或XMLHttpRequest等技术实现实时双向通信,让服务器可以主动推送数据到客户端。 4. **安全性**:DWR提供了一套安全机制,包括IP过滤、...
- **Reverse Ajax**:DWR支持真正的服务器推送,即当服务器有新数据时,会主动推送到客户端,而不需要客户端发起请求。这通常是通过HTTP长连接或WebSocket实现的。 - ** Comet**:DWR也支持Comet技术,这是一种模拟...