日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

DWR框架入門

系統 1720 0

dwr框架(菜鳥入門)

該文可以看做是作者的學習筆記,部分內容可以認為是個人理解,請讀者注意辨別。

DWR(Direct Web Remoting)是一個開源的類庫,可以幫助開發人員開發包含AJAX技術的網站.它可以允許在瀏覽器里的代碼使用運行在WEB服務器上的JAVA函數,就像它就在瀏覽器里一樣.
DWR采取了一個類似AJAX的新方法來動態生成基于JAVA類的JavaScript代碼.這樣WEB開發人員就可以在JavaScript里使用Java代碼就像它們是瀏覽器的本地代碼(客戶端代碼)一樣;但是Java代碼運行在WEB服務器端而且可以自由訪問WEB 服務器的資源.出于安全的理由,WEB開發者必須適當地配置哪些Java類可以安全的被外部使用.

要使用dwr要先下載 http://getahead.org/dwr/
下載內容
DownloadVersion 2.0.3Size
JAR File: dwr.jar(489Kb)
WAR File:dwr.war(2.14Mb)
Sources:dwr-2.0.3-src.zip (20.78Mb)

首先看下工程里面:

DWR框架入門

多了dwr.jar(dwr jar包),dwr.xml(dwr的配置文件),dwr20.dtd(在編輯xml配置文件時,提供自動提示功能),其實web.xml配置文件也配置了dwr的servlet,來看下:

DWR框架入門

至于這個url為什么還要用"/dwr/*"還不是很清楚,我想的是如果客戶端有請求過來經過dwr的都被指定的servler處理(個人理解)。

在來看下dwr.xml的配置:

無標題

紅線框的是關于dwr智能提示的配置,里面藍線框的是上面提到的dwr20.dtd的路徑,如果路徑或者文件名不對,那么前面就會出現警告:

如果出錯了也無所謂,只不過是不能智能提示,如果你能把這寫節點記住的話,那就不需要了,否則就把dwr20.dtd拷貝到與dwr.xml相同的目錄下。

在看重要的部分dwr的節點:

<allow>標簽中包括可以暴露給javascript訪問的東西。</allow>

<create>標簽中指定javascript中可以訪問的java類,并定義DWR應當如何獲得要進行遠程的類的實例。creator="new"屬性指定java類實例的生成方式,new意味著DWR應當調用類的默認構造函數來獲得實例,其他的還有spring方式,通過與IOC容器Spring進行集成來獲得實例等等。javascript="sayHello"屬性指定javascript代碼訪問對象時使用的名稱。</create>

name這里一般用class指一個類,value指類的全名,包括包名。

好了配置文件我們算做好了,在來看看jsp中在JavaScript中所做的配置。

第一個是dwr的引擎js文件,第二個是用戶自己要訪問java的類的js文件。

在來看看JavaScript調用java類的方法

DWR框架入門

注意這里的sayHello還有上面配置的sayHello.js(文件名)要和dwr.xml中配置JavaScript的名字要相同,否則就報錯。

下來看下java類中的方法。

DWR框架入門

在上面的JavaScript中有人就想問,為什么調用Hello的方法時要傳入一個函數。來說下,第一個是java方法的參數,第二個方法是回調函數,這個函數是負責接受JavaScript調用java類后返回的結果。

到這里一個簡單的dwr框架就搞完了,來先看下是否成功,啟動jsp的服務器,然后下圖:

DWR框架入門

點擊查看文件,先把里面所有的東西刪除了,然后瀏覽你的jsp頁面,就出出現一下2個文件

就是我們剛才配置的兩個js文件,如果客戶端通過JavaScript調用sayHello.Hello的話,那么就會由sayHello.js處理,然后轉交給engine引擎,之后由引擎向服務器請求。

來看下效果,

DWR框架入門

很好,看來運行很好,但是發現個問題,我剛才在配置文件里配置的com.dwr.sayHello中所有的方法我們都可以訪問的嘛?其實并不是這樣的,要是不設置的話,就默認允許調用所有的方法,要是想要指定的方法允許訪問,那么就要在dwr.xml中配置了。來看:

DWR框架入門

好了,具體配置就是這樣的。

原文地址: http://blog.sina.com.cn/s/blog_5a39b0c70100bgdh.html

還有一片續: http://blog.sina.com.cn/s/blog_5a39b0c70100bgfy.html

DWR框架入門


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 繁峙县| 海淀区| 旺苍县| 贵州省| 肇州县| 巴里| 湘阴县| 酉阳| 延川县| 汽车| 麟游县| 射洪县| 金湖县| 囊谦县| 甘谷县| 衡阳县| 桐城市| 达日县| 湘乡市| 江城| 隆回县| 上思县| 娱乐| 鸡东县| 海盐县| 大邑县| 沿河| 平利县| 阳城县| 盐城市| 黄山市| 瑞昌市| 英山县| 保靖县| 景泰县| 秭归县| 沂源县| 大石桥市| 南汇区| 宜兰市| 都匀市|