DWR是一个Java开源库,帮助你实现Ajax网站。
它可以让你在浏览器中的Javascript代码调用Web服务器上的Java,就像在Java代码就在浏览器中一样。
DWR主要包括两部分:
这种Java和Javascript之间的远程调用会让DWR用户感觉像是曾经习惯使用的RMI或SOAP的RPC机制。而且这一过程还不需要额外的浏览器插件。
Java是同步的,而Ajax是异步的。所以当你调用一个远程方法时,你要给DWR一个回调函数,当数据从网络上回来时,DWR会调用这个函数。
这个图表现了DWR是如何在onclick事件中改变下拉列表的内容的。
DWR动态为服务端AjaxService类(Java)生成了一个相应的客户端AjaxService类(Javascript)。这个类被 eventHandler调用。DWR就会去处理整个远程调用的细节,包括在Javascript和Java之间转换参数和返回值。然后在这里例子中,它 会执行你提供的回调函数(populateList),这个函数再利用DWR提供的工具函数来更改页面内容。
DWR帮你生产出具有很好交互性的网站,它提供的一些Javascript库帮你处理DHTML,也提供了一些例子做为参考。