本文内容:
DWR介绍
DWR原理
DWR开发步骤
dwr.xml说明
DWR核心引擎
DWR工具包
DWR介绍
What is DWR?:
在服务器上运行的Servlet来处理请求并把结果返回浏览器。
运行在浏览器上的Javascript,可以发送请求,并动态 改变页面。DWR会根据你的Java类动态的生成Javascript代码。这些代码魔力是让你感觉整个Ajax调用都是在浏览器上发生的,但事实上是服务器执行了这些代码,DWR负责数据的传递和转换。
这种Java和Javascript之间的远程调用会让DWR用户感觉像是曾经习惯使用的RMI或SOAP的RPC机制。而且这一过程还不需要额外的浏览器插件。
Java是同步的,而Ajax是异步的。所以当你调用一个远程方法时,你要给DWR一个回调函数,当数据从网络上回来时,DWR会调用这个函数。
DWR的作用:
有效地从应用程序代码中把 Ajax 的全部请求-响应循环消除掉。
客户端代码再也不需要直接处理XMLHttpRequest 对象或者服务器的响应。
不再需要编写对象的序列化代码或者使用第三方工具才能把对象变成 XML。
不再需要编写 servlet 代码把 Ajax 请求调整成对 Java 域对象的调用
DWR原理
DWR是作为Web应用的一个Servlet进行部 署的,是一个黑盒子中的servlet。
对于公共有的每个类,DWR 动态地生成包含在 Web 页面中的 JavaScript。生成的JavaScript 包含存根函数,代表 Java 类上的 对应方法并在幕后执行XMLHttpRequest。这些请求被发送给DWR。
把请求翻译成服务器端 Java 对象上的方法调用并把方法的返回值放在servlet 响应中发送回客户端,编码成 JavaScript。
DWR开发步骤
Download jar包
http://getahead.org/dwr/download
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类
不要出现Javascript保留关键字;和保留关键字同名的函数指定被排除。多数Javascript的关键字和Java是相同的。所以你不可能有一个方法叫做”try()”。但是该死”delete()”对与Javascript有着特殊意义,而对Java则不是。
Javascript方法重载是不支持的,所以尽量不要再Java中使用。
一个小例子:
下载: HelloWorld.java
package 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
页面中加入:
<script type='text/javascript' src='dwr/engine.js' />
设置超时时间:
全局设置:
dwr.engine.setTimeout(1000);
局部设置(优先级高):
Remote.singleMethod(params, { callback:function(data)
{ ... }, timeout:2000 });
错误处理:
全局设置:
function handler(msg) {
alert(msg);
}
dwr.engine.setErrorHandler(handler);
局部设置:
Remote.method(params, {
callback:function(data) { ... },
errorHandler:handler
});
批量执行 :
dwr.engine.beginBatch();
var selValue=…;
//调用服务器Java程序
Province.getCitiesByProvince(selValue,callBack);
Province.getNick(callBack2);
dwr.engine.endBatch({
timeout:3000
});
//…
DWR工具包
必须在页面引入util.js
<script src='dwr/util.js'>
</script>
$(”username”) = document.getElementById(”username”);
setValue(id, value):这个函数能操作大多数HTML元素
getValue(id):getValue(id)是 setValue()对应的”读版本”。
setValues():批量设置值
getValues():批量获取值
getText(id):为select列表设计的。你可能需要取得显示的文字,而不是当前选项的值。
selectRange:选择一个输入框中的一定范围的文字。
……
本文来源于Jacken.zone(http://www.jacken.com.cn),原文地址: http://www.jacken.com.cn/web20-pets-ajax-frame-dwr.yy/
分享到:
相关推荐
DWR (Direct Web Remoting) 是一个开源的Ajax框架,它允许JavaScript在浏览器端与Java在服务器端进行直接通信,从而实现动态、无刷新的Web应用程序。本入门例子旨在帮助初学者快速理解并掌握DWR的基本用法和功能。 ...
在这个"ajax的DWR框架入门例子"中,我们将深入理解DWR如何工作以及如何在实际项目中应用。这个例子包含了源代码和调试成功的案例,这意味着我们可以直接运行和学习,而无需从零开始搭建环境。 首先,DWR的基本概念...
DWR相比其他AJAX框架,如jQuery、Prototype等,更专注于后端Java的集成。它提供了一种更直接的Java到JavaScript的映射,使得开发者可以利用已有的Java代码进行AJAX开发,而不需要学习新的客户端库。然而,对于只关心...
1. **为什么要使用Ajax框架**: - **代码复用和简化**:框架如DWR封装了网络通信、数据转换等复杂过程,开发者无需关心底层实现,只需要关注业务逻辑。 - **提高效率**:通过预定义的接口和类,开发Ajax应用的速度...
本文将详细介绍如何使用DWR框架来整合JSF,为初学者提供一个入门指南。 1. **DWR简介**:DWR的核心功能是创建了一个JavaScript到Java的远程调用层,使得前端的JavaScript代码能够像调用本地函数一样调用服务器上的...
学习和理解Ajax及DWR框架,可以帮助开发者构建更加高效、互动性强的Web应用,提升用户在浏览网页时的体验。无论是前端的JavaScript编程,还是后端的Java服务,DWR都提供了强大的工具来简化这个过程。对于希望深入...
博文链接:https://myd.iteye.com/blog/244882
#### 一、DWR 快速入门 **1. DWR 简介** DWR (Direct Web Remoting) 是一种用于简化 Ajax 开发的 Java 库。它允许前端 JavaScript 直接调用后端 Java 对象的方法,从而减少了开发人员在客户端和服务器端之间进行...
本文将从基本 AJAX 流程开始,介绍 DWR 框架的入门知识点。 一、AJAX 基本介绍 Ajax(Asynchronous JavaScript And XML)是一种使用混合了 HTML(或 XHTML)和层叠样式表作为表达信息,来创建交互式的 Web 应用的...
本压缩包文件“Ajax&DWR帮助文档.rar”提供了有关这两种技术的详细资料,包括“DWR中文文档.pdf”和“AJAX入门手册.chm”,旨在帮助开发者深入理解和应用Ajax与DWR。 Ajax是一种在不刷新整个页面的情况下与服务器...
**三、DWR入门步骤** 1. **引入DWR库**:在项目中添加DWR的JAR包,并配置web.xml文件,声明DWR的Servlet。 2. **创建Java类**:编写服务器端的Java类,包含需要暴露给JavaScript的方法。 3. **生成配置文件**:使用...
- 分析DWR与其他Ajax框架的区别。 #### 四、DWR综合实践:用户管理模块实现 1. **系统功能界面**: - 设计用户管理界面,包括用户列表、新增用户、编辑用户等功能。 2. **编写后台业务实现**: - 创建DAO层和...
DWR(Direct Web Remoting)是一种优秀的开源框架,专门用于简化Web应用程序中的Ajax(Asynchronous JavaScript and XML)开发。Ajax技术允许网页在不刷新整个页面的情况下与服务器进行交互,提高了用户体验。DWR...
在这个"DWR入门例子"中,我们将深入探讨如何使用DWR进行服务器和客户端之间的数据交换。 1. **DWR基本概念** - **反向AJAX**: DWR的核心理念是反向AJAX,即由服务器主动向客户端推送数据,而不仅仅是响应客户端的...
通过深入学习"DWR+dwr入门手册",你将掌握如何使用DWR构建高效的Ajax应用,提升Web应用的用户体验。记得实践中不断探索,理解DWR的原理并熟练运用到实际项目中,这将对你的IT职业生涯大有裨益。
在"Dwr框架入门程序"中,我们将探讨DWR的基本概念、安装、配置以及如何创建一个简单的"Hello World"应用。 1. **DWR框架的基本概念**: DWR的核心功能是提供一种安全、高效的方式,让JavaScript能够调用服务器上的...
STRUT2 DWR入门教程 DWR(Direct Web Remoting)是一种开源JavaScript库,它允许在Web应用程序中实现Ajax功能,使用户界面更加动态和交互性更强。与STRUT2框架结合使用,DWR可以为Java后端提供简单且高效的远程方法...