`
yanglei008
  • 浏览: 85075 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ajax dwr入门介绍

    博客分类:
  • ajax
阅读更多
DWR  ---   Direct Web Remoting


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开发步骤


修改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中使用。

 
package com.ray.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="com.ray.dwr.HelloWorld" />
            <include method="sayHello" />
        </create>
    </allow>
</dwr>

或者

<dwr>
    <allow>
        <create creator="spring" javascript="HelloWorld" > //javascript是指动态生成的javascript的文件名
            <param name="bean" value="helloWorld" />
            <include method="sayHello" />
        </create>
    </allow>
</dwr>
//第二种情况下 需要在spring 配置文件中配置一个
  <bean name="helloWord" class="com.ray.dwr.HelloWorld" /> 


如果include 不配置那么 HelloWorld类对象的所有方法都可以被执行。



在jsp页面中添加DWR AJAX库以及相应的js

注:  可以在启动项目后,IE地址栏输入 http://hostName:port/dwr/
    查看动态javascript 路径.以及所有可以运行的方法.

<script src='/dwr/engine.js'>
</script> 
<script src='/dwr/util.js'>
</script> 
<script src='/dwr/interface/HelloWorld.js'>
</script>



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>

1、$(”username”) = document.getElementById(”username”);
2、setValue(id, value):这个函数能操作大多数HTML元素
3、getValue(id):getValue(id)是 setValue()对应的”读版本”。
4、setValues():批量设置值
5、getValues():批量获取值
6、getText(id):为select列表设计的。你可能需要取得显示的文字,而不是当前选项的值。
7、selectRange:选择一个输入框中的一定范围的文字。
……
分享到:
评论

相关推荐

    ajax的DWR框架入门例子

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

    Ajax的DWR入门例子

    3. **DWR入门步骤**: - **准备环境**:首先,需要下载DWR的jar包,如dwrc.jar,将其放入项目的lib目录下。 - **创建Web项目**:创建一个新的Web项目,例如名为sayHello。 - **编写Java类**:创建一个名为...

    Ajax框架DWR 入门例子

    - 官方文档:DWR的官方文档详尽介绍了各个方面的用法,是学习DWR的重要参考资料。 - 示例代码:通过分析和运行提供的入门示例,可以直观地理解DWR的工作流程。 - 论坛和社区:加入DWR的开发者社区,与其他开发者...

    AJAX技术之DWR框架入门

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

    开发ajax之dwr入门例子

    DWR (Direct Web Remoting) 是一个开源Java库,它允许Web开发者在浏览器和服务器之间进行实时、异步的数据交换,极大地简化了AJAX(Asynchronous JavaScript and XML)的开发。DWR使得JavaScript可以直接调用Java...

    DWR Ajax简单入门例子

    这个"DWR Ajax简单入门例子"旨在帮助初学者快速理解和实践DWR的基本功能。通过这个例子,你可以了解到如何设置DWR环境、创建可远程调用的Java方法、配置DWR映射、以及在JavaScript中调用这些方法。随着对DWR的深入...

    AJAX DWR

    AJAX和DWR入门介绍。希望对各位有帮助

    Ajax学习之dwr入门详细实例

    在本文中,我们将深入探讨DWR(Direct Web Remoting)技术,通过一个具体的入门实例来了解如何使用DWR与Ajax进行交互。DWR是一种开源Java库,它允许Web应用程序在客户端JavaScript和服务器端Java之间进行实时、双向...

    dwr入门 dwr学习资料

    DWR(Direct Web Remoting)是一...通过学习这套DWR入门资料,你将能够熟练地使用DWR创建动态、交互性强的Web应用,提高开发效率,同时提升用户体验。实践中不断探索,理论与实战相结合,将助你在Web开发领域更进一步。

    DWR入门例子(一个很好的dwr入门例子)

    在这个"DWR入门例子"中,我们将深入探讨如何使用DWR进行服务器和客户端之间的数据交换。 1. **DWR基本概念** - **反向AJAX**: DWR的核心理念是反向AJAX,即由服务器主动向客户端推送数据,而不仅仅是响应客户端的...

    DWR+dwr入门手册

    通过深入学习"DWR+dwr入门手册",你将掌握如何使用DWR构建高效的Ajax应用,提升Web应用的用户体验。记得实践中不断探索,理解DWR的原理并熟练运用到实际项目中,这将对你的IT职业生涯大有裨益。

    dwr API dwr入门教程

    在DWR入门教程中,首先会介绍DWR的基本概念和工作原理。DWR的核心是将Java方法暴露给JavaScript,通过在服务器端创建一个称为"逆向Ajax"的通道,使得JavaScript能够调用远程服务器上的Java方法。这个过程涉及到几个...

    DWR中文文档 dwr入门 dwr.jar

    **DWR入门步骤:** 1. **引入依赖**:首先,你需要在项目中添加dwr.jar到类路径中,这将包含所有DWR运行所需的类和库。 2. **配置DWR**:在Web应用的Web-INF目录下创建dwr.xml配置文件,设置允许的远程接口和方法...

    Dwr入门操作手册及dwr包

    **DWR(Direct Web Remoting)入门操作手册及DWR包** DWR,全称Direct Web Remoting,是一个...通过深入学习"Dwr入门操作手册"并实践使用"dwr.jar",你可以掌握如何利用DWR构建交互性更强、用户体验更好的Web应用。

    STRUT2 DWR 入门STRUT2 DWR 入门STRUT2 DWR 入门STRUT2 DWR 入门

    STRUT2 DWR入门教程 DWR(Direct Web Remoting)是一种开源JavaScript库,它允许在Web应用程序中实现Ajax功能,使用户界面更加动态和交互性更强。与STRUT2框架结合使用,DWR可以为Java后端提供简单且高效的远程方法...

    DWR入门程序(1.0和3.0版本的测试工程)

    在"DWR入门程序--计算两个数之和及包含页面的例子(使用1.0版本).rar"中,我们可以看到一个简单的例子,展示了如何使用DWR 1.0进行数据交互。这个例子可能包括一个HTML页面,该页面包含一个JavaScript函数,该函数...

    Dwr入门操作手册

    《DWR入门操作手册》深度解析与实践指南 一、DWR配置与使用基础 DWR,全称为Direct Web Remoting,是一种使Java对象能够直接从JavaScript调用的技术,简化了Ajax开发流程,使得前后端交互更为直接和高效。本文档...

    dwr入门简单实现示例

    1. **反向Ajax (Reverse Ajax)**:DWR的核心是反向Ajax,即由服务器主动向客户端推送数据,而不是传统的用户触发请求,服务器响应数据的方式。 2. **JavaBeans和JavaScript对象映射**:DWR将Java对象自动转换为...

    dwr入门+springmvc实现

    利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript就好像直接本地客户端调用一样(DWR根据Java类来动态生成JavaScrip代码).它的最新版本DWR0.6...

Global site tag (gtag.js) - Google Analytics