`
hankai_hk
  • 浏览: 4890 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论
阅读更多


 什么是DWR
 

    全名 Drect Web Remoting 开源,免费的Ajax框架
将Java类发布为JavaScript可调用的脚本对象,提供JavaScript工具类,简化页面编码 

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

DWR原理

*DWR 主要由两部分组成
运行在服务端的 Java Servlet,用来接收请求和发送响应到浏览器
运行在客户端的 JavaScript,用来发送请求和动态更新页面。DWR 依靠动态的 Javascript 来工作,这些 Javascript 脚本是基于 Java 类的。代码产生一些 Ajax 的动作使之看起来像是发生在浏览器中的客户端,但事实上是服务端在执行这些代码,DWR负责数据的转换,然后来来回回的传输所产生的数据。 
DWR 主要由两部分组成
运行在服务端的 Java Servlet,用来接收请求和发送响应到浏览器
运行在客户端的 JavaScript,用来发送请求和动态更新页面。DWR 依靠动态的 Javascript 来工作,这些 Javascript 脚本是基于 Java 类的。代码产生一些 Ajax 的动作使之看起来像是发生在浏览器中的客户端,但事实上是服务端在执行这些代码,DWR负责数据的转换,然后来来回回的传输所产生的数据。
好了不多说了,开始正题

1.新建一个项目

 将 dwr.jar , commons-logging-1.04.jar , log4j-1.2.12.jar 三个文件拷贝到
WEB-INF/lib 目录中,因为DWR 需要使用日志记录

2. DWR 使用一个Servlet 来处理用户的异步请求和发送响应,所以我们需要在web.Xml 中配置这个Servlet

可以打开dwr.war 这个实例包,然后打开 /WEB-INF/web.xml 文件,拷贝其中有关servlet
部署的代码到我们工程的web.Xml 中

 

3.编写一个 java 类,供客户端进行调用



 4.客户端要使用javaScrip 调用Hello 类中的sayHello 方法,并且还要传递参数,然后返回一个字符串,客户端显示这个字符串。此时必须告诉 DWR 的 Servlet 我们只要做的事情,如何告诉?DWR 是通过一个 xml 文件告诉Servlet 的,这个xml 文件就是dwr.xml. 在与web.xml 同目录中创建该文件。

配置参数说明

 creator: new,spring,none
javaScript:生成客户端的对象,避免使用Javascript关键字
scope:对象保存的范围
param ,creator构造器参数,如new构造器参数:
<param name=“class” value=“类的全限定名" />
include,指定的可以方法名。
exclude,指定拒绝访问的方法名。
creator 设定为new,表示DWR 框架使用Hello 的无参构造方法实例化Hello类,javaScript 表示 Hello 类映射到客户端javaScript 中的类型这个部署描述文件定义什么样的Java 类可以被DWR 应用创建并通过Javascript 远程调用。在上面的部署描述中,定义了可以被DWR 创建的Java 类com.wq.ajaxservice.Hello,并给这个类赋予一个Javascript 名称Hello。通过修改dwr.xml,也可以将自定义的Java 类暴露给Javascript 远程调用。
需要注意的是,dwr 部署描述为远程Java 类拟定的Javascript 名称还是有些限制的。
避免使用 Javascript 关键字或者保留字,因为这些用Javascript 关键字或者保留字命名
的方法会自动执行。大部分的Javascript 关键字或者保留字也是Java 的关键字或者保
留字,比如,“try()”不是一个合法的命名。不过还是有一部分的Javascript 关键字或
者保留字在Java 中不被限制,比如“delete()”。
避免使用方法重载。有时候,在调用这些重载的方法会引起麻烦,因为Javascript 没
有像Java 那样的包命名机制来支持方法重载。

5. 部署测试,在地址栏中输入: http://localhost:8080/dwrDemo/dwr
u

可以看到 DWR 已经识别出了部署在 DWR 中的com.wq.ajaxservice.Hello 类。点击Hello 


 
在其中sayHello 中输入参数,然后Execute 执行:


 上面出现了预期的结果,说明通过测试了
6. 在 jsp 页面中通过调用javaScript 方法,来调用服务器上的Hello 类的 sayHello 方法,然后在jsp 页面中处理返回的结果
在上一步的测试中,可以看到测试页面显示了如下的内容:

 也就是说,DWR 为我们生成好了Hello 类对应的JavaScript 调用的js 文件,我们需要在jsp文件中引入上面的三个js 文件, util.js 是一个工具,可以根据情况决定是否引用。
7.jsp页面调用


 
8. dwr.xml 文件说明
所有部署描述文件的顶级根元素为dwr,其按照顺序可以包含以下三个子元素之一。
init:此元素定义那些在应用程序启动时作为DWR 运行库所需的类自动加载并初
始化的类。
allow:此元素定义那些允许客户端Javascript 远程调用的Java 类。
signatures:此元素签名必要的方法,当使用集合的时候,为转换器指定Java 反射
机制外的类别信息。


 元素名称            属性名称                    父 元 素                      用 途
dwr                                                                              dwr.xml 文档的根元素
init                                                       dwr            定义那些在应用程序启动时作为DWR 运行库所
需的类自动加载并初始化的类
creator init 定义供Javascript 调用的新建对象的方法,即对
象的构造方法
id creator 用来惟一标识creator 所创建的对象。必需属性
class creator 应用creator 元素定义的Java 对象的完整名称。
必需属性
converter init 定义Javascript 对象和Java 对象之间新的转换
方法。有些类有默认的转换机制,但有些类需要
自定义转换机制
id converter 用来惟一标识converter 所创建的对象。必需属

class converter 应用converter 元素定义的Java 对象的完整名
称。必需属性
allow dwr 定义那些允许客户端Javascript 远程调用的
Java 类
create allow 定义允许创建的Java 类,并为其指定一个
Javascript 名称,并定义DWR 应当如何获得要进
行远程的类的实例
creator create create 元素所使用的构造方法名称。必需属性
续表
元素名称 属性名称 父 元 素 用途
javascript create Java 类暴露给浏览器调用的Javascript 名称。必
需属性
scope create create 元素所创建的类的可用范围,默认为
page。可选属性

param create 指定create 元素所需要的参数,比如其允许创
建的Java 类的名称
name param param 元素所指定的参数名称。必需属性
value param param 元素所指定的参数值。必需属性
include create 指定应当公开的方法的名称。必需属性
exclude create 指定那些想防止被访问的方法
auth create 为暴露给浏览器的方法指定允许访问的角色
method auth 指定需要访问角色限制的方法。必需属性
role auth 指定允许访问的角色。必需属性
convert allow 告诉DWR在服务器端 Java 对象表示和序列化
的 Javascript 之间如何转换数据类型
converter convert 指定所使用的转换器的标识。必需属性
match convert 与转换器所匹配的类名称。必需属性
param convert 指定转换器所要包含的参数
name param param 元素所指定的参数名称。必需属性
value param param 元素所指定的参数值。必需属性
signatures dwr 签名必要的方法,当使用集合的时候,为转换
器指定Java 反射机制之外的类别信息

  • 大小: 10.8 KB
  • 大小: 35.5 KB
  • 大小: 9.6 KB
  • 大小: 11.4 KB
  • 大小: 47.7 KB
  • 大小: 126.3 KB
  • 大小: 122.1 KB
  • 大小: 43 KB
  • 大小: 24.4 KB
  • 大小: 78 KB
0
0
分享到:
评论

相关推荐

    Dwr入门操作手册Dwr

    Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr...

    dwr入门 dwr学习资料

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

    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+dwr入门手册"中,你将深入了解到以下几个核心知识点: 1. **DWR的基本概念**:DWR的核心是Remoting Engine,它负责在客户端JavaScript和服务器端Java之间建立通信通道。DWR提供了一套API,包括`dwr.engine`...

    Ajax的DWR入门例子

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

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

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

    软件工程DWR入门教程.docx

    软件工程 DWR 入门教程 DWR(Direct Web Remoting)是一种基于 Java 的远程方法调用技术,它允许在 Web 应用程序中将 Java 对象作为远程服务暴露给客户端,客户端可以通过 Ajax 调用这些服务。下面是 DWR 入门教程...

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

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

    Dwr入门操作手册

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

    Dwr入门操作手册及dwr包

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

    最完整的DWR入门文档及DWR使用案例

    这个“最完整的DWR入门文档及DWR使用案例”包含的资源无疑将帮助你深入理解和高效使用DWR。 首先,DWR的核心功能是提供了一种跨域的通信机制,使得前端JavaScript可以直接调用后端Java方法,就像操作本地函数一样,...

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

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

    dwr入门例子 返回list

    在“dwr入门例子 返回list”这个主题中,我们将深入探讨如何使用DWR从服务器返回列表数据到客户端。列表通常包含多个项目,如数据库查询结果,这些数据可以在网页上以表格或其他形式展示给用户。DWR提供了方便的方法...

    dwr实例 - dwr入门 本人开发的:小游戏 大家一起来赚钱

    DWR入门涉及以下几个关键知识点: 1. **配置DWR**:首先,你需要在项目中集成DWR,这通常包括在`web.xml`中配置DWR的Servlet,以及在项目的类路径下创建`dwr.xml`配置文件,用于声明暴露给JavaScript的Java类和方法...

    dwr入门资料,简单入门,让你轻松掌握dwr

    在"**dwr入门资料,简单入门,让你轻松掌握dwr**"的资源中,你可以期待学习到以下关键知识点: 1. **DWR的基本概念**:理解DWR的核心概念,如Remoting、Reverse Ajax和Caching,以及如何通过DWR实现浏览器与服务器...

    DWR入门教程及实例(含源代码)

    本教程“DWR入门教程及实例(含源代码)”旨在帮助初学者快速掌握DWR的基本概念和使用方法。教程内容可能包括以下几个核心知识点: 1. **DWR概述**:讲解DWR的基本理念,如何通过HTTP协议实现JavaScript与Java之间...

    个人编写的一份dwr入门源代码

    这份"个人编写的一份dwr入门源代码"是针对初学者设计的,通过五个简单示例帮助理解DWR的基本用法和功能。 1. **DWR简介**:DWR简化了AJAX开发,通过自动处理跨域问题和JSON/JavaScript对象转换,使得前端可以像调用...

    dwr入门例子 包含类型转换

    以上就是DWR入门例子中关于类型转换的基本使用。通过DWR,开发者可以轻松地实现前后端的数据交换,从而创建更动态、响应更快的Web应用。需要注意的是,实际项目中还需要考虑安全性、性能优化以及错误处理等问题。

Global site tag (gtag.js) - Google Analytics