<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    爪哇一角

    共同探討STRUTS#HIBERNATE#SPRING#EJB等技術(shù)
    posts - 3, comments - 6, trackbacks - 0, articles - 99
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    dwr框架(菜鳥入門) 轉(zhuǎn)載

    Posted on 2010-02-03 15:21 非洲小白臉 閱讀(488) 評論(0)  編輯  收藏 所屬分類: AJAX + jQuery
    DWR(Direct Web Remoting)是一個開源的類庫,可以幫助開發(fā)人員開發(fā)包含AJAX技術(shù)的網(wǎng)站.它可以允許在瀏覽器里的代碼使用運行在WEB服務(wù)器上的JAVA函數(shù),就像它就在瀏覽器里一樣.
     

    DWR采取了一個類似AJAX的新方法來動態(tài)生成基于JAVA類的JavaScript代碼.這樣WEB開發(fā)人員就可以在JavaScript里使用Java代碼就像它們是瀏覽器的本地代碼(客戶端代碼)一樣;但是Java代碼運行在WEB服務(wù)器端而且可以自由訪問WEB 服務(wù)器的資源.出于安全的理由,WEB開發(fā)者必須適當?shù)嘏渲媚男㎎ava類可以安全的被外部使用.

    要使用dwr要先下載http://getahead.org/dwr/
        下載內(nèi)容
        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.jar(dwr jar包),dwr.xml(dwr的配置文件),dwr20.dtd(在編輯xml配置文件時,提供自動提示功能),其實web.xml配置文件也配置了dwr的servlet,來看下:

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

      在來看下dwr.xml的配置:

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

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

      在看重要的部分dwr的節(jié)點:

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

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

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

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

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

    在來看看JavaScript調(diào)用java類的方法

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

    下來看下java類中的方法。

     

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

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

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

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

     來看下效果,

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

     

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

    主站蜘蛛池模板: 亚洲国产精品18久久久久久| 亚洲色欲www综合网| 亚洲无线一二三四区手机| 亚洲无码精品浪潮| 亚洲人成网77777亚洲色| 亚洲精品免费观看| 亚洲一区二区三区在线观看蜜桃 | 亚洲AV电影院在线观看| 久久综合亚洲色一区二区三区 | 久久精品国产精品亚洲艾草网| 亚洲AV第一页国产精品| 亚洲av无码一区二区三区观看| 久久亚洲精品无码网站| 精品国产污污免费网站入口| 777爽死你无码免费看一二区| 国产精品入口麻豆免费观看| 免费理论片51人人看电影| 亚洲成A人片在线观看中文| 亚洲综合精品网站在线观看| 亚洲精品免费在线视频| 久久久久久亚洲av无码蜜芽| 中文在线观看国语高清免费| 精品成在人线AV无码免费看| 国产成人免费全部网站| 中文字幕久久亚洲一区| 亚洲国产午夜精品理论片| 国产亚洲人成在线影院| 69视频在线观看免费| 国产免费午夜a无码v视频| 亚洲AV无码不卡在线播放| 亚洲中文字幕日本无线码| 国产成人无码精品久久久久免费| 免费精品无码AV片在线观看| 永久免费观看的毛片的网站| 最新精品亚洲成a人在线观看| 亚洲国产精品乱码在线观看97 | 精品亚洲成a人在线观看| 亚欧免费一级毛片| 全部免费毛片在线| 亚洲成在人线电影天堂色| 一级做a爰片久久毛片免费陪|