在Spring MVC中經常要用到攔截器,在配置需要要攔截的路徑時經常用到<mvc:mapping/>子标簽,其有一個path屬性,它就是用來指定需要攔截的路徑的。例如:
1
2
3
4
<code><</code><code>mvc:interceptor</code><code>></code>
<code> </code><code><</code><code>mvc:mapping</code> <code>path</code><code>=</code><code>"/**"</code> <code>/></code>
<code> </code><code><</code><code>bean</code> <code>class</code><code>=</code><code>"com.test.interceptor.TestInterceptor"</code> <code>/></code>
<code></</code><code>mvc:interceptor</code><code>></code>
根據以上配置,此攔截器會攔截所有的請求。
Spring MVC中的路徑比對要比标準的web.xml要靈活的多。預設的政策實作了 org.springframework.util.AntPathMatcher,就像名字提示的那樣,路徑模式是使用了Apache Ant的樣式路徑,Apache Ant樣式的路徑有三種通配符比對方法(在下面的表格中列出)
這些可以組合出很多種靈活的路徑模式
Table Ant Wildcard Characters
Wildcard
Description
?
比對任何單字元
*
比對0或者任意數量的字元
**
比對0或者更多的目錄
Table Example Ant-Style Path Patterns
Path
/app/*.x
比對(Matches)所有在app路徑下的.x檔案
/app/p?ttern
比對(Matches) /app/pattern 和 /app/pXttern,但是不包括/app/pttern
/**/example
比對(Matches) /app/example, /app/foo/example, 和 /example
/app/**/dir/file.
比對(Matches) /app/dir/file.jsp, /app/foo/dir/file.html,/app/foo/bar/dir/file.pdf, 和 /app/dir/file.java
/**/*.jsp
比對(Matches)任何的.jsp 檔案
本文轉自 獨孤環宇 51CTO部落格,原文連結:http://blog.51cto.com/snowtiger/2053193