DWR使用教程:调用Java方法与返回值处理
需积分: 0 46 浏览量
更新于2024-09-11
收藏 106KB DOC 举报
"DWR学习总结"
DWR(Direct Web Remoting)是一种开源的技术,用于在Web应用程序中实现JavaScript与Java服务器端之间的双向通信。它允许开发者在浏览器端直接调用服务器上的Java方法,使得Web应用可以拥有类似桌面应用的交互体验。以下是对DWR关键知识点的详细说明:
1. 调用无返回值和参数的Java方法
在DWR配置文件(dwr.xml)中,我们需要设置允许JavaScript访问的Java类和方法。以下是一个示例配置:
```xml
<dwr>
<allow>
<create creator="new" javascript="testClass">
<param name="class" value="/com/dwr/TestClass"/>
<include method="testMethod1"/>
</create>
</allow>
</dwr>
```
- `<allow>`标签定义了哪些Java对象和方法可以被JavaScript访问。
- `<create>`标签创建了一个JavaScript对象映射到Java类`/com/dwr/TestClass`,`creator="new"`表示使用默认构造函数创建实例。
- `<param>`标签指定了Java类的全限定名。
- `<include>`标签指定了要公开给JavaScript的方法,这里是`testMethod1`。
在JavaScript中,DWR会自动生成一个名为`testClass.js`的文件,包含对Java方法的引用。你需要引入DWR的核心库和辅助库,以及自动生成的接口文件:
```html
<script src='dwr/interface/testClass.js'></script>
<script src="/dwr/engine.js"></script>
<script src="/dwr/util.js"></script>
```
调用Java方法的JavaScript函数如下:
```javascript
function callTestMethod1() {
testClass.testMethod1();
}
```
2. 调用有简单返回值的Java方法
要调用返回值的Java方法,配置与无返回值的情况相同,只需确保Java方法有适当的返回类型。在JavaScript中,DWR会自动处理返回值,并将其传递给回调函数。例如:
```java
// Java方法
public String testMethod2() {
return "Hello from Server!";
}
```
JavaScript调用该方法:
```javascript
function callTestMethod2() {
testClass.testMethod2(function(response) {
alert(response); // 显示"Hello from Server!"
});
}
```
3. DWR的安全性和性能优化
- DWR提供了安全性措施,如IP过滤、CSRF保护等,以防止未授权的访问。
- 为了优化性能,DWR支持缓存机制,避免不必要的服务器请求。
- 可以通过配置`<batch>`标签来设置批量调用,减少网络往返次数。
- DWR还支持异步调用,提高用户界面的响应速度。
4. DWR的其他特性
- DWR支持AJAX Push(Reverse AJAX),允许服务器主动向客户端推送数据。
- 它具有类型检查和自动转换功能,确保JavaScript和Java之间的数据类型匹配。
- DWR提供了一套完整的错误处理机制,方便调试和问题定位。
DWR作为一个强大的工具,极大地简化了JavaScript与Java服务器之间的通信,提高了Web应用的交互性。通过理解并熟练掌握DWR的配置和使用,开发者可以构建出更加动态和高效的Web应用程序。
2010-05-21 上传
2010-04-08 上传
2009-08-28 上传
2008-06-09 上传
2014-05-16 上传
2011-06-21 上传
2011-08-09 上传
2010-01-09 上传
dawnsun001
- 粉丝: 31
- 资源: 46
最新资源
- 探索AVL树算法:以Faculdade Senac Porto Alegre实践为例
- 小学语文教学新工具:创新黑板设计解析
- Minecraft服务器管理新插件ServerForms发布
- MATLAB基因网络模型代码实现及开源分享
- 全方位技术项目源码合集:***报名系统
- Phalcon框架实战案例分析
- MATLAB与Python结合实现短期电力负荷预测的DAT300项目解析
- 市场营销教学专用查询装置设计方案
- 随身WiFi高通210 MS8909设备的Root引导文件破解攻略
- 实现服务器端级联:modella与leveldb适配器的应用
- Oracle Linux安装必备依赖包清单与步骤
- Shyer项目:寻找喜欢的聊天伙伴
- MEAN堆栈入门项目: postings-app
- 在线WPS办公功能全接触及应用示例
- 新型带储订盒订书机设计文档
- VB多媒体教学演示系统源代码及技术项目资源大全