`
Foxswily
  • 浏览: 77414 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

总结DWR的ReverseAjax应用

    博客分类:
  • DWR
阅读更多
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 代码
 
  1. Container container = DwrServlet.getContainer();  
  2. ScriptSessionManager ssm = (ScriptSessionManager) container.getBean(ScriptSessionManager.class.getName());  
  3. Collection<ScriptSession> sessions = ssm.getScriptSessionsByPage("/dwrt/");  
  4. Util utilAll = new Util(sessions);  
  5. ScriptBuffer s = new ScriptBuffer();  
  6. s.appendScript("alert(");  
  7. s.appendData("something funny here!");  
  8. s.appendScript(");");  
  9. utilAll.addScript(s);  
分享到:
评论
2 楼 Foxswily 2008-04-03  
推方法有Poll和Comet的不同实现,由于浏览器到原因,长连接的方式很难实现,所以目前都是Poll(轮询)的方式实现,在页面能看到状态栏不停的连接服务器。这时候如果按了浏览器的停止按钮,就会造成页面卡住,不再更新了。
1 楼 zhhzhfya 2008-03-27  
楼主这个方式推数据到客户端,但是有时候系统会卡,您碰到过这种情况吗?

相关推荐

    即时通讯DWR Reverse Ajax

    总结,DWR Reverse Ajax是一种强大的工具,通过它,开发者可以构建出具有高效实时性的Web应用,极大地提升了用户的交互体验。然而,需要注意的是,由于保持长期连接会占用服务器资源,因此在高并发场景下,需要合理...

    DWR让Ajax如此简单

    总结来说,DWR为开发者提供了一个强大且易用的工具,它简化了Ajax应用的开发,使得前后端交互变得更加直观和高效。通过深入学习和实践,你将能熟练掌握DWR,为你的Web应用带来更丰富的交互性和实时性。

    AJAX DWR教程

    - **Reverse AJAX Servlet**: DWR自动配置的Servlet,接收来自JavaScript的请求,并调用相应的Java方法。 - **Auto-Discovery**: DWR可以自动发现Java类中公开的方法,并暴露给JavaScript使用,只需要简单的注解...

    dwr笔记 dwr自学资料

    1. **反向Ajax**:DWR实现了一种反向Ajax(Reverse Ajax)技术,使得服务器能够主动向客户端推送数据,而不仅仅是响应客户端的请求。 2. **JavaScript与Java的桥接**:DWR通过动态生成JavaScript库来映射Java对象和...

    ajax dwr学习笔记和jar文件

    总结,DWR是开发Ajax应用的强大工具,通过它,开发者可以轻松实现浏览器与服务器的双向通信,提升Web应用的用户体验。学习DWR,不仅可以理解Ajax的核心技术,还能为构建现代Web应用打下坚实基础。

    dwr3与ssh 开发的webim

    在本项目中,DWR3版本被用来实现Reverse Ajax和服务器推送技术。Reverse Ajax是指服务器主动向客户端推送数据,而不是等待客户端发起请求。DWR3通过建立持久的HTTP连接来实现这一功能,使得服务器能够及时将新消息推...

    DWR框架的例子-ajax

    1. **Reverse Ajax**:DWR的核心特性,允许服务器主动向客户端推送数据,而不仅仅是响应客户端的请求。 2. **Batching**:DWR支持批量调用,减少网络通信次数,提高性能。 3. **Caching**:缓存机制可以存储重复的...

    基于dwr的java推送消息慕课小项目

    DWR的核心组件包括Engine、ReverseAjax和Util,它们分别负责处理JavaScript到Java的调用、Java到JavaScript的回调以及一些辅助功能。 **Java推送消息** 在传统的HTTP请求-响应模型中,服务器无法主动向客户端发送...

    DWR网页聊天例子

    要实现聊天应用的实时性,DWR提供了两种主要机制:Polling 和 Reverse Ajax (也称为 comet 技术)。Polling 是客户端定时向服务器发送请求检查新消息,而Reverse Ajax则是服务器主动推送给客户端新消息。在这个例子...

    DWR 技术文章精选

    - **ReverseAjax**:也称为心跳或回调机制,允许服务器向客户端发送数据,实现双向通信。 3. **DWR 配置**: 配置DWR通常包括在Web应用的`web.xml`文件中配置过滤器和Servlet,以及在应用的Java类中声明可暴露给...

    反向ajax聊天简单例子

    DWR简化了Ajax应用的开发,它提供了自动转换Java对象到JavaScript对象的能力,以及安全的远程调用机制。在反向Ajax聊天实例中,DWR可能负责创建一个服务器端的监听器,当有新消息时,通过DWR API向所有连接的客户端...

    dwr反推demo

    **DWR反推技术详解** DWR(Direct Web Remoting)是一种开源JavaScript库,它允许在Web应用程序中实现Ajax(Asynchronous JavaScript and XML)通信,从而...理解并熟练掌握DWR反推,对于构建高效的Ajax应用至关重要。

    dwr+从服务端推送消息到网页

    DWR的核心组件包括`DWRServlet`、`ReverseAjax`和`AutoComplete`等。`DWRServlet`作为入口点,处理来自客户端的请求;`ReverseAjax`实现服务端向客户端的推送;`AutoComplete`则用于自动补全功能。 3. **服务端推...

    Ajax框架dwr3.0中文

    1. **逆向Ajax(Reverse Ajax)**:DWR的核心特性之一是逆向Ajax,即由服务器向客户端推送数据,而不是传统的用户触发请求。这使得实时更新和交互成为可能。 2. **映射(Mapping)**:DWR通过配置文件或注解将Java...

    DWR3.0例子(注解)

    - **Reverse Ajax**:DWR 允许服务器主动向浏览器发送数据,打破了传统的 AJAX 单向通信模式。 - **CSP (Control Script Policy)**:DWR 自带的安全特性,防止跨站脚本攻击,确保客户端只执行可信的服务器端代码。...

    dwr_demo_test

    - **Reverse AJAX**:DWR实现了反向AJAX,即服务器主动推送数据到客户端,而不仅仅是响应客户端请求。 - **Java和JavaScript之间的映射**:DWR自动处理Java对象与JavaScript对象之间的类型转换,使得数据交换更加...

    DWR_中文文档 DWR_中文文档

    2. **自动AJAX支持**:DWR提供了一套完整的AJAX(Asynchronous JavaScript and XML)框架,使得开发者无需深入理解底层的XMLHttpRequest细节,就能轻松创建AJAX应用。 3. **安全机制**:DWR通过一系列安全措施来...

    服务器端ajax框架--------DWR实践总结

    **服务器端Ajax框架——DWR实践总结** ...总结来说,DWR是一个强大的服务器端Ajax框架,它简化了Java与JavaScript之间的通信,提高了Web应用的交互性。通过实践和研究DWR,开发者能够构建出更加流畅、高效的Web应用。

Global site tag (gtag.js) - Google Analytics