DWR之DWR介绍
----------
----------
DWR(网址:http://directwebremoting.org/dwr/)是Direct Web Remoting的缩写。DWR是一种非常有意思的Ajax实现方法,原因在于允许把运行于服务器上的java类视为本地类,好像运行于web浏览器中。与当前许多流行的Ajax库不同,DWR是一种以Java为核心的解决方法。如果熟悉PRC(Remote Procedure Call,远程过程调用),那么你很快就明白DWR其实就是一种RPC(其名称Direct Web Remoting就验证了这一点)。
在DWR模型中,调用"系统"是在用户浏览器中执行的javascript代码,被调用"系统"是在服务器上运行的java类。像其他形式的RPC一样,使用javascript编写的代码看起来非常类似于在服务器上编写的代码。如例:
package com.company.app;
public class MyClass{
String sayHello(String name){
return "hello, " + name;
}
}
如果希望web浏览器中运行的javascript使用DWR来调用这段代码,在做好各项必要的准备工作之后,仅仅需要编写以下代码:
MyClass.sayHello("Frank",sayHelloHandler);
var sayHelloHandler = function(data){
alert(data);
}
我们看到,调用语法与前面的java代码非常相似,只是增加了第二个参数。该参数是一个回调函数,会在方法调用完成时执行。