`

DWR 框架学习之<一>入门

    博客分类:
  • AJAX
阅读更多

DWRDirect Web Remoting),能够为现有的基于JavaScript/JavaWEB应用轻松加入AJAX功能。
通过DWR,可以在JavaScript里简单地使用[Java类名.方法名]的形式直接调用Java里的方法。
DWR
主要特点:
1
,异步调用。除了支持从JavaScriptJava方法(浏览器到服务器)的异步调用之外,从DWR2.0开始,DWR开始支持从服务器到JavaScript的反转异步调用功能(ReversedAJAX)。
2
,与其他框架的依存度低,可简单与SpringStrutsWebWorkJSFHibernateBeehiveEJB3Seasar2等框架集成。
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是什么



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 2 的安装


首先,从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 目录,安装完成。

DWRsample
将下载的dwr.war文件拷贝到$TOMCAT_HOME/webapps目录下,启动Tomcat
※dwr.zip
的情况下,将dwr.zip重命名为dwr.war即可。

打开浏览器,访问http://localhost:8080/dwr/,显示以下页面:

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

2DWR设置


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>

 

3,创建一个简单的Java类:


创建好的JavaHelloDwr的内容如下:
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类的方法。

 

5,创建调用Java类的HTML文件。


创建好的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>


解说:

  • HelloDWR.zip (897.4 KB)
  • 描述: DWR示例
  • 下载次数: 91
分享到:
评论

相关推荐

    一个简单的DWR入门例子

    在这个简单的DWR入门例子中,我们将探讨如何设置和使用DWR框架,以便在客户端和服务器之间进行高效的数据交换。 首先,我们需要了解DWR的基本概念。DWR的核心是它提供的远程调用机制,通过AJAX(Asynchronous ...

    Dwr入门操作手册

    总结,DWR作为一种强大的Ajax框架,不仅简化了前后端交互的复杂性,还提供了丰富的调试工具,使开发者能够更加专注于业务逻辑的实现,而无需过多关注通信细节。通过本操作手册的学习,相信读者已经掌握了DWR的基本...

    AJAX技术之DWR框架入门

    **AJAX技术之DWR框架入门** AJAX(Asynchronous JavaScript and XML)是一种在无需刷新整个页面的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新。这种技术可以提升...

    DWR框架学习资料...

    DWR(Direct Web Remoting)框架是一个开源的Java库,它允许Web应用程序在客户端和...通过学习这两个PPT,你可以全面了解DWR框架,掌握其核心概念和使用技巧,从而在实际项目中更好地运用DWR实现高效、动态的Web应用。

    dwr框架入门学习文档

    DWR 框架入门学习文档 DWR(Direct Web Remoting)是一个开放源码的使用 Apache 许可协议的解决方案,它包含服务器端 Java 库、一个 DWR Servlet 以及 JavaScript 库。DWR 框架是最成熟的 Ajax-RPC 工具包之一,...

    DWR+入門與應用

    &lt;title&gt;第一个DWR程序&lt;/title&gt; &lt;script type='text/javascript' src='/path/to/dwr/engine.js'&gt;&lt;/script&gt; &lt;script type='text/javascript' src='/path/to/dwr/interface/Hello.js'&gt;&lt;/script&gt; &lt;script type='text...

    DWR学习笔记

    DWR(Direct Web Remoting)是一种开源框架,专门设计用于简化Web页面与Java类之间的交互。它通过提供一种新的方法来实现Ajax技术,使得浏览器中的JavaScript代码能够如同在本地运行一样调用服务器端的Java函数。这...

    DWR学者能够很快的学会

    ### DWR快速学习指南 #### 一、简介 DWR(Direct Web Remoting)是一种用于简化Ajax应用程序开发的框架,它允许JavaScript直接调用服务器端的Java方法,...希望本文能帮助您快速入门DWR,开启您的高效Web开发之旅。

    dwr实例教程 很好的入门实例

    - DWR的核心功能之一就是能够在客户端JavaScript中直接调用服务器端的Java方法。 - 通过`DWRUserAccess.js`中的`save`方法,可以将前端表单中的数据发送到服务器端进行处理。 2. **数据转换**: - 在服务器端,...

    DWR框架开发详解从入门到精通

    通过阅读"DWR框架开发详解从入门到精通"这本书,你将能够掌握这些技能,并熟练地在项目中应用DWR框架,提升Web应用的用户体验和开发效率。 为了更好地学习DWR,建议你阅读提供的`DWRchinese(1).pdf`文档,它包含了...

    dwr框架入门程序

    在"Dwr框架入门程序"中,我们将探讨DWR的基本概念、安装、配置以及如何创建一个简单的"Hello World"应用。 1. **DWR框架的基本概念**: DWR的核心功能是提供一种安全、高效的方式,让JavaScript能够调用服务器上的...

    ajax的DWR框架入门例子

    在这个"ajax的DWR框架入门例子"中,我们将深入理解DWR如何工作以及如何在实际项目中应用。这个例子包含了源代码和调试成功的案例,这意味着我们可以直接运行和学习,而无需从零开始搭建环境。 首先,DWR的基本概念...

    Ajax资料,DWR框架资料

    学习和理解Ajax及DWR框架,可以帮助开发者构建更加高效、互动性强的Web应用,提升用户在浏览网页时的体验。无论是前端的JavaScript编程,还是后端的Java服务,DWR都提供了强大的工具来简化这个过程。对于希望深入...

    DWR2.0中文文档

    DWR2.0中文文档不仅是一份详尽的指南,更是深入理解DWR框架及其在各种Web应用框架中应用的关键。通过本书的学习,开发者能够掌握DWR的基本概念、配置方法以及与主流Web框架的整合技巧,为构建高效、安全的Ajax应用...

    Ajax框架DWR 入门例子

    DWR (Direct Web Remoting) 是一个...通过学习DWR,开发者能够构建出交互性强、用户体验优良的Web应用程序,而这个入门例子将是你开启DWR之旅的良好起点。记得动手实践,不断探索,才能真正掌握这一强大的Ajax框架。

    Ajax的DWR入门例子

    在这个示例中,SayHello.java类被映射到JavaScript中的SayHello对象,使用`&lt;create&gt;`标签指定类和别名。 - **配置web.xml**:在web.xml中添加DWR的Servlet配置,启用调试模式,并设置主动反向Ajax。 4. **运行与...

    DWR中文文档(pdf)

    **2.5 插件配置**:通过`&lt;plugin&gt;`元素配置DWR插件,如用于集成Spring框架的插件。 **2.6 测试模式配置**:使用`debugMode`参数开启测试模式,方便开发过程中的调试。 #### 四、dwr.xml配置 **3.1 纵览**:`dwr....

    DWR课件 PPT DWR的配置及入门

    综上所述,DWR框架为Web开发者提供了一个强大的工具,通过它可以轻松地构建富客户端应用程序,实现前后端的无缝交互。对于初学者来说,理解DWR的配置和工作原理是掌握这个框架的关键。通过深入学习"DWR开发培训.ppt...

Global site tag (gtag.js) - Google Analytics