dwr入門

logo

BLOGARCHIVEGITHUB

DWR簡單入門

2015年5月16日

Direct Web Remoting

DWR is a Java library that enables Java on the server and JavaScript in a browser to interact and call each other as simply as possible.

新建DWR工程

新建工程DwrEx,將下載的dwr.jar和依賴包commons-logging-1.2.jar放在/WEB-INF/lib目錄下,

web.xml的內(nèi)容為:

<web-app xmlns = "http://java.sun.com/xml/ns/j2ee"

xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation = "http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

version = "2.4">

<servlet>

<display-name>DWR Servlet</display-name>

<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>

</web-app>

在/WEB-INF目錄下新建dwr.xml,內(nèi)容為:

<!DOCTYPE dwr PUBLIC

? ? "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN"

? ? "http://getahead.org/dwr/dwr30.dtd">

<dwr>

? <allow>

? ? <create creator="new" javascript="JDate">

? ? ? <param name="class" value="java.util.Date"/>

? ? </create>

? </allow>

</dwr>

啟動Tomcat,訪問http://localhost:8088/DwrEx/dwr/,可以看到dwr.xml中配置的java.util.Date的所有方法;由于web.xml將參數(shù)debug初始化為true,可以在頁面動態(tài)調(diào)試這些方法。

creator元素

<create ...>用于將服務端的Java類公開給客戶端,一般結(jié)構(gòu)為,

<allow>

? <create creator="..." javascript="..." scope="...">

? ? <param name="..." value="..."/>

? ? <exclude method="..."/>

? ? <include method="..."/>

? </create>

? ...

</allow>

creator屬性設置為new,即使用Java類的new操作獲得實例;

javascript屬性指定從JS訪問對象時使用的名稱(避免使用JS關(guān)鍵字);

scope屬性的默認值為page;

include和exclude屬性分別用于指定允許使用和限制使用的方法。

<allow>

? <create creator="new" javascript="Blah">

? ? <param name="class" value="java.util.Date"/>

? </create>

? ...

</allow>

將java.util.Date公開給Javascript,使用Blah來訪問對象,在JavaScript中調(diào)用Blah.toString(reply)時, 使用默認構(gòu)造器實例化java.util.Date,調(diào)用toString()方法返回數(shù)據(jù)到JavaScript。

convert元素

<convert ...>用于在客戶端和服務端之間序列化數(shù)據(jù),將Java返回類型序列化為JS對象,以及將被傳遞的JS對象序列化為合適的Java對象

<convert converter="bean" match="com.example.Person">

? <param name="exclude" value="property1, property2"/>

</convert>

convertor屬性設置為bean,將JavaBean對象(Person)轉(zhuǎn)化為JavaScript對象;

include/exclude同樣適用于convert,參數(shù)值為變量名而不是方法名。

public class Remoted {

? public void addToFriends(Person p) {

? ? // ...

? }

}

public class Person {

? public void setName(String name) { ... }

? public void setAge(int age) { ... }

? // ...

}

如果Remoted類已經(jīng)配置為create,可以在JS中調(diào)用,

var p = { name:"Fred", age:21 };

Remoted.addToFriends(p);

參考資料

Getting Started with DWR

The Creators

Bean and Object Converters

上一篇下一篇

? 2014 - 2017 Jemoii, powered by Hexo and hexo-theme-apollo.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • DWR入門教程 DWR(Direct Web Remoting)是一個WEB遠程調(diào)用框架.利用這個框架可以讓AJA...
    彥佐閱讀 2,394評論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,568評論 19 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,706評論 18 399
  • dwr實現(xiàn)java服務器端向客戶端推送消息 Ajax可以異步無刷新的從服務器端加載最新的數(shù)據(jù) 服務器主動向客戶端發(fā)...
    程績思汗汗閱讀 1,646評論 0 2
  • 如果客戶網(wǎng)速慢2g網(wǎng)絡,打開的時候還沒渲染到處都是{{}}
    c59ffede9db6閱讀 307評論 0 0

友情鏈接更多精彩內(nèi)容