1. 程式人生 > >spring mvc中攔截器配置mvc:interceptors

spring mvc中攔截器配置mvc:interceptors

ria letter lec 成了 -a font 進行 匹配 eight

其實在mvc:interceptors標簽中,有兩種類型的配置,一種直接配置一個bean(bean和ref歸為一類),另一種還要配置上攔截的路徑和排除的路徑。直接配置的bean那就代表對所有的請求進行攔截,而對於mvc:interceptor則代表有著更精細的控制。

而mvc:interceptors的屬性path-matcher則表示配置一個自定義的PathMatcher,它主要用來處理路徑的匹配規則,默認采用的PathMatcher為AntPathMatcher,具有ant風格的路徑規則,如?表示任何單字符,*表示0個或多個字符,**表示0個或多個目錄。

註冊全部url到攔截器:
<mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
</mvc:interceptors>
An example of registering an interceptor limited to a specific URL path:
註冊指定url到攔截器:
<mvc:interceptors>
<mvc:interceptor>
<mapping path="/secure/*"/>
<bean class="org.example.SecurityInterceptor" />
</mvc:interceptor>
</mvc:interceptors>

如果有view,則渲染完成之後,才會執行triggerAfterCompletion,同時不再擁有對ModelAndView的處理(已經完成了渲染)。所以我們就可以看到當有view時,afterCompletion和postHandle的明顯區別。

當執行過程發生異常時,也會執行interceptor的afterCompletion方法。

這裏要做下說明,對於preHandler方法是獲取不到處理函數的參數值的,如果想對處理函數的參數值進行攔截處理,則要使用Spring AOP。

spring mvc中攔截器配置mvc:interceptors