溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringMVC攔截器如何設置多個path

發布時間:2021-11-01 09:13:21 來源:億速云 閱讀:729 作者:小新 欄目:開發技術

這篇文章主要介紹SpringMVC攔截器如何設置多個path,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

SpringMVC攔截器path路徑的坑

SpringMVC提供了很方便的攔截器供我們開發使用。在配置文件中通過<mvc:mapping path="" />進行配置攔截的路徑,但是這個path在配置的時候有一個小坑

我們都知道在SpringMVC攔截器中的/**是配置全部路徑.現在我有一個需求,想要攔截以/user/開頭的請求.我的path寫為/user/**,這樣就能攔截到所有的符號條件的請求.

然后我的項目需求增加了,我在項目中加入了多重權限控制并希望用攔截器去控制它.假設現在有個功能,只開放給管理員,所以我把它的訪問路徑設為/user/manager/xxxx/xxxx.所以我又加入了一個攔截器,希望攔截路徑中存在/manager/的所有的請求.我把path寫為/manager/'**,結果卻不行.

user的攔截器正常,但是manager的攔截器卻不工作,我一度以為是攔截器出現了錯誤.然后經過一下午檢查,我發現我把路徑改成/manager/user/xxxx/xxxx就變成了manager攔截器工作但user攔截器不工作.我就確定是path出了問題.

在一次次修改嘗試后,我明白了,原來/user/**只適用于以/user/開頭的請求,/user/的前面什么都不能有,由于我所有的請求都是/user/開頭,所以user的攔截器一直都是可以正常運行的,但是manager攔截器就不同了,我的path寫為/manager/**,但是我所有帶有/manager/的請求都是前面有/user/的,所以這不滿足path路徑中的/manager/**.當你要在這個名稱的前面加其他的一個名稱時,你需要/*/manager/**,如果前面有多個名稱,就是/**/manager/**,當然了,由于/**是通配符,所以以manager開頭的url也符合這個條件.

SpringMVC攔截器設置多個path

設置多個path

同一個攔截器如果想指定多個path,直接順序添加多個<mvc:mapping path="" />即可:

<!-- 攔截器 -->
<mvc:interceptors>
 <!-- 多個攔截器,順序執行 -->
 <!-- 如果不配置或/**,將攔截所有的Controller -->
 <!-- 注意,匹配任意地址時注意是2個“*”號不是1個“*”號 -->
 <mvc:interceptor>
  <mvc:mapping path="/aaa/**" />
  <mvc:mapping path="/bbb/**" />
  <bean class="com.test.blog.interceptor.AccessInterceptor">
   <property name="protectedUrls">
    <list>
     <value>edit</value>
     <value>add</value>
    </list>
   </property>
  </bean>
 </mvc:interceptor>
</mvc:interceptors>

以上是“SpringMVC攔截器如何設置多個path”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女