远程调用选项
DWR有一些选项用来控制远程调用的处理方式。method和verb对于用户应该时透明的,但是不同的浏览器效果的可能不一样。一般来说DWR会选择正确方法来处理,但是这些选项对于在不同效果的浏览器之间开发很有用。
DWREngine.setAsync(flag)
DWR1.0不支持。
我们指定让XHR异步调用了吗? 默认为true。警告如果你使用的时IFrame或者ScriptTag这一选项被忽略。一般来说把他变成false是个糟糕的做法。因为那样会使你的浏览器变慢。
要设置全局同步机制:
DWREngine.setAsync(true);
或者设置单次调用同步:
Remote.method(params, {
callback:function(data) { ... },
async:true
});
或者在batch里面:
DWREngine.beginBatch();
Remote.method1(params, callback1);
Remote.method2(params, callback2);
DWREngine.endBatch({
async:true
});
DWREngine.setMethod(newmethod)
用来设置恰当的方法。setMethod()不能把正使用你选择的方 法,它只是保证首先尝试使用那个方法。newmethod必须是DWREngine.XMLHttpRequest或者 DWREngine.IFrame,或者2.0以后的DWREngine.ScriptTag。
XMLHttpRequest时默认的,并且大多情况下可用。当ActiveX禁用IFrame就有用了,尽管DWR能自动检测出这种情况并切换到IFrame。当你要突破跨域调用的限制,ScriptTag就很有用了。
例如,要设置全局的远程调用方法:
DWREngine.setMethod(DWREngine.IFrame);
或者单次调用:
Remote.method(params, {
callback:function(data) { ... },
method:DWREngine.IFrame
});
或者批量调用:
DWREngine.beginBatch();
Remote.method1(params, callback1);
Remote.method2(params, callback2);
DWREngine.endBatch({
method:DWREngine.IFrame
});
DWREngine.setVerb(verb)
这个选项允许你选择POST和GET,无论时用iframe还是 XMLHttpRequest方法。一些浏览器(例如,旧版的Safari)不支持XHR-POST所以DWR就自动切换到GET,即使你设置POST为 verb。所以setVerb()应当被仅仅做为一个堤示。
如果使用ScriptTag来远程调用,设置verb时没有的。
例如,设置全局远程调用的verb:
DWREngine.setVerb("GET");
设置单次调用:
Remote.method(params, {
callback:function(data) { ... },
verb:"GET"
});
设置批量调用:
DWREngine.beginBatch();
Remote.method1(params, callback1);
Remote.method2(params, callback2);
DWREngine.endBatch({
verb:"GET"
});
相关推荐
首先,DWR 2.0是DWR项目的一个早期版本,它引入了核心的远程方法调用(Remote Method Invocation, RMI)功能,使得JavaScript代码能够透明地调用Java对象的方法。在这个版本中,DWR提供了一套全面的API,包括自动...
6. **批量调用**:DWR允许一次性执行多个远程调用,减少网络往返次数,提高性能。 7. **国际化支持**:DWR支持多语言环境,可以在服务器端动态切换语言资源,为全球用户提供服务。 8. **缓存策略**:DWR有内置的...
1. **安装与配置**:如何在Web应用中引入DWR库,配置DWR的Context配置文件(dwr.xml),以及在服务器端创建可远程调用的Java类。 2. **JavaScript API**:了解DWR提供的JavaScript接口,如DWRUtil、DWREngine、...
3. **DWR的配置**:在web.xml文件中,我们需要配置DWR的ContextServlet和AllowServlet,指定哪些类和方法可以被远程调用。此外,还可以配置安全性、缓存策略等高级选项。 4. **JavaScript API**:DWR提供了一套...
如果你想远程调用一个creator的静态方法,并且creator是new类型.因为调用远程bean的方法前DWR不会检测将要执行的方法是不是静态方法,如果是静态方法那么creator就不用创建.这种机制可以适用任何类型的creator,但new...
DWR(Direct Web Remoting)是一种Java技术,用于在Web应用程序中实现JavaScript和服务器端Java对象之间的直接远程调用。这个"DWR小例子_DEMO"是帮助开发者理解并快速上手DWR的一个实践项目,其中包含了说明文件和...
- 在`dwr.xml`配置文件中,声明这个Java方法为可远程调用,指定允许访问的类和方法。 4. **前端JavaScript**: - 在HTML页面中,使用JavaScript(可能是通过jQuery或其他库)在页面加载时调用DWR的`execute`方法...
"DWRchinese.pdf"可能是DWR的中文版官方文档或者一个综合教程,涵盖了从入门到高级的DWR使用技巧,包括但不限于创建远程对象、处理异步请求、使用批处理、调试和性能优化等内容。 在这个压缩包中,"DWR开发培训.ppt...
1. **DWR框架概述**:DWR允许Web应用程序在客户端和服务器之间交换数据和调用方法,提供了丰富的API和配置选项,使得前后端交互更加简单。 2. **DWRUtil类**:DWRUtil是DWR提供的一系列实用工具函数的集合,包括但...
3. **配置文件**:DWR的配置文件(通常是dwr.xml)定义了哪些Java类和方法可以被远程调用。 三、DWR的安装与配置 1. **添加依赖**:首先,需要将DWR的JAR文件添加到项目类路径中,或者如果使用Maven,可以在pom.xml...
DWR提供了一套丰富的JavaScript API,包括`DWREngine`、`DWREngine.setConfiguration`、`CallRemoteFunction`等,用于初始化DWR引擎、设置配置以及执行远程调用。例如,使用`DWREngine.beginBatch`和`DWREngine....
这种交互方式类似于本地客户端调用的方式,使得远程调用变得更加直观与便捷。 DWR 的工作原理主要基于反射机制。通过反射技术,DWR 能够将 Java 类转换为 JavaScript 代码,从而实现了 JavaScript 对 Java 代码的...
4. **运行示例**:在浏览器中打开示例页面,查看并测试DWR的功能,如远程调用、自动刷新等。 通过这个压缩包中的实例和不同版本的DWR库,开发者可以深入了解DWR的工作原理,以及如何在实际项目中使用DWR实现AJAX...
可以通过配置 DWR 的安全选项来限制访问权限,如使用白名单或者 IP 黑名单。 通过以上步骤,Spring 与 DWR 的整合就可以实现高效且安全的 AJAX 通信。这使得前端界面可以实时更新,提高用户体验,同时利用 Spring ...
2. **创建DWR配置文件**:DWR的核心配置文件是`dwr.xml`,它定义了哪些Java类和方法可以被远程调用。在该文件中,你可以设置安全策略、错误处理、转换器等。 3. **配置Servlet**:在`web.xml`配置文件中,你需要...
DWR则是一种JavaScript到Java的远程调用技术,允许前端JavaScript直接调用后端服务器的Java方法,从而实现实时交互和数据更新。 在实现三级联动的情景中,通常指的是在网页上有三个下拉框,它们的选项根据用户在上...
`<init>`元素用于定义启动时需要初始化的类,`<allow>`元素定义可远程调用的Java类,而`<signatures>`元素则用于指定方法签名,特别是在使用集合或需要特殊转换时。 `<create>`元素的`creator`属性有多个可能的值,...