DWR框架详解:对象处理与JavaScript调用
需积分: 9 60 浏览量
更新于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-06 上传
2011-01-26 上传
2008-11-14 上传
2008-10-17 上传
2019-05-29 上传
2013-11-19 上传
北京森软教育
- 粉丝: 0
- 资源: 76
最新资源
- xcode-macros-cheatsheet.pdf.zip_Windows编程_Objective-C_
- partial-right:返回一个函数,该函数具有部分应用的参数,这些参数附加到提供给返回的函数的参数上
- 易语言水晶数码FLASH播放器-易语言
- UI设计工具包UI Kit for Xamarin.Forms .sketch素材下载
- Dpad:Android Dpad
- 湖南佳某软件公司商业POS通系统delphi源码.zip
- RSL10-SENSE-DB-GEVB_GERBER_hardware_rsl10_castcpf_
- 【楼层6层】5040㎡综合楼毕业设计(计算书、建筑、结构图)-土木工程建造设计.zip
- 多页面浏览器-易语言
- 4【常用规范】2021最新.zip
- matlab提取文件要素代码-BugList:错误清单
- 基于java的-140-net高校学科竞赛项目管理-源码.zip
- phoneControl.rar_Windows_CE_Visual_C++_
- Structured Digital Command Language-开源
- jQuery实现的图片左右滑动鼠标悬停放大效果源码.zip
- 顺某指纹考勤管理系统delphi.zip