DWR是一个开源的类库,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样.

  它包含两个主要的部分:允许JavaScript从WEB服务器上一个遵循了AJAX原则的Servlet(小应用程序)中获取数据.另外一方面一个JavaScript库可以帮助网站开发人员轻松地利用获取的数据来动态改变网页的内容.

  DWR采取了一个类似AJAX的新方法来动态生成基于JAVA类的JavaScript代码.这样WEB开发人员就可以在JavaScript里使用Java代码就像它们是浏览器的本地代码(客户端代码)一样;但是Java代码运行在WEB服务器端而且可以自由访问WEB 服务器的资源.出于安全的理由,WEB开发者必须适当地配置哪些Java类可以安全的被外部使用.

  这个从JAVA到JavaScript的远程功能方法给DWR的用户带来非常像传统的RPC机制,就像RMI或者SOAP一样,而且拥有运行在WEB上但是不需要浏览器插件的好处.

  DWR不认为浏览器/WEB服务器协议是重要的,而更乐于保证编程界面的简单自然.对此最大的挑战就是把AJAX的异步特性和正常JAVA方法调用的同步特性相结合.在异步模式下,结果数据在开始调用之后的一段时间之后才可以访问.DWR解决了这个问题,允许WEB开发人员使用一个特殊的方法参数来指定一个函数,以便在数据返回后来回调此函数.

  下面的这个图展示了DWR如何利用一些类似JavaScript的onclick等事件的结果来改变一个下拉框列表的内容.这个事件处理器调用一个DWR生成的JavaScript函数,它和服务器端的Java函数是匹配的.DWR接着处理了JAVA和JavaScript之间的所有远程信息,包括转换所有的参数和返回需要的值.接着DWR执行了相应的回调函数(populateList).这个例子演示了如何使用DWR功能函数来改变网页内容.




  DWR通过提供一些JavaScript函数库来帮助处理DHTML,并提供了一套可以直接复制的例子,通过这些可以帮助你生成具有良好交互性的网站.

  如果想了解如何开始使用DWR,请浏览 "入门指导"
http://getahead.ltd.uk/dwr/getstarted 和访问下载页面 http://getahead.ltd.uk/dwr/download .