web.xml裡<filter-mapping>中的<dispatcher>作用

來源:互聯網
上載者:User

標籤:

在2.4版本的servlet規範在部屬描述符中新增加了一個<dispatcher>元素,這個元素有四個可能的值:即REQUEST,FORWARD,INCLUDE和ERROR,可以在一個<filter-mapping>元素中加入任意數目的<dispatcher>,使得filter將會作用於直接從用戶端過來的request,通過forward過來的request,通過include過來的request和通過<error-page>過來的request。如果沒有指定任何<dispatcher>元素,預設值是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-mapping>中的<dispatcher>作用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.