DWR在今天正式發布了1.0版本.(2005-8-30) 網址是 http://getahead.ltd.uk/
本文翻譯自http://getahead.ltd.uk/dwr/overview/dwr,時間為2005-8-30.
本文有些地方翻譯的很不流暢,敬請原諒. 原文附在后面. :)
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.