欢迎大家访问我的个人网站 萌萌的IT人,后续所有的文章都会在此发布
--------------------------------------------------------------------------------------------DWR2.0.x的推技术以推发送消息,适用于ChatRoom,股票信息显示等场景,优于现在JS定时轮询服务端的策略,大大节省服务端的资源(数据无变化时不需要应答客户端的定时查询)。
在2.0M3开始终于能够正常运作。(注意,2.0M3需要到http://dwr.dev.java.net下载)
推技术的经典范例是DWR Examples里的ChatRoom,另外SpringSide里的场景也非常实在。
1. 推消息的接收页
1.<script type='text/javascript' src='<c:url value="/dwr/engine.js"/>'></script> <script type='text/javascript' src='<c:url value="/dwr/interface/orderNotice.js"/>'></script> <script type='text/javascript' src='<c:url value="/dwr/util.js"/>'></script> 2.<script language="javascript"> function receiveMessages(id) { $('orderNotice').innerHTML = "收到id为" + id + "的新订单!"; $('orderNotice').show(); } </script> 3.<body onload="DWREngine.setReverseAjax(true);"> <div id="orderNotice"/>
第一,引入dwr及那个负责执行推操作的Java类(OrderNotice)的js
第二,设定任意的接收推信息的js函数
第三,在body的onload里设定ReverseAjax=true,开始侦听信息
详见springside-bookstore\webapp\admin\top.jsp
2.负责推送消息的Java类
public class OrderNotice { public void noticeNewOrder(int id) { WebContext wctx = WebContextFactory.get(); ScriptBuffer script = new ScriptBuffer(); script.appendScript("receiveMessages(") .appendData(id) .appendScript(");");
ServerContext sctx = ServerContextFactory.get(wctx.getServletContext()); Collection<ScriptSession> pages = sctx.getScriptSessionsByPage("/springside/admin/top.jsp"); for (ScriptSession session : pages) { session.addScript(script); } }}
可见,用ScriptBuffer构造一段在客户端执行的SQL,然后使用WebContext ,ServerContext 定位需要发送的session进行发送。注意这里HardCode了URL路径来确定Subscriber,也可以像ChatRoom里面那样,用currenpage 发给与orderNotice的调用者发起者在同一页的session。
3.其余工作
设定dwr.xml,按Dwr的老模式,从客户端调用OrderNotice。
相关推荐
标题中的“dwr推技术官方实例”是指DWR提供的关于其推技术的实际操作示例,这些示例可能涵盖了DWR 2.0.4及以上版本的最新功能。由于高质量的实例资源在网络上可能不易找到,所以这份实例集合显得尤为宝贵。 描述中...
总结来说,DWR推技术是实现服务器主动向客户端推送数据的一种高效方式,尤其适用于需要实时数据更新的应用,如股票实时显示。通过反转Ajax,DWR简化了开发流程,提高了用户体验,是现代Web开发中的一个重要工具。
在这个“dwr推技术简单案例”中,我们将深入理解DWR的核心概念,学习如何设置和使用DWR来实现实时数据推送。 首先,我们需要了解DWR的基本工作原理。DWR通过在浏览器和服务器之间建立一个持久连接,使得服务器可以...
通过这个"DWR推技术demo",你可以学习如何设置DWR环境,配置DWR以启用推送功能,以及在客户端和服务器端编写相应的代码来实现双向通信。这个项目对于理解DWR工作原理和实际应用非常有帮助,特别是对于那些希望在Web...
在“dwr推技术反转聊天事例”中,我们将探讨DWR如何用于构建一个实时的聊天应用程序,并分析其中的关键知识点。 首先,我们需要理解DWR的核心概念。DWR允许JavaScript在浏览器端直接调用服务器端的Java方法,而无需...
在本示例中,我们将深入探讨如何利用DWR推技术来构建一个站内聊天室,允许用户向所有人或特定个体发送消息。 1. **DWR推技术**: DWR推技术(Push technology)是DWR的一个重要特性,它允许服务器主动向客户端推送...
在这个聊天室项目中,DWR推技术扮演了关键角色。"推技术"通常指的是服务器向客户端主动推送信息,而不是等待客户端发起请求。在聊天室这种实时性要求较高的场景下,服务器端需要及时将新消息推送到所有在线用户,而...
然而,DWR通过建立一个持久的连接,使得服务器可以主动地向客户端推送数据,从而提高了用户体验。 DWR的核心功能包括: 1. **远程方法调用(Remote Method Invocation, RMI)**:DWR允许JavaScript直接调用服务器...
#### 一、DWR推技术概述 DWR(Direct Web Remoting)是一种简化Ajax开发的框架,它允许Java对象直接与JavaScript交互,从而实现更流畅的网页应用体验。在DWR 2.x版本中,引入了推技术,即所谓的“Reverse Ajax”,...
DWR推送技术的实现主要涉及以下几个关键组件: 1. **DWR Engine**:这是DWR的核心部分,负责处理JavaScript与服务器端Java对象之间的交互。它通过AJAX(Asynchronous JavaScript and XML)技术在客户端和服务器之间...
DWR是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。
**DWR(Direct Web Remoting)技术详解及推技术实例** DWR,全称为Direct Web Remoting,是一种在Web应用程序中实现JavaScript与Java之间进行安全、高效通信的技术。它允许服务器端的Java代码直接调用客户端的...
另外,`DWR推技术在开发中需要注意的ScriptSession问题 - zhyiwww - BlogJava.mht`文件可能包含了开发者在实际开发过程中遇到的一个常见问题——ScriptSession。ScriptSession是DWR用于跟踪客户端会话的机制,但如果...
DWR的核心特性是它支持AJAX(Asynchronous JavaScript and XML)以及服务器推送技术,极大地提高了Web应用的用户体验。 **服务器推送技术**: 传统的HTTP协议是基于请求-响应模型的,即客户端发起请求,服务器响应...
在实际项目中,根据`dwrpush`这个文件名,我们可以推测这是一个关于DWR推送技术的示例或配置文件,可能包含了如何设置和使用DWR推送功能的代码示例。通过对这个文件的深入学习和实践,可以更好地理解和掌握DWR3的推...
在描述中提到的"DWR服务器推技术整合Struts2",意味着我们将DWR与流行的MVC框架Struts2相结合,以创建一个具有聊天功能的Web应用。Struts2提供了一个强大的架构来处理HTTP请求,并结合DWR,可以创建一个动态的、交互...
标题 "dwr推模式" 涉及到的是Direct Web Remoting (DWR) 技术的一种工作模式,主要用于Web应用程序中的实时数据交互。DWR允许JavaScript与服务器端的Java代码进行交互,提供了异步更新页面的能力,极大地提高了用户...
在“dwr推送及js访问java代码”的项目中,我们可以看到如何利用DWR进行双向通信。首先,DWR的核心组件包括`DWR Engine`、`Servlet`和`AutoBean`等。`DWR Engine`负责在客户端和服务器之间建立连接,`Servlet`处理...
在本项目的背景下,由于HTML5的WebSocket不适用于所有浏览器,特别是对旧版IE的支持,因此选择了DWR作为实现推送技术的工具。DWR的核心思想是建立一个持久的连接(long-polling)来实现实时数据推送。这种机制下,...
在IT行业中,消息推送是一项重要的技术,它使得服务器能够实时地向客户端发送数据,而无需客户端不断地轮询请求。在本教程中,我们将探讨如何利用Direct Web Remoting (DWR) 和Spring框架来实现这样的功能。 DWR是...