Direct Web RemotingDWR allows Javascript in a browser to interact with Java on a server and helps you manipulate web pages with the results.DWR is Easy Ajax for Java官方网站:http://getahead.ltd.uk/dwr///DWR--不错的Ajax框架之一本文内容:

  1. DWR介绍
  2. DWR原理
  3. DWR开发步骤
  4. dwr.xml说明
  5. DWR核心引擎
  6. DWR工具包

DWR介绍

  • What is DWR?:
  1. 在服务器上运行的Servlet来处理请求并把结果返回浏览器。
  2. 运行在浏览器上的Javascript,可以发送请求,并动态 改变页面。DWR会根据你的Java类动态的生成Javascript代码。这些代码魔力是让你感觉整个Ajax调用都是在浏览器上发生的,但事实上是服务器执行了这些代码,DWR负责数据的传递和转换。
  3. 这种Java和Javascript之间的远程调用会让DWR用户感觉像是曾经习惯使用的RMI或SOAP的RPC机制。而且这一过程还不需要额外的浏览器插件。
  4. Java是同步的,而Ajax是异步的。所以当你调用一个远程方法时,你要给DWR一个回调函数,当数据从网络上回来时,DWR会调用这个函数。
  • DWR的作用:
  1. 有效地从应用程序代码中把 Ajax 的全部请求-响应循环消除掉。
  2. 客户端代码再也不需要直接处理XMLHttpRequest 对象或者服务器的响应。
  3. 不再需要编写对象的序列化代码或者使用第三方工具才能把对象变成 XML。
  4. 不再需要编写 servlet 代码把 Ajax 请求调整成对 Java 域对象的调用

DWR原理

  • DWR是作为Web应用的一个Servlet进行部 署的,是一个黑盒子中的servlet。
  1. 对于公共有的每个类,DWR 动态地生成包含在 Web 页面中的 JavaScript。生成的JavaScript 包含存根函数,代表 Java 类上的 对应方法并在幕后执行XMLHttpRequest。这些请求被发送给DWR。
  2. 把请求翻译成服务器端 Java 对象上的方法调用并把方法的返回值放在servlet 响应中发送回客户端,编码成 JavaScript。

DWR开发步骤

  • Download jar包
  1. http://getahead.org/dwr/download
  2. Copy dwr.jar into WEB-INF/lib
  • 修改web.xml,新增 DwrServlet

代码片断:<servlet>        <servlet-name>dwr-invoker</servlet-name>        <servlet-class>            org.directwebremoting.servlet.DwrServlet        </servlet-class>        <init-param>            <param-name>debug</param-name>            <param-value>true</param-value>        </init-param>    </servlet>    <servlet-mapping>        <servlet-name>dwr-invoker</servlet-name>        <url-pattern>/dwr/*</url-pattern>    </servlet-mapping>

  • 编写服务器端Java类
  1. 不要出现Javascript保留关键字;和保留关键字同名的函数指定被排除。多数Javascript的关键字和Java是相同的。所以你不可能有一个方法叫做”try()”。但是该死”delete()”对与Javascript有着特殊意义,而对Java则不是。
  2. Javascript方法重载是不支持的,所以尽量不要再Java中使用。

一个小例子:下载: HelloWorld.javapackage cn.com.jacken.dwr;public class HelloWorld {    public String sayHello(String name) {        return "Hi, " + name;    }}

  • 在dwr.xml文件注册Java对象

举例:<dwr>    <allow>        <create creator="new" javascript="HelloWorld" scope="page">            <param name="class" value="cn.com.jacken.dwr.HelloWorld" />        </create>    </allow></dwr>

  • 在Web 页面中添加DWR AJAX库

代码片段:<script src='dwr/engine.js'></script> <script src='dwr/util.js'></script> <script src='dwr/interface/HelloWorld.js'></script>dwr.xml说明请看另外一篇文章:DWR配置文件dwr.xml详解 DWR核心引擎engine.js

  1. 页面中加入: <script type='text/javascript' src='dwr/engine.js' />
  2. 设置超时时间: 全局设置: dwr.engine.setTimeout(1000);局部设置(优先级高):Remote.singleMethod(params, { callback:function(data){ ... }, timeout:2000 });
  3. 错误处理: 全局设置: function handler(msg) {alert(msg);}dwr.engine.setErrorHandler(handler);局部设置:Remote.method(params, {callback:function(data) { ... },errorHandler:handler});
  4. 批量执行 : dwr.engine.beginBatch();var selValue=…;//调用服务器Java程序Province.getCitiesByProvince(selValue,callBack);Province.getNick(callBack2);dwr.engine.endBatch({timeout:3000});//…

DWR工具包

  1. 必须在页面引入util.js <script src='dwr/util.js'>  </script>
  2. $(”username”) = document.getElementById(”username”);
  3. setValue(id, value):这个函数能操作大多数HTML元素
  4. getValue(id):getValue(id)是 setValue()对应的”读版本”。
  5. setValues():批量设置值
  6. getValues():批量获取值
  7. getText(id):为select列表设计的。你可能需要取得显示的文字,而不是当前选项的值。
  8. selectRange:选择一个输入框中的一定范围的文字。
  9. ……

Ajax框架DWR入门相关推荐

  1. b/s模式下的即时通讯,使用ajax框架dwr实现

    b/s模式下的即时通讯,使用ajax框架dwr实现 了解java的发展史可以知道,客户端编程在基于浏览器的编程方面,以前的做法是用applet实现客户端编程,在当时算是流行的做法,但是随着IE的不一致 ...

  2. Ajax框架,DWR介绍,应用,样例

    使用Ajax框架 1.简化JavaScript的开发难度 2.解决浏览器的兼容性问题 3. 简化开发流程 经常使用Ajax框架 Prototype 一个纯粹的JavaScript函数库,对Ajax提供 ...

  3. 【AJAX】DWR入门教程

    DWR(Direct Web Remoting)是一个WEB远程调用框架.利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给 ...

  4. ajax框架dwr开发

    dwr实现AJAX非常先进.比如动态生成javaScript代码:隐藏的HTTP协议,javascript用于java代码交互的javaScript对象. 自从我开始DWR感觉DWR是用javaScr ...

  5. 80篇各ajax框架入门教程

    AJAX经典入门教程,入门实例,入门代码收藏. *VS2008 Ajax.NET快速入门教程* (2008-3-25) [本站原创]Ajax!?!入门教程之道 (2008-4-13) [本站原创]Aj ...

  6. Ajax框架及原理分析--视频

    Ajax框架及原理分析 下载地址:http://v.51work6.com/courseInfoRedirect.do?action=courseInfo&courseId=240576 AJ ...

  7. ssh框架怎么写ajax,SSH框架+Ajax(运用dwr框架)综合小实例[精校版本]

    <SSH框架+Ajax(运用dwr框架)综合小实例[精校版本]>由会员分享,可在线阅读,更多相关<SSH框架+Ajax(运用dwr框架)综合小实例[精校版本](36页珍藏版)> ...

  8. DWR入门教程(http://www.cnblogs.com/cyjch/archive/2012/02/16/2353758.html)

    文章转载自<http://www.cnblogs.com/cyjch/archive/2012/02/16/2353758.html>,多谢大牛分享! DWR入门教程 DWR(Direct ...

  9. 最优秀的ajax框架 --转

    毫无疑问,Ajax作为当前最火爆的技术之一,其优秀的框架层出不穷.Prototype.Dwr.Dojo.JQuery.YUi-- 都是非常出色的产品.本专题为您介绍了目前十大流行的Ajax框架及各自特 ...

最新文章

  1. Uber 前无人驾驶工程师告诉你,国内无人驾驶之路还要走多久?
  2. 万众瞩目的特斯拉AI日,会有哪些惊喜?
  3. JQ用变量关联input name
  4. JSP+Servlet+Ajax实现用户增删改查的例子
  5. vb鼠标涂鸦板的制作
  6. Spring常用注解汇总
  7. 【网络】HTTPS 怎么保证数据传输的安全性
  8. Fedora 中的 Yum 命令详解
  9. CentOS6.8下MySQL数据库忘记root密码解决方法
  10. 元素周期表排列的规律_高中化高中化学元素周期表六大常考规律与特征学元素周期表六大常考规律与特征...
  11. 生成树模型 matlab,最小生成树matlab
  12. 计算机是如何储存信息的,计算机是如何储存信息的
  13. 试题 算法训练 调和数列问题---蓝桥杯
  14. Elasticsearch(ES)创建索引
  15. java正整数分解因数_java如何将一个正整数分解质因数
  16. DevExpress项目升级总结
  17. C++进程间通信的十一种方法
  18. hdu 4399 树形dp
  19. 写一手好SQL很有必要
  20. Shell Tools and Scripting

热门文章

  1. 了解哪些c++11特性?
  2. C++普通引用和常引用
  3. 8.Eclipse中创建Maven Web项目
  4. C++中的结构体,C管理进程代码,C++管理进程代码,C语言中的联合体
  5. JVM可创建的最大线程数
  6. Oracle中PLSQL中if语句的写法
  7. megacli通过盘符定位物理盘_柴少鹏的官方网站
  8. linux里创建表空间和用户名,linux下oracle的启动和创建表空间用户
  9. 深度学习框架的比较(MXNet, Caffe, TensorFlow, Torch, Theano)
  10. [深度学习基础] 4. 卷积神经网络