web.xml中Filter過濾器標籤說明

來源:互聯網
上載者:User

標籤:根據   情況   filter   pattern   ogg   1.2   定義   ping   web   

原文:http://www.cnblogs.com/edwardlauxh/archive/2010/03/11/1918618.html

在研究liferay架構中看到Web.xml中加入了過濾器的標籤,可以根據頁面提交的URL地址進行過濾,發現有幾個新標籤沒用過,下面就介紹以下幾個過濾器的標籤用法:

<!-- 定義Filter --><filter><!-- Filter的名字 --><filter-name>log</filter-name><!-- Filter的實作類別 --><filter-class>lee.LogFilter</filter-class> </filter><!-- 定義Filter攔截的URL地址 --><filter-mapping><!-- Filter的名字 --><filter-name>log</filter-name><!-- Filter負責攔截的URL 全部以/的請求,如果<url-pattern>/*.action </>,將會以攔截*.action的請求--><url-pattern>/*</url-pattern></filter-mapping>

在Servlet2.4中filter-mapping中加入了新的標籤<dispatcher> ,裡面有4個值即REQUEST, FORWARD,INCLUDE和ERROR,預設不寫這個標籤的時候是REQUEST,該標籤是根據用戶端傳過來的地址進行過濾,FORWARD方法傳過來的request方法可以攔截,<ERROR-PAGE>錯誤頁面傳過來的攔截,INCLUDE包含過來的過濾,一般REQUEST傳過來的攔截.該標籤可以加入多個.

下面例子是引用網上的:

例1:

Xml代碼

  1. <filter-mapping>
  2. <filter-name>Logging Filter</filter-name>
  3. <url-pattern>/products/*</url-pattern>
  4. </filter-mapping>

這種情況下,過濾器將會作用於直接從用戶端發過來的以/products/…開始的請求。因為這裡沒有制定任何的< dispatcher >元素,預設值是REQUEST。
例2:

Xml代碼

  1. <filter-mapping>
  2. <filter-name>Logging Filter</filter-name>
  3. <servlet-name>ProductServlet</servlet-name>
  4. <dispatcher>INCLUDE</dispatcher>
  5. </filter-mapping>

這種情況下,如果請求是通過request dispatcher的include方法傳遞過來的對ProductServlet的請求,則要經過這個過濾器的過濾。其它的諸如從用戶端直接過來的對ProductServlet的請求等都不需要經過這個過濾器。
指定filter的匹配方式有兩種方法:直接指定url-pattern和指定servlet,後者相當於把指定的servlet對應的url-pattern作為filter的匹配模式
filter的路徑匹配和servlet是一樣的,都遵循servlet規範中《SRV.11.2 Specification of Mappings》一節的說明
例3:

Xml代碼

  1. <filter-mapping>
  2. <filter-name>Logging Filter</filter-name>
  3. <url-pattern>/products/*</url-pattern>
  4. <dispatcher>FORWARD</dispatcher>
  5. <dispatcher>REQUEST</dispatcher>
  6. </filter-mapping>

在這種情況下,如果請求是以/products/…開頭的,並且是通過request dispatcher的forward方法傳遞過來或者直接從用戶端傳遞過來的,則必須經過這個過濾器。

web.xml中Filter過濾器標籤說明

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.