在研究liferay框架中看到Web.xml中加入了過濾器的標(biāo)簽,可以根據(jù)頁面提交的URL地址進(jìn)行過濾,發(fā)現(xiàn)有幾個(gè)新標(biāo)簽沒用過,下面就介紹以下幾個(gè)過濾器的標(biāo)簽用法: <!-- 定義Filter --> <filter> <!-- Filter的名字 --> <filter-name>log</filter-name> <!-- Filter的實(shí)現(xiàn)類 --> <filter-class>lee.LogFilter</filter-class> </filter> <!-- 定義Filter攔截的URL地址 --> <filter-mapping> <!-- Filter的名字 --> <filter-name>log</filter-name> <!-- Filter負(fù)責(zé)攔截的URL 全部以/的請(qǐng)求,如果<url-pattern>/*.action </>,將會(huì)以攔截*.action的請(qǐng)求--> <url-pattern>/*</url-pattern> </filter-mapping> 在Servlet2.4中filter-mapping中加入了新的標(biāo)簽<dispatcher> ,里面有4個(gè)值即REQUEST, FORWARD,INCLUDE和ERROR,默認(rèn)不寫這個(gè)標(biāo)簽的時(shí)候是REQUEST,該標(biāo)簽是根據(jù)客戶端傳過來的地址進(jìn)行過濾,FORWARD方法傳過來的request方法可以攔截,<ERROR-PAGE>錯(cuò)誤頁面?zhèn)鬟^來的攔截,INCLUDE包含過來的過濾,一般REQUEST傳過來的攔截.該標(biāo)簽可以加入多個(gè). 下面例子是引用網(wǎng)上的: 例1: Xml代碼
這種情況下,過濾器將會(huì)作用于直接從客戶端發(fā)過來的以/products/…開始的請(qǐng)求,。因?yàn)檫@里沒有制定任何的< dispatcher >元素,,默認(rèn)值是REQUEST。 Xml代碼
這種情況下,,如果請(qǐng)求是通過request dispatcher的include方法傳遞過來的對(duì)ProductServlet的請(qǐng)求,,則要經(jīng)過這個(gè)過濾器的過濾。其它的諸如從客戶端直接過來的對(duì)ProductServlet的請(qǐng)求等都不需要經(jīng)過這個(gè)過濾器,。 Xml代碼
在這種情況下,如果請(qǐng)求是以/products/…開頭的,,并且是通過request dispatcher的forward方法傳遞過來或者直接從客戶端傳遞過來的,,則必須經(jīng)過這個(gè)過濾器。 |
|