`
SwineX
  • 浏览: 36264 次
  • 性别: Icon_minigender_1
  • 来自: 常德
社区版块
存档分类
最新评论

dwr学习笔记2之反转ajax

    博客分类:
  • web
阅读更多
啊~~好久没有做总结了,最近看了很多乱七八糟的东西,脑子变的有点乱了,是时候停一停,总结一下东西了。


以下是对官方教程的reverse ajax的一点小总结。

1.感想
反转ajax中,信息的流动形式不再是有页面发送request,服务器接收request并做出response,最后由页面接收response这一老套模式,而且又服务器主动向页面推送消息,然后页面接收,不必再由页面以polling的方式不断向服务器发送请求了。
(看到这里你想用这个做什么呢?我是做的web聊天,大多数人好像也都是做的这个练习)


2.关键代码
String page = ServerContextFactory.get().getContextPath() + "[发送的页面]";
Browser.withPage(page,new Runnable(){
public void run() {}
});

此方法可将信息发回给所有访问page这个页面的游览器,至于run()中的方法,按需不同。
2.关键代码
final String page = ServerContextFactory.get().getContextPath() + "[发送的页面]";
ScriptSessionFilter attributeFilter = new AttributeScriptSessionFilter(SCRIPT_SESSION_ATTR);
Browser.withPageFiltered(page, attributeFilter, new Runnable(){public void run() {}
});

这个是官网上给出的方法,通过ScriptSessionFilter 的筛选可以将信息推送给指定页面,我一开始想用这种方法来实现聊天,但是在run()中用错了推送方法,后来想想其实是可以实现的,在此之前我换了另一种方法,后面会提到。AttributeScriptSessionFilter的实现方法,dwr官网上有,这里就不多说了。
Browser.withSession(session.getId(), new Runnable(){
public void run() {	
  Collection<ScriptSession> coll = TaskDispatcherFactory.get().getTargetSessions();
  for(ScriptSession s : coll){
  s.addScript(new ScriptBuffer().appendScript("receiveMsg(").appendData(message).appendScript(")"));
				}
			}
		});

这里是根据ScriptSession的不同推送给指定的页面,也是我百度到的多数人用的方法,之前我用filter会失败,我想是用为页面推送是我用的是
ScriptSessions.addFunctionCall("[javascript方法]", "[参数]");

这样就完全没有了filter的作用,还是将data推送给了所有页面
(reverse ajax的具体实现方法这里就不在赘述了,网上写的好的日志到处都是)

3.ScriptSession的一点理解。ScriptSession和HttpSession彼此许多区别,其中最主要的是生命周期。
Scriptsession是与request绑定在一起的,即便是将页面刷新,也会产生一个新的Scriptsession对象,所以对与scriptSession在程序设计时要适当的进行科学的管理
这个人解释的挺好的,贴出他的链接:
http://blog.csdn.net/zhijie435/archive/2008/10/24/3135712.aspx

4.ThreadFactory
官方给的教程并不会很全面,如果我们了解的不多,可能就会遇到一点麻烦。
关于这个ThreadFactory接口,教程直接就用了它的实现类,让我这个菜鸟顿时傻了眼,折腾了一点时间才折腾出来,这里贴出实现方法。
public class DaemonThreadFactory implements ThreadFactory {
 
private static final DaemonThreadFactory daemonThreadFactory =new DaemonThreadFactory();


 
public static DaemonThreadFactory getInstance(){
 return daemonThreadFactory;
 }
 public Thread newThread(Runnable r) {
 Thread t = new Thread(r);
 t.setDaemon(true);
 return t;
 }
 }
分享到:
评论

相关推荐

    dwr反转AJAX聊天源码

    标签中的“dwr”是指DWR库,“反转”是指DWR提供的服务器推送机制,“AJAX”是指这种技术的基础,“源码”意味着我们可以看到整个项目的完整代码,“聊天”则是这个应用的实际应用场景。 在“chat.war”文件中,...

    DWR dwr 2.0 dwr推 推 反转ajax 聊天系统 广播系统 字符串加密 历史记录 推技术 聊天系统源码 源码 注释

    这是,以上两个版本的升级版,在原有的基础上,增加了 清空聊天记录,上线通知,用户id,及登录的所在地(ip),聊天信息可选择颜色, ps: 测试的时候记得将 info.txt(聊天信息保存文件) 绝对路径覆盖源码中,以前的路径,

    ajax dwr学习笔记和jar文件

    2. **反向Ajax(Reverse Ajax)**:DWR是反向Ajax的一个实现,意味着服务器可以主动向客户端发送数据,而不仅仅是响应客户端的请求。 二、DWR的主要组件 1. **CMT (Cross Page Posting)**:这是DWR的基础,用于在不同...

    Dwr 推例子 反转 ajax dwr dwr推群聊 dwr聊天系统源码 聊天系统 广播系统

    DWR的核心特性是反转Ajax,即允许Java方法直接在客户端调用,仿佛它们是本地JavaScript函数一样,这大大简化了Web应用的开发。 **1. DWR的反转Ajax** 反转Ajax是DWR的关键特性,它将传统的请求-响应模型转变为一种...

    DWR学习笔记,ajax教程下载,jsp ajax教程,java ajax教程下载

    java ajax教程 jsp ajax教程 dwr教程下载 ajax教程下载

    DWR 教程 中文API DWR.xml配置文件说明 DWR学习笔记

    首先,"DWR学习笔记"提供了对DWR基础概念、核心功能以及实际应用的概述。这些笔记可能包含了DWR的基本架构,如它如何通过AJAX技术实现实时的Web交互,以及如何创建和调用服务器端的Java方法。 "DWR中文API"是DWR库...

    DWR学习笔记及经验总结

    通过阅读这份“DWR学习笔记及经验总结”,开发者可以深入理解DWR的工作原理,掌握其实现动态Web交互的方法,并在实际项目中灵活运用,提升Web应用的用户体验。同时,这份资料可能还包含了作者在使用DWR过程中的技巧...

    dwr学习笔记pdf文件

    ### dwr学习笔记pdf文件知识点概述 #### 一、DWR框架简介 - **DWR**(Direct Web Remoting)是由GetAhead公司开发的一款用于实现Ajax应用的框架。该框架的核心价值在于允许客户端JavaScript直接调用服务器端Java类...

    dwr3 反转ajax例子

    本文将深入探讨DWR3框架如何实现对Ajax的反转,以及通过一个具体的实例来展示其工作原理和应用。 DWR3是DWR框架的第三个主要版本,它提供了一种高效、安全的方式,使JavaScript可以直接调用服务器端的Java方法。...

    dwr实现ajax功能ajax+dwr

    **DWR(Direct Web ...通过学习和实践这些资源,开发者可以深入理解DWR如何与Ajax结合,实现高效的Web应用交互。同时,掌握DWR可以帮助开发者避免编写复杂的JavaScript网络请求代码,提高开发效率并提升应用性能。

    dwr学习笔记和总结

    ### dwr学习笔记和总结 #### 一、DWR简介 DWR (Direct Web Remoting) 是一个简化Ajax开发的框架,它使得JavaScript能够直接调用服务器端的Java方法成为可能,无需编写复杂的Ajax代码。这极大地提高了开发效率,并...

    DWR学习笔记和与spring整合练习

    **DWR(Direct Web Remoting)**是一种JavaScript库,它允许Web...通过深入学习和实践"DWR学习笔记和与spring整合练习",开发者可以掌握DWR的精髓,熟练运用其与Spring的整合,打造出高效、安全、易维护的Web应用程序。

    DWR学习笔记-HelloWorld篇

    【标题】:“DWR学习笔记-HelloWorld篇” 在IT领域,DWR(Direct Web Remoting)是一个开源的Java框架,它允许JavaScript在浏览器端直接调用服务器端的Java方法,实现了网页与服务器的实时交互,类似于Ajax技术,但...

    DWR学习资料

    DWR学习资料 :DWR 3.0 上传文件.txt DWR3.0反向Ajax示例.txt DWR3.0学习笔记.txt DWR3.0学习网址.txt dwr分页.doc DWR分页代码.doc DWR中文文档.doc DWR中文文档.pdf dwr做comet的完整实现.doc Spring整合DWR comet ...

    [DWR(Ajax)]DWR使用笔记.chm

    [DWR(Ajax)]DWR使用笔记.chm

    DWR 视频教程 使用DWR开发AJAX For JavaEE

    4. **AJAX交互**:通过DWR的API(如`dwr.engine`和`RemoteObject`)学习创建AJAX请求,实现异步数据传输,更新页面内容无需刷新。 5. **数据类型转换**:了解DWR如何处理Java和JavaScript之间的数据类型转换,包括...

    DWR学习笔记(下载)

    总结,DWR作为一种古老的Ajax解决方案,虽然在现代Web开发中已被更多先进框架替代,但对于理解Ajax工作原理和Web Remoting概念,DWR仍是一个有价值的工具。随着技术的发展,了解并掌握DWR可以帮助开发者更好地理解和...

    SSH框架整合DWR推反转AJAX技术做的聊天室

    没事的时候自己写的一个聊天室,用了SSH框架整合DWR推反转AJAX技术,可能有一些不合理的地方,但实现了聊天室的基本功能,希望给大家一些帮助。需要大家根据spring配置文件,配置下Mysql数据库,建一张用户表就可以...

    dwr学习笔记(一个简单猜数字游戏)

    总结来说,这个"DWR学习笔记"示例涵盖了以下知识点: 1. DWR的基本概念和工作原理,包括Reverse Ajax机制。 2. 如何在服务器端配置DWR,定义可调用的Java服务。 3. 客户端如何使用DWR的JavaScript库与服务器进行通信...

Global site tag (gtag.js) - Google Analytics