DWR提供了ReverseAjax技能,也就是服务器端主动更新客户端,或者说推模式。实际是长连接或轮循方式实现。各页面有对应的ScriptSession,用来存放需要发送到页面的内容。需要推到页面时,设置ScriptSession即可。
实际应用上有些不方便的地方(rq2_79提出此问题在http://www.iteye.com/post/387395),常规情况只能在DWR公开的方法(dwr.xml内include的方法)内实现。由于WebContext需要DwrServlet创建,所以在DWR公开方法之外的地方WebContextFactory.get();会返回null,无法继续使用。
DWR使用了准Ioc方式统一创建各功能模块,在DwrServlet中的Container承担此责任,默认为DefaultContainer。在不能得到WebContext的情况下,能直接得到ScriptSessionManager也可以取得最终的ScriptSession。直接new DefaultScriptSessionManager不能得到已经注册的页面,必须通过Container取得。现在问题变成如何取得Container了。DwrServlet有一个public 的getContainer,简单粗暴的改成 staitc,同样,container 也static,一切ok。
在需要推到页面的地方,随便调用吧。
java 代码
Container container = DwrServlet.getContainer();
ScriptSessionManager ssm = (ScriptSessionManager) container.getBean(ScriptSessionManager.class.getName());
Collection<ScriptSession> sessions = ssm.getScriptSessionsByPage("/dwrt/");
Util utilAll = new Util(sessions);
ScriptBuffer s = new ScriptBuffer();
s.appendScript("alert(");
s.appendData("something funny here!");
s.appendScript(");");
utilAll.addScript(s);
分享到:
- 2008-03-04 09:15
- 浏览 1212
- 评论(0)
- 论坛回复 / 浏览 (0 / 4101)
- 查看更多
相关推荐
总结,DWR Reverse Ajax是一种强大的工具,通过它,开发者可以构建出具有高效实时性的Web应用,极大地提升了用户的交互体验。然而,需要注意的是,由于保持长期连接会占用服务器资源,因此在高并发场景下,需要合理...
总结来说,DWR为开发者提供了一个强大且易用的工具,它简化了Ajax应用的开发,使得前后端交互变得更加直观和高效。通过深入学习和实践,你将能熟练掌握DWR,为你的Web应用带来更丰富的交互性和实时性。
- **Reverse AJAX Servlet**: DWR自动配置的Servlet,接收来自JavaScript的请求,并调用相应的Java方法。 - **Auto-Discovery**: DWR可以自动发现Java类中公开的方法,并暴露给JavaScript使用,只需要简单的注解...
1. **反向Ajax**:DWR实现了一种反向Ajax(Reverse Ajax)技术,使得服务器能够主动向客户端推送数据,而不仅仅是响应客户端的请求。 2. **JavaScript与Java的桥接**:DWR通过动态生成JavaScript库来映射Java对象和...
总结,DWR是开发Ajax应用的强大工具,通过它,开发者可以轻松实现浏览器与服务器的双向通信,提升Web应用的用户体验。学习DWR,不仅可以理解Ajax的核心技术,还能为构建现代Web应用打下坚实基础。
在本项目中,DWR3版本被用来实现Reverse Ajax和服务器推送技术。Reverse Ajax是指服务器主动向客户端推送数据,而不是等待客户端发起请求。DWR3通过建立持久的HTTP连接来实现这一功能,使得服务器能够及时将新消息推...
1. **Reverse Ajax**:DWR的核心特性,允许服务器主动向客户端推送数据,而不仅仅是响应客户端的请求。 2. **Batching**:DWR支持批量调用,减少网络通信次数,提高性能。 3. **Caching**:缓存机制可以存储重复的...
DWR的核心组件包括Engine、ReverseAjax和Util,它们分别负责处理JavaScript到Java的调用、Java到JavaScript的回调以及一些辅助功能。 **Java推送消息** 在传统的HTTP请求-响应模型中,服务器无法主动向客户端发送...
要实现聊天应用的实时性,DWR提供了两种主要机制:Polling 和 Reverse Ajax (也称为 comet 技术)。Polling 是客户端定时向服务器发送请求检查新消息,而Reverse Ajax则是服务器主动推送给客户端新消息。在这个例子...
- **ReverseAjax**:也称为心跳或回调机制,允许服务器向客户端发送数据,实现双向通信。 3. **DWR 配置**: 配置DWR通常包括在Web应用的`web.xml`文件中配置过滤器和Servlet,以及在应用的Java类中声明可暴露给...
DWR简化了Ajax应用的开发,它提供了自动转换Java对象到JavaScript对象的能力,以及安全的远程调用机制。在反向Ajax聊天实例中,DWR可能负责创建一个服务器端的监听器,当有新消息时,通过DWR API向所有连接的客户端...
**DWR反推技术详解** DWR(Direct Web Remoting)是一种开源JavaScript库,它允许在Web应用程序中实现Ajax(Asynchronous JavaScript and XML)通信,从而...理解并熟练掌握DWR反推,对于构建高效的Ajax应用至关重要。
DWR的核心组件包括`DWRServlet`、`ReverseAjax`和`AutoComplete`等。`DWRServlet`作为入口点,处理来自客户端的请求;`ReverseAjax`实现服务端向客户端的推送;`AutoComplete`则用于自动补全功能。 3. **服务端推...
1. **逆向Ajax(Reverse Ajax)**:DWR的核心特性之一是逆向Ajax,即由服务器向客户端推送数据,而不是传统的用户触发请求。这使得实时更新和交互成为可能。 2. **映射(Mapping)**:DWR通过配置文件或注解将Java...
- **Reverse Ajax**:DWR 允许服务器主动向浏览器发送数据,打破了传统的 AJAX 单向通信模式。 - **CSP (Control Script Policy)**:DWR 自带的安全特性,防止跨站脚本攻击,确保客户端只执行可信的服务器端代码。...
- **Reverse AJAX**:DWR实现了反向AJAX,即服务器主动推送数据到客户端,而不仅仅是响应客户端请求。 - **Java和JavaScript之间的映射**:DWR自动处理Java对象与JavaScript对象之间的类型转换,使得数据交换更加...
2. **自动AJAX支持**:DWR提供了一套完整的AJAX(Asynchronous JavaScript and XML)框架,使得开发者无需深入理解底层的XMLHttpRequest细节,就能轻松创建AJAX应用。 3. **安全机制**:DWR通过一系列安全措施来...
**服务器端Ajax框架——DWR实践总结** ...总结来说,DWR是一个强大的服务器端Ajax框架,它简化了Java与JavaScript之间的通信,提高了Web应用的交互性。通过实践和研究DWR,开发者能够构建出更加流畅、高效的Web应用。