DWR是一个开源的类库,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样.DWR允许使用客户端Javascript来与服务端Java程序进行交互,他实际上是帮助开发者隐藏了很多的开发细节。不用辛苦的去使用XMLHTTP,DWR是客户端-服务端的AJAX比较好的解决方案。

它包含两个主要的部分:允许JavaScript从WEB服务器上一个遵循了AJAX原则的Servlet(小应用程序)中获取数据.另外一方面一个JavaScript库可以帮助网站开发人员轻松地利用获取的数据来动态改变网页的内容.DWR采取了一个类似AJAX的新方法来动态生成基于JAVA类的JavaScript代码.这样WEB开发人员就可以在JavaScript里使用Java代码就像它们是浏览器的本地代码(客户端代码)一样;但是Java代码运行在WEB服务器端而且可以自由访问WEB 服务器的资源.出于安全的理由,WEB开发者必须适当地配置哪些Java类可以安全的被外部使用.这个从JAVA到JavaScript的远程功能方法给DWR的用户带来非常像传统的RPC机制,就像RMI或者SOAP一样,而且拥有运行在WEB上但是不需要浏览器插件的好处.

DWR不认为浏览器/WEB服务器协议是重要的,而更乐于保证编程界面的简单自然.对此最大的挑战就是把AJAX的异步特性和正常JAVA方法调用的同步特性相结合.在异步模式下,结果数据在开始调用之后的一段时间之后才可以被异步访问获取到.DWR允许WEB开发人员传递一个回调函数,来异步处理Java函数调用过程

DWR Javascript库中常用函数的使用

设置异步/同步模式

默认情况下,DWR以异步的方式跟服务器通信,即可以同时向服务器发送请求,如果想要改为同步的方式,可以调用:dwr.engine.setAsync(false);

获得对某个页面元素对象的引用

$(“元素的ID或名称”)

对列表元素的支持

dwr.util.removeAllOptions()

dwr.util.addOptions()

dwr.util.getValue()

dwr.util.setValue()

Dwr的一个应用:

下载dwr.jar,将其加入web-inf/lib目录

修改web.xml文件,添加DWRServlet的映射

dwr-invoker

org.directwebremoting.servlet.DwrServlet

debug

true

dwr-invoker

/dwr/*

配置dwr,即在WEB-INF目录下,添加dwr.xml文件,让dwr知道在运行的时候应该给哪些JavaBean生成相应的javascript库!

这个配置的意思是,要创建的是Test1对象的javascript库,而且这个库的名字叫test1,同时,这也是我们在JSP页面上调用这个对象的时候所使用的名称,请看下面的JavaBean代码和JSP实例:

4、下面是Test1这个JavaBean的源代码:

package com.dwr;

public class Test1 {

public String sayHello(String name){

return "你好,"+name;

}

}

5、在JSP中的使用

pageEncoding="GB18030"%>

Insert title here

function sayHello(){

test1.sayHello("李四ddd",

function(data){

alert(data);

}

);

}

Test1

让我们简单看一下这个JSP文件:首先引入DWR中的两个核心javascript库:engine.js和util.js,它们分别是dwr中的核心引擎库和辅助工具函数库!

第三个引入的dwr/interface/test1.js,实际上这个文件并不存在,这是由dwr在运行的时候动态生成的!test1这个名称,跟dwr.xml文件中配置的对应对象的javascript属性一致!

而且,我们在使用的时候,直接使用test1这个名称,作为这个对象的引用。直接调用这个对象的方法:sayHello,这个方法的名称必须与JavaBean中的方法名称一致!

sayHello方法有一个参数,同时返回一个值。我们可以直接传递参数,同时指定一个javascript函数来处理这个返回值(如上例所示)。

如何传递参数

如果要调用的方法有参数,则将参数放在前面

如何处理返回值

定义一个函数来处理返回值,这个函数有一个参数,就是JavaBean方法的返回值

dwr java_DWR学习及应用相关推荐

  1. DWR的学习文档(Hello World,类型转换,Spring,Annotation)

    來源:http://www.iteye.com/topic/40313 DWR是作为远程调用的ajax框架,将服务端的java类,方法和浏览器的javascript的类,方法对应起来.现在官方最新的版 ...

  2. Pushlet和Dwr的简单服务器推技术

    附件里Pushlet和Dwr3.0的简单服务器推技术. DWR-Source.rar为DWR的学习资料. 下面简单介绍一下dwr3.0 RC2版本的反推技术代码. 首先下载dwr官方包,笔者这里下载的 ...

  3. java dwr_DWR文档之开始使用 DWR

    原文出处: http://www.javatang.com/archives/2006/10/20/254879.html 翻译: Jet Mah 声明: 请维持文章的完整性任意转载 开始使用 DWR ...

  4. 我的DWR学习(一)

    由于工作的需要,我开始学习了DWR,现在还不是很熟悉,但是还是给大家分享一下我的学习吧!希望对初学者有点用处! DWR有它的优势,我不是很熟悉,所以不做太多评价,觉得比AJAX有简洁吧! 下面我做一个 ...

  5. DWR学习笔记 - Hello World

    简介 DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用 ...

  6. DWR 实现AJAX学习

    前一段时间看了一点dwr实现ajax的介绍信息,一直想找个机会看看到底怎么用.今天起了个早,试了一下感觉还挺好用的. 下面是我的一点学习总结: 一.配置DWR(http://getahead.org/ ...

  7. 关于dwr学习(转)

    关于dwr(正在学习,感觉写的很好,所以转载过来) 7月 10, 2008 使用DWR出现"例外被抛出且未被接住"错误的原因和解决办法 归档在: DynamicLanguage, ...

  8. 我的DWR学习(二)

    DWR(Direct Web Remoting)是一个开源的类库,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样. ...

  9. ajax框架怎么学,Ajax框架之DWR学习(文件上传案例)

    DWR文件上传起来 还是挺方便的,直接就是咔咔的上传 ,实现了静态的文件上传,老爽了,需要依赖commons-fileupload 这个上传包. 目录结构 环境搭建 pom.xml commons-f ...

最新文章

  1. 《Javascript入门学习全集》 Javascript学习第二季(实战4)
  2. dock run mysql v3_docker run mysql成功,但是3306端口不通?
  3. 假笨说-从一起GC血案谈到反射原理
  4. bzoj 1179 抢掠计划atm (缩点+有向无环图DP)
  5. 三数之和(Leetcode第15题)
  6. mysql 四叉树的应用_游戏算法(2):查找优化之四叉树的应用
  7. 微软新版 Edge 浏览器叫板 Chrome!
  8. 《智能优化算法及其MATLAB实现》书籍出版啦
  9. 如何看懂财务报表:(二)财务报表目录解释
  10. Codechef:Walk on Tree/TREEWALK(Berlekamp-Massey算法)
  11. 蒸汽管道图纸符号_管道图形符号
  12. 超级节点的困境,社区治理的尴尬 |链捕手
  13. 电脑开热点手机无法连接,显示无ip分配的问题
  14. cs_Censorship_CreateUpdateDelete///cs_Censorships_Get
  15. Centos 添加新硬盘,分区格式化、挂载硬盘
  16. Linux -- 项目服务部署学习
  17. 对日软件开发过程中的质量管理
  18. 什么是polyfill
  19. 关于win10启动nacos1.3.2失败的详细解决方案
  20. 关于Excel VBA中莫名关不掉的“工程”如何关闭

热门文章

  1. 通信协议 - ntp时间同步
  2. Java判断字符串是否是纯中文或者英文
  3. Android源代码结构分析
  4. 2018年11月三大加密货币区块数据分析 | 链塔数据
  5. python os库安装_Python模块/包/库安装(6种方法)
  6. 比大厂更香的Offer:有钱,有氛围,也有生活
  7. 小知识:皮尔逊相关系数分析
  8. SpringAop切面中获取方法的返回值
  9. the thought
  10. 谁拉大了中国制造的贫富差距?