一.原理
DWR 是一个引擎,可以把服务器端 Java 对象的方法公开给 JavaScript 代码。使用 DWR 可以有效地从应用程序代码中把 Ajax 的全部请求-响应循环消除掉。这意味着客户端代码再也不需要直接处理 XMLHttpRequest 对象或者服务器的响应。不再需要编写对象的序列化代码或者使用第三方工具才能把对象变成 XML。甚至不再需要编写 servlet 代码把 Ajax 请求调整成对 Java 域对象的调用。虽然 DWR 不是 Java 平台上唯一可用的 Ajax-RPC 工具包,但是它是最成熟的,而且提供了许多有用的功能。 DWR 是作为 Web 应用程序中的 servlet 部署的。把它看作一个黑盒子,这个 servlet 有两个主要作用:首先,对于公开的每个类,DWR 动态地生成包含在 Web 页面中的 JavaScript。生成的 JavaScript 包含存根函数,代表 Java 类上的对应方法并在幕后执行 XMLHttpRequest。这些请求被发送给 DWR,这时它的第二个作用就是把请求翻译成服务器端 Java 对象上的方法调用并把方法的返回值放在 servlet 响应中发送回客户端,编码成 JavaScript。
二.使用DWR的开发步骤
1)下载dwr.jar并将其加载到应用程序lib包下,并且将JAR包中的engine.js,util.js放在应用程序指定目录下,如dwr,注意这里要考虑目录路径问题
2)配置应用程序部署描述XML文件
以下为通用默认配置
<!---->xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>dwr-invokerservlet-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServletservlet-class>
<init-param>
<param-name>debugparam-name>
<param-value>trueparam-value>
init-param>
servlet>
<servlet-mapping>
<servlet-name>dwr-invokerservlet-name>
<url-pattern>/dwr/*url-pattern>
servlet-mapping>
web-app>
这一步骤的目标是将DWRServlet这个servlet配置到应用程序中
3)配置dwr.xml
<!---->xml version="1.0" encoding="UTF-8"?>
<!---->DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
<allow>
<create creator="new" javascript="AIX">
<param name="class" value="com.longcredit.KEye.app.business.AIXStatusBusiness"/>
create>
allow>
dwr>
在这里要注意的是:
<create creator="new" javascript="AIX">这里的AIX是DWR自己生成的JS文件的名称,在网页中将被引用的JS文件名称
value="com.longcredit.KEye.app.business.AIXStatusBusiness"/>
这里的value值是一个类路径及其名称,该类为业务类,将被DWR映射成JS文件调用,它的调用名就是上面的AIX
1) 编写AIXStatusBusiness类
public class AIXStatusBusiness {
public String remove(String id){
//执行command
//返回状态
//把返回的XML结果解析
return id;
}
}
2) 在页面中调用
首先要引入JS
<script type="text/javascript" src='dwr/interface/AIX.js'>script>
<script type='text/javascript' src='dwr/engine.js'>script>
<script type='text/javascript' src='dwr/util.js'>script>
目录结构如下图
dwr
--engine.js
--util.js
WEB-INF
---- web.xml
-----AIX.page
---AIX.html
我们要在AIX页面中调用,而JS文件存储在 dwr目录下。
6)在AIX.html页面中触发业务类定义的方法
AIX.remove(id,“回掉函数”);
分享到:
相关推荐
标题中的“dwr小项目及资料”暗示我们这是一套关于DWR的实践项目和学习资源,可能包含了一些示例代码和文档,帮助我们理解如何在实际项目中应用DWR。 描述中提到的“实现前台javascript直接调用后台业务方法和后台...
Java的DWR(Direct Web Remoting)项目是一种用于在Web应用程序中实现实时交互的技术,它允许JavaScript在客户端与服务器端的Java代码之间进行直接调用,极大地简化了富Internet应用(RIA)的开发。本项目是基于...
DWR (Direct Web Remoting) 是一种JavaScript库,它允许Web应用程序在客户端和服务器之间进行实时的、动态的双向通信。在Java应用开发中,DWR通常用于实现AJAX功能,使得网页可以无刷新地与服务器进行交互。DWR通过...
在这个“dwr的应用项目小例子”中,我们可以深入理解DWR如何与JavaScript和AJAX相结合,为Web开发带来便利。 首先,DWR的核心功能是使Java方法可以直接在客户端JavaScript中调用,就像它们是本地函数一样。这极大地...
在这个"初学DWR时做的一个项目实例"中,我们将深入探讨DWR的核心概念、工作原理以及如何通过实际代码来运用这些知识。 1. **DWR的基本概念** DWR使得JavaScript可以调用Java方法,仿佛它们都是本地函数一样。这极...
DWR(Direct Web Remoting)是一种Java库,它允许JavaScript在客户端与服务器端进行直接的交互,从而实现在Web应用程序中的Ajax功能。DWR的主要目标是简化前后端的数据交换,提高用户体验,使得Web应用能够像桌面...
例如,在压缩包内的文件"A051]使用DWR开发AJAX+For+J2EE.wrf"可能是一个演示或者教程,详细介绍了如何使用DWR框架在J2EE环境中构建AJAX应用。这个文件可能涵盖从安装DWR,配置web.xml,编写可远程调用的Java类,到在...
在"Ajaxapp"这个实例中,很可能是演示了如何结合使用DWR和Dojo来创建一个基于Ajax的应用。可能包含了使用Dojo创建交互式的前端界面,以及通过DWR实现前后端数据交换的代码示例。学习这个实例可以帮助你理解这两个...
DWR (Direct Web Remoting) 是一个开源Java库,它允许Web应用程序在浏览器和服务器之间进行实时通信,而无需使用Ajax或Flash等技术。DWR简化了JavaScript与服务器端Java对象之间的交互,使得动态更新页面变得更为...
总的来说,"学习dwr的一个例子"这个压缩包提供了一个实战平台,帮助初学者理解DWR的使用方法和它在实际项目中的应用,通过学习和研究这个例子,你将能够熟练地将DWR集成到你的Web应用中,提升Web应用的交互性和性能...
DWR (Direct Web Remoting) 是一种JavaScript库,它允许Web应用程序在客户端和服务器之间进行实时通信,无需刷新页面。DWR3.0是其一个重要版本,提供了对现代浏览器的支持,包括新版的Opera,但同时也注意到在较旧的...
在将DWR应用到项目中时,要确保采取适当的安全措施,以防止潜在的注入攻击和其他安全威胁。 为了最大限度地利用DWR,开发者需要熟悉JavaScript以及Java后端编程。只有这样,才能充分利用DWR提供的全部功能,编写出...
- 传统方式:在web.xml中配置DWRServlet,并在应用中创建dwr.xml配置文件,定义可被远程调用的Java对象和方法。 - 注解方式:使用DWR的注解,如`@RemoteProxy`,可以直接标记在Java类或方法上,实现零配置的DWR...
Direct Web Remoting (DWR) 是一个开源的Java库,它允许JavaScript在浏览器和服务器之间进行交互,从而实现Ajax(Asynchronous JavaScript and XML)应用程序。DWR 3.0是该框架的一个版本,提供了增强的功能和性能...
Direct Web Remoting (DWR) 是一个开源的Java库,它允许JavaScript在浏览器端与服务器端的Java对象进行交互,从而实现动态Web应用程序。DWR通过AJAX技术提供了一种简单的方法来创建富客户端界面,使得用户可以在不...
1. **数据动态加载**:在需要频繁与服务器交互的数据密集型应用中,DWR可以显著提高页面加载速度。 2. **实时通信**:如在线聊天、股票行情等需要实时获取数据的应用场景。 3. **表单验证**:在表单提交前进行服务器...
DWR(Direct Web Remoting)是一种Java库,用于在Web应用程序中实现实时的JavaScript到服务器端Java对象的通信。这个技术允许开发者在浏览器中直接调用服务器端的方法,极大地简化了AJAX(Asynchronous JavaScript ...
DWR2.0中文文档不仅是一份详尽的指南,更是深入理解DWR框架及其在各种Web应用框架中应用的关键。通过本书的学习,开发者能够掌握DWR的基本概念、配置方法以及与主流Web框架的整合技巧,为构建高效、安全的Ajax应用...
在提供的“AJAX框架DWR简单应用.pdf”文件中,你可能会找到关于如何设置DWR环境、编写Java接口、配置DWR配置文件、在前端JavaScript中使用DWR,以及示例代码和实际运行效果的详细教程。这个文件是学习和理解DWR工作...
DWR (Direct Web Remoting) 是一个开源的Java库,它允许JavaScript在浏览器端与服务器端的Java对象进行交互,实现动态的Web应用。DWR简化了AJAX(Asynchronous JavaScript and XML)的开发,使得开发者可以像调用...