欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
ajax之旅--dwr探密

[DWR(Ajax)]ajax之旅--dwr探密 

軟件技術(shù)

lhwork 發(fā)表于 2006-10-17 14:00:23

ajax是Asynchronous JavaScript and XML的簡(jiǎn)稱(chēng),是一種由javascript通過(guò)XmlHttpRequest與服務(wù)器交互更新數據的一種異步請求的技術(shù),因為通過(guò)ajax你只需傳遞需要更新的數據,而不是整個(gè)頁(yè)面,能有效的減少頁(yè)面和服務(wù)器端的數據傳輸,通過(guò)javascript更新頁(yè)面時(shí)可以做到頁(yè)面不刷新,所以ajax很適合用于局部頻繁更新的頁(yè)面。

我一直都對ajax提不起興趣,理由很簡(jiǎn)單,也很偏激:我是一個(gè)java狂熱者,并固執的認為java最好的用途就是在中間件上,還有java代碼能帶給系統很好的重用性和可維護性。而ajax處理的方面卻是在最不被我看上的表示層上,而表示層一般都不被我系統的考慮范圍之內,覺(jué)得這是系統的外衣,是有可能要經(jīng)常變換的。所以縱是很早之前就已經(jīng)知道有ajax,但一直沒(méi)有更深的去了解它。

事實(shí)上在ajax 這個(gè)概念提出來(lái)之前,我們已經(jīng)在項目中采用了相同的技術(shù),我們大多的做法是通過(guò)增加一個(gè)隱含的iFrame,通過(guò)iFrame向服務(wù)器提交請求獲取數據和頁(yè)面進(jìn)行交互,這完全的實(shí)現了ajax的功能,但這種做法很繁瑣,實(shí)現起來(lái)工作量也很大,而且在代碼上也會(huì )相當的冗余,不怎么優(yōu)美。而ajax的java 框架dwr使這一過(guò)程變得簡(jiǎn)單,在此特別感謝Getahead IT咨詢(xún)公司的Joe Walker和他的團隊開(kāi)發(fā)出DWR這樣神奇的工具并與大家分享它!

現在我們來(lái)看看dwr是怎么處理相應的關(guān)系的

ajax是通過(guò)javascript向服務(wù)器發(fā)出請求來(lái)獲取相應的數據的,所以首先,dwr需要你在web部署了一個(gè)servlet--DWRServlet,DWRServlet在初始化的時(shí)候會(huì )去讀dwr的發(fā)布文件/WEB-INF/dwr.xml

在解釋dwr.xml文件之前我們先來(lái)看看兩個(gè)重要的概念,creator和converter這兩個(gè)從它們的字面意義就很容易看出它們的作用
creator在dwr中主要的職責就是把用戶(hù)發(fā)布在dwr.xml中的class進(jìn)行實(shí)例化,
converter的職責是在接受請求時(shí)把客戶(hù)端的javascript對象轉換成服務(wù)器端的java對象,通過(guò)調用發(fā)布的java bean后,在把返回的java的對象轉化成javascript的對象給客戶(hù)端調用

dwr.xml有兩個(gè)主要的元素:init,arrow
init是用來(lái)定義你可以使用的converter和creator它們都有一個(gè)id和class的屬性:id是一個(gè)標志可以在arrow元素中被引用于配置create和convert的,class是具體的類(lèi),的其定義樣式如下:
    <creator id="new" class="uk.ltd.getahead.dwr.create.NewCreator"/>
    <converter id="bean" class="uk.ltd.getahead.dwr.convert.BeanConverter"/>
arrow是用于定義你允許dwr創(chuàng )建和轉換的java bean,包含兩種類(lèi)型:create和convert。其標簽樣式如下:
    <create creator="new" javascript="planApp">
      <param name="class" value="com.ionglobal.erp.app.PlanApp" />
    </create>
    <convert converter="servlet" match="javax.servlet.ServletConfig"/>

create就是配置哪些類(lèi)是可以由dwr創(chuàng )建的,其包含creator,javascript,creator也是通過(guò)init元素進(jìn)行定義的,creator還有一個(gè)javascript的屬性,其定義的值就是在javascript中對應的對象名稱(chēng)
convert就是配置哪些java bean是可以通過(guò)dwr轉換的,其包含converter,match屬性,coverter就是選擇轉換的converter由init中配置,match就是可以轉換的java bean

dwr 已經(jīng)為你提供了大量的creator和converter如:jsf,none,new,pageflow,spring,script,struts這幾種creator,和null,enum,primitive,bignumber,string,array,map,collection, date,dom,dom4j,jdom,xom,servlet,bean,object,hibernate這幾種convertor
如果你覺(jué)得dwr提供的creator和converter還不能滿(mǎn)足你的需求時(shí)還可以定制自己的creator和converter把它們部署到dwr.xml中,并把要發(fā)布的bean和method放到creators中,

如果你使用dwr的測試頁(yè)面,你還可以得到一個(gè)以你配置的js文件,js文件對你配置的creator和method進(jìn)行了映射,其中的planApp是你發(fā)布的scriptName,get是發(fā)布調用的class方法,p0是方法傳入的參數,callback是處理判斷成功的標志。
planApp.get = function(p0, callback) {
    DWREngine._execute(planApp._path, 'planApp', 'get', p0, callback);
}


現在我們看看dwr在頁(yè)面上怎樣跟服務(wù)器交互,dwr為我們提供了一個(gè)叫engine.js文件中定義一個(gè)DWREngine的javascript對象,其主要功能是處理頁(yè)面和servlet之間的數據傳遞和轉換。當中有三個(gè)函數需要特別的留意

1、_execute由界面的javascript調用根據傳入的參數進(jìn)行一系列的初始化,并調用調用endBatch調用_sendData與服務(wù)器的servlet進(jìn)行交互
其傳入的參數主要有
path——在/WEB-INF/web.xml配置的url-pattern,
scriptName——/WEB-INF/dwr.xml中creator的javascript的名稱(chēng),
methodName——creator的方法名,
vararg_params——傳進(jìn)的值和一些控制參數

2、 _sendData dwr通過(guò)這個(gè)方法對傳入的參數生成與servlet進(jìn)行交互的javascript語(yǔ)句,它做了很多的工作以保證你的提交是真正的有效,比如判斷客戶(hù)的瀏覽器是支持XMLHttpRequest還是支持ActiveXObject,如果兩種方式都不行它還會(huì )采取iFrame提交的方式與服務(wù)器進(jìn)行交互獲取數據

3、_stateChange DWREngine在判斷數據傳輸完成之后,會(huì )根據返回的字符串構造成一個(gè)對象 

你可以通過(guò)修改下面的javascript語(yǔ)句獲取返回的javascript對象和你的頁(yè)面進(jìn)行交互顯示

<script type='text/javascript'>
    
var reply0 = function(data)
    
{
      
if (data != null && typeof data == 'object') alert(DWRUtil.toDescriptiveString(data, 2));
      
else DWRUtil.setValue('d0', DWRUtil.toDescriptiveString(data, 1));
    }

  
</script>

 在util.js文件定義了一個(gè)DWRUtil對象,里面主要有對select的處理和table的處理的方法,具體的使用就不在這里說(shuō)明。


本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
dwr.xml詳解
Ajax的DWR使用
面向 Java 開(kāi)發(fā)人員的 Ajax: 結合 Direct Web Remoting 使用 Ajax
服務(wù)器推送技術(shù) - ServerPush
AJAX made simple with DWR
AJAX DWR基本使用向導
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久