DWR: Easy AJAX for JAVA
DWR是一個Java開源庫,幫助你實現Ajax網站。
它可以讓你在瀏覽器中的Javascript代碼調用Web服務器上的Java,就像在Java代碼就在瀏覽器中一樣。
DWR主要包括兩部分:
- 在服務器上運行的Servlet來處理請求并把結果返回瀏覽器。
- 運行在瀏覽器上的Javascript,可以發送請求,并動態改變頁面。
DWR會根據你的Java類動態的生成Javascript代碼。這些代碼的魔力是讓你感覺整個Ajax調用都是在瀏覽器上發生的,但事實上是服務器執行了這些代碼,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,也提供了一些例子做為參考。