dwr配置文件dwr.xml详解
本人對(duì)dwr 中文文檔關(guān)于dwr.xml做的一個(gè)整理,純粹體力活,有用得著的朋友別忘頂一下,留個(gè)聯(lián)系方式一起交流學(xué)習(xí)!
dwr.xml是DWR的配置文件。默認(rèn)情況下,應(yīng)該把它放到WEB-INF目錄(web.xml的目錄)下
dwr.xml文件的結(jié)構(gòu)如下:
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
<!-- init is only needed if you are extending DWR -->
<init>
????????<creator />
????????<converter />
</init>
<!-- without allow, DWR isn't allowed to do anything -->
<allow>
??????????<create creator="..." javascript="..."/>
??????????<convert converter="..." match="..."/>
</allow>
<!-- you may need to tell DWR about method signatures -->
<signatures> ... </signatures>
</dwr>
這里是一些必須理解的術(shù)語(yǔ) - 參數(shù)會(huì)被converted,遠(yuǎn)程Bean會(huì)被created。所以如果你有一個(gè)叫A的bean,它有一個(gè)方法叫A.blah(B) 那么你需要一個(gè)A的creator和一個(gè)B的converter。
allow段落里面定義的試DWR可以創(chuàng)建和轉(zhuǎn)換的類(lèi)。
dwr.xml文件中的create元素的結(jié)構(gòu)如下:
<allow> <create creator="..." javascript="..." scope="..."> <param value="..."/> <auth method="..." role="..."/> <exclude method="..."/> <include method="..."/> </create> ...</allow>
這里的多數(shù)元素都是可選的 - 你真正必須知道的是指定一個(gè)creator和一個(gè)javascript名字。
creator屬性 是必須的 - 它用來(lái)指定使用那種創(chuàng)造器。
默認(rèn)情況下DWR1.1有8種創(chuàng)造器。它們是:
new: 用Java的new關(guān)鍵字創(chuàng)造對(duì)象。
pageflow: 訪問(wèn)Beehive或Weblogic的PageFlow。 (v1.1+) 如果你需要寫(xiě)自己的創(chuàng)造器,你必須在init部分注冊(cè)它。
javascript屬性 用于指定瀏覽器中這個(gè)被創(chuàng)造出來(lái)的對(duì)象的名字。你不能使用Javascript的關(guān)鍵字。
scope屬性 非常類(lèi)似servlet規(guī)范中的scope。 它允許你指定這個(gè)bean在什么生命范圍。選項(xiàng)有"application", "session", "request" 和"page"。這些值對(duì)于Servlet和JSP開(kāi)發(fā)者來(lái)說(shuō)應(yīng)該相當(dāng)熟悉了。
scope屬性是可選的。默認(rèn)是"page"。如果要使用"session"需要cookies。當(dāng)前的DWR不支持ULR重寫(xiě)。
param元素 被用來(lái)指定創(chuàng)造器的其他參數(shù),每種構(gòu)造器各有不同。例如,"new"創(chuàng)造器需要知道要?jiǎng)?chuàng)建的對(duì)象類(lèi)型是什么。每一個(gè)創(chuàng)造器的參數(shù)在各自的文檔中能找到。請(qǐng)查看上面的鏈接。
include和exclude元素 允許創(chuàng)造器來(lái)限制類(lèi)中方法的訪問(wèn)。一個(gè)創(chuàng)造器必須指定include列表或exclude列表之一。如果是include列表則暗示默認(rèn)的訪問(wèn)策略是"拒絕";如果是exclude列表則暗示默認(rèn)的訪問(wèn)策略是"允許"。
例如要拒絕防范除了setWibble()以外的所有方法,你應(yīng)該把如下內(nèi)容添加到dwr.xml中。
<create creator="new" javascript="Fred"> <param value="com.example.Fred"/> <include method="setWibble"/></create>
對(duì)于加入到create元素中的類(lèi)的所有方法都是默認(rèn)可見(jiàn)的。
auth元素 允許你指定一個(gè)J2EE的角色作為將來(lái)的訪問(wèn)控制檢查:
<create creator="new" javascript="Fred"> <param value="com.example.Fred"/> <auth method="setWibble" role="admin"/></create>
當(dāng)一個(gè)類(lèi)是用script創(chuàng)造出來(lái)的,并且scope是session或application,如果你的腳本改變,session中的類(lèi)和script中的類(lèi)就不一致了。這樣會(huì)出現(xiàn)錯(cuò)誤。雖然web容器不用重啟,但是用戶需要先登出(或以某種方式清空session),然后再登錄。
當(dāng)clazz參數(shù)不為空,并且用來(lái)創(chuàng)造新實(shí)例,DWR簡(jiǎn)單的調(diào)用 class.newInstance() 方法。這種方法是沒(méi)問(wèn)題的,除非腳本正在用某個(gè)參數(shù)創(chuàng)建一個(gè)類(lèi),或者調(diào)用某個(gè)函數(shù)來(lái)配置這個(gè)類(lèi)。 不幸的是,每次請(qǐng)求都要重新運(yùn)行script并造成上面的問(wèn)題。
確認(rèn)你的Spring的Bean在DWR外面運(yùn)行良好。 配置DWR和Spring一起工作。 (看下面) 查看演示頁(yè)面: http://localhost:8080/[ YOUR-WEBAPP ]/dwr ,檢查spring的Bean是否出現(xiàn)。 DWR對(duì)于Spring沒(méi)有運(yùn)行期依賴(lài),所以如果你不使用Spring那么Spring的支持不會(huì)產(chǎn)生任何影響到。
。如果你知道還有更好的文檔,請(qǐng)告知我。
Rob Sanheim 指出還有一個(gè)能的文檔。
,教你配置DWR使用beans.xml代替WEB-INF/web.xml。
我也對(duì)于如何在beans.xml中指定dwr.xml很感興趣,盡管這看上去有些Spring傳染病的感覺(jué)。有人知道如何實(shí)現(xiàn)嗎?請(qǐng)加入郵件列表并告訴大家。
'Scripted'創(chuàng)造器
] 和 Converter [] , 那么你就需要在這里定義他們。但是建議你現(xiàn)檢查一下DWR是不是已經(jīng)支持了。
在init部分里有了定義只是告訴DWR這些擴(kuò)展類(lèi)的存在,給出了如何使用的信息。這時(shí)他們還沒(méi)有被使用。這中方式很像Java中的import語(yǔ)句。多數(shù)類(lèi)需要在使用前先import一下,但是只有import語(yǔ)句并不表明這個(gè)類(lèi)已經(jīng)被使用了。每一個(gè)creator和converter都用id屬性,以便后面使用。
web.xml文檔)。每個(gè)文件中的定義會(huì)被加在一起。DWR用這個(gè)功能來(lái)加載基礎(chǔ)配置文件。我們可以看看標(biāo)準(zhǔn)被配置文件來(lái)了解dwr.xml的內(nèi)容。
總結(jié)
以上是生活随笔為你收集整理的dwr配置文件dwr.xml详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: goosegooseduck手游下载(g
- 下一篇: DWR