生活随笔
收集整理的這篇文章主要介紹了
Ajax框架DWR入门
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Direct Web RemotingDWR allows Javascript in a browser to interact with Java on a server and helps you manipulate web pages with the results.DWR is Easy Ajax for Java官方網站:http://getahead.ltd.uk/dwr///DWR--不錯的Ajax框架之一本文內容:
DWR介紹 DWR原理 DWR開發步驟 dwr.xml說明 DWR核心引擎 DWR工具包 DWR介紹
在服務器上運行的Servlet來處理請求并把結果返回瀏覽器。 運行在瀏覽器上的Javascript,可以發送請求,并動態 改變頁面。DWR會根據你的Java類動態的生成Javascript代碼。這些代碼魔力是讓你感覺整個Ajax調用都是在瀏覽器上發生的,但事實上是服務器執行了這些代碼,DWR負責數據的傳遞和轉換。 這種Java和Javascript之間的遠程調用會讓DWR用戶感覺像是曾經習慣使用的RMI或SOAP的RPC機制。而且這一過程還不需要額外的瀏覽器插件。 Java是同步的,而Ajax是異步的。所以當你調用一個遠程方法時,你要給DWR一個回調函數,當數據從網絡上回來時,DWR會調用這個函數。 有效地從應用程序代碼中把 Ajax 的全部請求-響應循環消除掉。 客戶端代碼再也不需要直接處理XMLHttpRequest 對象或者服務器的響應。 不再需要編寫對象的序列化代碼或者使用第三方工具才能把對象變成 XML。 不再需要編寫 servlet 代碼把 Ajax 請求調整成對 Java 域對象的調用 DWR原理
DWR是作為Web應用的一個Servlet進行部 署的,是一個黑盒子中的servlet。 對于公共有的每個類,DWR 動態地生成包含在 Web 頁面中的 JavaScript。生成的JavaScript 包含存根函數,代表 Java 類上的 對應方法并在幕后執行XMLHttpRequest。這些請求被發送給DWR。 把請求翻譯成服務器端 Java 對象上的方法調用并把方法的返回值放在servlet 響應中發送回客戶端,編碼成 JavaScript。 DWR開發步驟
http://getahead.org/dwr/download Copy dwr.jar into WEB-INF/lib 代碼片斷:<servlet>????????<servlet-name>dwr-invoker</servlet-name>????????<servlet-class>????????????org.directwebremoting.servlet.DwrServlet????????</servlet-class>????????<init-param>????????????<param-name>debug</param-name>????????????<param-value>true</param-value>????????</init-param>????</servlet>????<servlet-mapping>????????<servlet-name>dwr-invoker</servlet-name>????????<url-pattern>/dwr/*</url-pattern>????</servlet-mapping>
不要出現Javascript保留關鍵字;和保留關鍵字同名的函數指定被排除。多數Javascript的關鍵字和Java是相同的。所以你不可能有一個方法叫做”try()”。但是該死”delete()”對與Javascript有著特殊意義,而對Java則不是。 Javascript方法重載是不支持的,所以盡量不要再Java中使用。 一個小例子:下載: HelloWorld.javapackage cn.com.jacken.dwr;public class HelloWorld {????public String sayHello(String name) {????????return "Hi, " + name;????}}
舉例:<dwr>????<allow>????????<create creator="new" javascript="HelloWorld" scope="page">????????????<param name="class" value="cn.com.jacken.dwr.HelloWorld" />????????</create>????</allow></dwr>
代碼片段:<script src='dwr/engine.js'></script> <script src='dwr/util.js'></script> <script src='dwr/interface/HelloWorld.js'></script>dwr.xml說明請看另外一篇文章:DWR配置文件dwr.xml詳解 DWR核心引擎engine.js
頁面中加入: <script type='text/javascript' src='dwr/engine.js' /> 設置超時時間: 全局設置: dwr.engine.setTimeout(1000);局部設置(優先級高):Remote.singleMethod(params, { callback:function(data){ ... }, timeout:2000 }); 錯誤處理: 全局設置: function handler(msg) {alert(msg);}dwr.engine.setErrorHandler(handler);局部設置:Remote.method(params, {callback:function(data) { ... },errorHandler:handler}); 批量執行 : dwr.engine.beginBatch();var selValue=…;//調用服務器Java程序Province.getCitiesByProvince(selValue,callBack);Province.getNick(callBack2);dwr.engine.endBatch({timeout:3000});//… DWR工具包
必須在頁面引入util.js <script src='dwr/util.js'>??</script> $(”username”) = document.getElementById(”username”); setValue(id, value):這個函數能操作大多數HTML元素 getValue(id):getValue(id)是 setValue()對應的”讀版本”。 setValues():批量設置值 getValues():批量獲取值 getText(id):為select列表設計的。你可能需要取得顯示的文字,而不是當前選項的值。 selectRange:選擇一個輸入框中的一定范圍的文字。 ……
總結
以上是生活随笔 為你收集整理的Ajax框架DWR入门 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。