DWR(Direct Web Remoting),能够为现有的基于JavaScript/Java的WEB应用轻松加入AJAX功能。
通过DWR,可以在JavaScript里简单地使用[Java类名.方法名]的形式直接调用Java里的方法。
DWR主要特点:
1,异步调用。除了支持从JavaScript到Java方法(浏览器到服务器)的异步调用之外,从DWR2.0开始,DWR开始支持从服务器到JavaScript的反转异步调用功能(ReversedAJAX)。
2,与其他框架的依存度低,可简单与Spring,Struts,WebWork,JSF,Hibernate,Beehive,EJB3,Seasar2等框架集成。
3,可测试性好
4,多浏览器支持
5,支持免dwr.xml配置annotation功能。
6,成熟健壮,有丰富的帮助文档资料。
License:Apache Software License v2.
DWR官方首页:
http://getahead.org/dwr/
DWR(Direct Web Remoting)是一个WEB Ajax轻量级框架。本文,介绍DWR2.0.3的安装与使用。
DWR(Direct Web Remoting)是一个WEB Ajax轻量级框架。它可以为WEB应用轻松加入Ajax功能,使用DWR,可以简单地从JavaScript调用Java中定义的方法。
DWR - 轻量级AJAX框架:Easy Ajax for Java
本文,介绍DWR2.0.3的安装与使用。
-除了部分差异之外,DWR1.x的安装与使用同DWR2基本一样。
测试环境:
DWR Version:DWR Version 2.0.3
Web服务器:Tomcat 5.5
OS:Windows XP
开始本文之前,请确认您已经安装好了至少一款WEB服务器。
有关WEB服务器的安装,可以参考:
Linux 环境下 Web服务器Tomcat的安装与使用入门
Windows 环境下 Web服务器Tomcat的安装与使用入门
首先,从DWR的官方网站 下载DWR的最新稳定版(这里,以dwr-2.0.3为例加以说明)。
dwr.jar
实际上的开发需要使用到的文件
dwr.war
dwr sample项目
dwr-2.0.3-src.zip
dwr 2.0.3源代码
实际上的开发需要使用到的文件只有dwr.jar一个文件。
如果你对DWR还不太熟悉,建议你一起下载dwr.war文件,通过dwr.war,你可以学习dwr的基本用法等。
将下载的dwr.jar文件拷贝到目标WEB项目中的 WEB-INF/lib 目录,安装完成。
DWR的sample
将下载的dwr.war文件拷贝到$TOMCAT_HOME/webapps目录下,启动Tomcat。
※dwr.zip的情况下,将dwr.zip重命名为dwr.war即可。
打开浏览器,访问http://localhost:8080/dwr/,显示以下页面:
1,engine.js 以及util.js文件是DWR框架提供的 Javascript 文件,它们被包含在dwr.jar文件之中。
2,使用DWR,需要在web.xml定义DwrServlet,如下:
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<display-name>DWR Servlet</display-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>
DWR1.x的情况下,为:
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
3,要在Javascript中调用Java类的方法,需要在dwr.xml中作类似以下设置:
<dwr>
<allow>
<create creator="new" javascript="与Java类相对应的Javascript名">
<param name="class" value="Java类名"/>
</create>
</allow>
</dwr>
一般来说,定义 [与Java类相对应的Javascript名] = [Java类名] 就OK了。
4,JSP/HTML文件中作以下定义:
<script type='text/javascript' src='dwr/engine.js'> </script>
<script type='text/javascript' src='dwr/util.js'> </script>
<script type='text/javascript' src='dwr/interface/dwr.xml定义好的Javascript名.js'> </script>
本文将使用DWR2,开发一个简单地WEB应用程序:Hello World DWR。
Hello World DWR将从HelloDwr.html 文件调用Java方法。
开发与测试环境:
IDE:Eclipse3.3
WEB服务器:Tomcat5.5
OS:WindowsXP
DWR版本:DWR 2.0.3
步骤
1,利用Eclipse创建一个新项目“HelloDWR”。
创建好的项目具有以下阶层:
HelloDWR
\src
\build
\WebContent
\ META-INF
MANIFEST.MF
\ WEB-INF
\ classes
\ lib
web.xml
1)将下载的dwr.jar文件拷贝到HelloDWR/WebContent/WEB-INF/lib目录下。
2)打开web.xml文件,定义DWR servlet,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" 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">
<display-name>HelloDWR</display-name>
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<display-name>DWR Servlet</display-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>
</web-app>
创建好的Java类HelloDwr的内容如下:
HelloDwr.java
package com.syboos.test.dwr;
public class HelloDwr {
//无参数方法定义
public String sayHello() {
return "Hello DWR!";
}
//有参数方法定义
public String sayHelloWithParam(String name) {
return "Hello:" + name;
}
}
4,在HelloDWR/WebContent/WEB-INF目录下创建dwr.xml文件
dwr.xml内容为:
<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
"http://getahead.org/dwr/dwr20.dtd">
<dwr>
<allow>
<create creator="new" javascript="HelloDwr">
<param name="class" value="com.syboos.test.dwr.HelloDwr"/>
</create>
</allow>
</dwr>
解说:
1), <create creator="new" javascript="HelloDwr">
为javascript属性设置Java类的Javascript类名。一般情况,设置与Java类的名称同名。
2), <param name="class" value="com.syboos.test.dwr.HelloDwr"/>
为value属性设置Java类的全名(包名.类名)
只作以上简单的设置,便可以从HTML文件中调用HelloDwr类的方法。
创建好的HelloDwr.html文件内容如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-31j">
<title>Insert title here</title>
<script type='text/javascript' src='dwr/engine.js'> </script>
<script type='text/javascript' src='dwr/util.js'> </script>
<script type='text/javascript' src='dwr/interface/HelloDwr.js'> </script>
<script language="javascript">
//调用无参数Java方法
function sayHello() {
HelloDwr.sayHello(function(data) {
dwr.util.setValue("helloDwrReply", data);
});
}
//调用有参数的Java方法
function sayHelloWithParam() {
var name = dwr.util.getValue("name"); //参数
HelloDwr.sayHelloWithParam(name, function(data) {
dwr.util.setValue("helloDwrReply2", data);
});
}
</script>
</head>
<body>
<input type="button" value="HelloDwr.sayHello()" onclick="sayHello()" />
<br>Replied:
<!-- 显示HelloDwr.sayHello方法的返回值 -->
<div id="helloDwrReply">
</div>
<hr>
<input id="name" type="text">
<input type="button" value="HelloDwr.sayHelloWithParam()" onclick="sayHelloWithParam(name)" />
<br>Replied:
<!-- 显示HelloDwr.sayHelloWithParam方法的返回值 -->
<div id="helloDwrReply2">
</div>
</body>
</html>
解说:
分享到:
相关推荐
在这个简单的DWR入门例子中,我们将探讨如何设置和使用DWR框架,以便在客户端和服务器之间进行高效的数据交换。 首先,我们需要了解DWR的基本概念。DWR的核心是它提供的远程调用机制,通过AJAX(Asynchronous ...
总结,DWR作为一种强大的Ajax框架,不仅简化了前后端交互的复杂性,还提供了丰富的调试工具,使开发者能够更加专注于业务逻辑的实现,而无需过多关注通信细节。通过本操作手册的学习,相信读者已经掌握了DWR的基本...
**AJAX技术之DWR框架入门** AJAX(Asynchronous JavaScript and XML)是一种在无需刷新整个页面的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新。这种技术可以提升...
DWR(Direct Web Remoting)框架是一个开源的Java库,它允许Web应用程序在客户端和...通过学习这两个PPT,你可以全面了解DWR框架,掌握其核心概念和使用技巧,从而在实际项目中更好地运用DWR实现高效、动态的Web应用。
DWR 框架入门学习文档 DWR(Direct Web Remoting)是一个开放源码的使用 Apache 许可协议的解决方案,它包含服务器端 Java 库、一个 DWR Servlet 以及 JavaScript 库。DWR 框架是最成熟的 Ajax-RPC 工具包之一,...
<title>第一个DWR程序</title> <script type='text/javascript' src='/path/to/dwr/engine.js'></script> <script type='text/javascript' src='/path/to/dwr/interface/Hello.js'></script> <script type='text...
DWR(Direct Web Remoting)是一种开源框架,专门设计用于简化Web页面与Java类之间的交互。它通过提供一种新的方法来实现Ajax技术,使得浏览器中的JavaScript代码能够如同在本地运行一样调用服务器端的Java函数。这...
### DWR快速学习指南 #### 一、简介 DWR(Direct Web Remoting)是一种用于简化Ajax应用程序开发的框架,它允许JavaScript直接调用服务器端的Java方法,...希望本文能帮助您快速入门DWR,开启您的高效Web开发之旅。
- DWR的核心功能之一就是能够在客户端JavaScript中直接调用服务器端的Java方法。 - 通过`DWRUserAccess.js`中的`save`方法,可以将前端表单中的数据发送到服务器端进行处理。 2. **数据转换**: - 在服务器端,...
通过阅读"DWR框架开发详解从入门到精通"这本书,你将能够掌握这些技能,并熟练地在项目中应用DWR框架,提升Web应用的用户体验和开发效率。 为了更好地学习DWR,建议你阅读提供的`DWRchinese(1).pdf`文档,它包含了...
在"Dwr框架入门程序"中,我们将探讨DWR的基本概念、安装、配置以及如何创建一个简单的"Hello World"应用。 1. **DWR框架的基本概念**: DWR的核心功能是提供一种安全、高效的方式,让JavaScript能够调用服务器上的...
在这个"ajax的DWR框架入门例子"中,我们将深入理解DWR如何工作以及如何在实际项目中应用。这个例子包含了源代码和调试成功的案例,这意味着我们可以直接运行和学习,而无需从零开始搭建环境。 首先,DWR的基本概念...
学习和理解Ajax及DWR框架,可以帮助开发者构建更加高效、互动性强的Web应用,提升用户在浏览网页时的体验。无论是前端的JavaScript编程,还是后端的Java服务,DWR都提供了强大的工具来简化这个过程。对于希望深入...
DWR2.0中文文档不仅是一份详尽的指南,更是深入理解DWR框架及其在各种Web应用框架中应用的关键。通过本书的学习,开发者能够掌握DWR的基本概念、配置方法以及与主流Web框架的整合技巧,为构建高效、安全的Ajax应用...
DWR (Direct Web Remoting) 是一个...通过学习DWR,开发者能够构建出交互性强、用户体验优良的Web应用程序,而这个入门例子将是你开启DWR之旅的良好起点。记得动手实践,不断探索,才能真正掌握这一强大的Ajax框架。
在这个示例中,SayHello.java类被映射到JavaScript中的SayHello对象,使用`<create>`标签指定类和别名。 - **配置web.xml**:在web.xml中添加DWR的Servlet配置,启用调试模式,并设置主动反向Ajax。 4. **运行与...
**2.5 插件配置**:通过`<plugin>`元素配置DWR插件,如用于集成Spring框架的插件。 **2.6 测试模式配置**:使用`debugMode`参数开启测试模式,方便开发过程中的调试。 #### 四、dwr.xml配置 **3.1 纵览**:`dwr....
综上所述,DWR框架为Web开发者提供了一个强大的工具,通过它可以轻松地构建富客户端应用程序,实现前后端的无缝交互。对于初学者来说,理解DWR的配置和工作原理是掌握这个框架的关键。通过深入学习"DWR开发培训.ppt...