DWR框架详解:对象处理与JavaScript调用
需积分: 9 177 浏览量
更新于2024-11-06
1
收藏 45KB DOC 举报
"dwr框架对象处理-经典"
Direct Web Remoting (DWR) 是一个开源的Java库,它允许在Web应用程序中实现Ajax功能,即在客户端JavaScript和服务器端Java之间进行实时、安全的交互。DWR使得开发人员能够轻松地在浏览器中调用服务器上的Java方法,仿佛它们是本地JavaScript函数一样。以下是对DWR处理对象(如Object、List、Map)的经典方法的详细说明。
1. **DWR配置**:
在`dwr.xml`配置文件中,DWR定义了哪些Java对象和方法可以被JavaScript访问。`<allow>`标签用于定义允许的访问规则,`<create>`标签则用来创建可以在JavaScript中使用的Java对象实例。
- `<create>`标签的`creator`属性指定了创建Java对象的方式,如`new`表示使用默认构造函数实例化对象,也可以配置为`spring`以通过Spring IOC容器获取对象。
- `javascript`属性设置了JavaScript中访问Java对象的名称,例如`testClass`。
- `<param>`标签定义了Java类的全限定名。
- `<include>`和`<exclude>`标签分别用于指定可访问和禁止访问的方法。
2. **JavaScript调用**:
要在JavaScript中使用DWR,需要引入DWR生成的接口文件(如`TestClass.js`)、引擎文件`engine.js`以及实用工具文件`util.js`。这些文件提供了与服务器交互的API。
- `TestClass.js`包含了DWR自动生成的JavaScript接口,可以直接调用如`testClass.testMethod1()`的函数,这实际上是在调用服务器端的`testMethod1`方法。
3. **处理简单返回值**:
当Java方法返回简单类型时,DWR会自动将其转换为JavaScript可以理解的类型。例如,如果`testMethod2`返回一个整数,那么在JavaScript中可以直接获取这个值:
```javascript
Function callTestMethod2() {
testClass.testMethod2(function(response) {
var result = response; // response将包含Java方法返回的值
// 处理返回值
});
}
```
4. **处理复杂类型**:
- 对于对象类型的返回值,DWR会生成一个JavaScript对象,该对象的属性与Java对象的字段相对应。
- 如果Java方法返回一个`List`,DWR会生成一个JavaScript数组,数组中的每个元素都是对应的JavaScript对象。
- 类似地,返回`Map`时,DWR会创建一个JavaScript对象,键是Java Map中的键,值是对应的JavaScript对象。
5. **数据转换和安全**:
DWR提供了一套自动的数据类型转换机制,确保Java对象到JavaScript对象的安全转换。此外,DWR还支持数据验证和安全特性,如请求签名,以防止跨站脚本攻击。
6. **异步调用和回调**:
DWR的调用通常是异步的,这意味着JavaScript代码不会阻塞等待服务器响应。当服务器返回结果时,可以通过回调函数处理返回的数据。
总结,DWR通过简洁的配置和自动化处理,使得Java对象、列表和映射可以在JavaScript中轻松使用,实现了前后端之间的无缝通信,极大地简化了Ajax应用的开发。通过理解和熟练使用DWR,开发者可以构建更高效、更动态的Web界面。
2010-01-23 上传
2014-08-07 上传
2019-03-16 上传
2019-03-01 上传
2011-01-26 上传
2008-11-14 上传
2008-10-17 上传
2019-05-29 上传
2013-11-19 上传
北京森软教育
- 粉丝: 0
- 资源: 76
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍