啊~~好久没有做总结了,最近看了很多乱七八糟的东西,脑子变的有点乱了,是时候停一停,总结一下东西了。
以下是对官方教程的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”是指DWR库,“反转”是指DWR提供的服务器推送机制,“AJAX”是指这种技术的基础,“源码”意味着我们可以看到整个项目的完整代码,“聊天”则是这个应用的实际应用场景。 在“chat.war”文件中,...
这是,以上两个版本的升级版,在原有的基础上,增加了 清空聊天记录,上线通知,用户id,及登录的所在地(ip),聊天信息可选择颜色, ps: 测试的时候记得将 info.txt(聊天信息保存文件) 绝对路径覆盖源码中,以前的路径,
2. **反向Ajax(Reverse Ajax)**:DWR是反向Ajax的一个实现,意味着服务器可以主动向客户端发送数据,而不仅仅是响应客户端的请求。 二、DWR的主要组件 1. **CMT (Cross Page Posting)**:这是DWR的基础,用于在不同...
DWR的核心特性是反转Ajax,即允许Java方法直接在客户端调用,仿佛它们是本地JavaScript函数一样,这大大简化了Web应用的开发。 **1. DWR的反转Ajax** 反转Ajax是DWR的关键特性,它将传统的请求-响应模型转变为一种...
java ajax教程 jsp ajax教程 dwr教程下载 ajax教程下载
首先,"DWR学习笔记"提供了对DWR基础概念、核心功能以及实际应用的概述。这些笔记可能包含了DWR的基本架构,如它如何通过AJAX技术实现实时的Web交互,以及如何创建和调用服务器端的Java方法。 "DWR中文API"是DWR库...
通过阅读这份“DWR学习笔记及经验总结”,开发者可以深入理解DWR的工作原理,掌握其实现动态Web交互的方法,并在实际项目中灵活运用,提升Web应用的用户体验。同时,这份资料可能还包含了作者在使用DWR过程中的技巧...
### dwr学习笔记pdf文件知识点概述 #### 一、DWR框架简介 - **DWR**(Direct Web Remoting)是由GetAhead公司开发的一款用于实现Ajax应用的框架。该框架的核心价值在于允许客户端JavaScript直接调用服务器端Java类...
本文将深入探讨DWR3框架如何实现对Ajax的反转,以及通过一个具体的实例来展示其工作原理和应用。 DWR3是DWR框架的第三个主要版本,它提供了一种高效、安全的方式,使JavaScript可以直接调用服务器端的Java方法。...
**DWR(Direct Web ...通过学习和实践这些资源,开发者可以深入理解DWR如何与Ajax结合,实现高效的Web应用交互。同时,掌握DWR可以帮助开发者避免编写复杂的JavaScript网络请求代码,提高开发效率并提升应用性能。
### dwr学习笔记和总结 #### 一、DWR简介 DWR (Direct Web Remoting) 是一个简化Ajax开发的框架,它使得JavaScript能够直接调用服务器端的Java方法成为可能,无需编写复杂的Ajax代码。这极大地提高了开发效率,并...
**DWR(Direct Web Remoting)**是一种JavaScript库,它允许Web...通过深入学习和实践"DWR学习笔记和与spring整合练习",开发者可以掌握DWR的精髓,熟练运用其与Spring的整合,打造出高效、安全、易维护的Web应用程序。
【标题】:“DWR学习笔记-HelloWorld篇” 在IT领域,DWR(Direct Web Remoting)是一个开源的Java框架,它允许JavaScript在浏览器端直接调用服务器端的Java方法,实现了网页与服务器的实时交互,类似于Ajax技术,但...
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
4. **AJAX交互**:通过DWR的API(如`dwr.engine`和`RemoteObject`)学习创建AJAX请求,实现异步数据传输,更新页面内容无需刷新。 5. **数据类型转换**:了解DWR如何处理Java和JavaScript之间的数据类型转换,包括...
总结,DWR作为一种古老的Ajax解决方案,虽然在现代Web开发中已被更多先进框架替代,但对于理解Ajax工作原理和Web Remoting概念,DWR仍是一个有价值的工具。随着技术的发展,了解并掌握DWR可以帮助开发者更好地理解和...
没事的时候自己写的一个聊天室,用了SSH框架整合DWR推反转AJAX技术,可能有一些不合理的地方,但实现了聊天室的基本功能,希望给大家一些帮助。需要大家根据spring配置文件,配置下Mysql数据库,建一张用户表就可以...
总结来说,这个"DWR学习笔记"示例涵盖了以下知识点: 1. DWR的基本概念和工作原理,包括Reverse Ajax机制。 2. 如何在服务器端配置DWR,定义可调用的Java服务。 3. 客户端如何使用DWR的JavaScript库与服务器进行通信...