您好,登錄后才能下訂單哦!
不懂關于SpringMVC攔截器配置的方法?其實想解決這個問題也不難,下面讓小編帶著大家一起學習怎么去解決,希望大家閱讀完這篇文章后大所收獲。
1.與過濾器filter的區別
2.springMVC中攔截器的必須實現的三個方法:
3. 攔截器類的編寫:
package com.imooc.core; import com.imooc.bean.User; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LoginInterceptor implements HandlerInterceptor { //在業務處理器被調用前的方法,若是返回false則不會繼續進入業務處理器 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { User user = (User)request.getSession().getAttribute("session_user"); if(user==null) { response.sendRedirect(request.getContextPath()+"/login"); return false;//會終止所有的請求 } return true; } //在業務處理器被調用后,dispatcher響應客戶端前的方法,一般用于生成日志文件時調用 public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } //dispatcher響應客戶端后的方法,一般用于資源的清理 public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } }
4.在spring的配置文件中注冊攔截器:
<!-- 攔截器的注冊 --> <mvc:interceptors> <mvc:interceptor> <!--**表示往后的所有子目錄也包括進來--> <mvc:mapping path="/user/**"></mvc:mapping> <!--exclude-mapping在所有攔截中進行排除,一般在通配符會有意義。--> <!--即以下的方法不會被攔截--> <mvc:exclude-mapping path="/user/updatepwd"></mvc:exclude-mapping> <mvc:exclude-mapping path="/user/updatebackground/*"></mvc:exclude-mapping> <!--填寫之前配置好的攔截器--> <bean class="com.imooc.core.LoginInterceptor"></bean> </mvc:interceptor> </mvc:interceptors>
注意:要是有多個攔截器執行順序以spring的配置文件中的注冊攔截器順序執行:
<!-- 攔截器的注冊 --> <mvc:interceptors> <!--先注冊先執行--> <mvc:interceptor> <mvc:mapping path="/user/**"/> <bean class="com.imooc.core.LogInterceptor"></bean> </mvc:interceptor> <mvc:interceptor> <mvc:mapping path="/user/**"></mvc:mapping> <!--exclude-mapping在所有攔截中進行排除,一般在通配符會有意義。--> <mvc:exclude-mapping path="/user/updatepwd"></mvc:exclude-mapping> <mvc:exclude-mapping path="/user/updatebackground/*"></mvc:exclude-mapping> <bean class="com.imooc.core.LoginInterceptor"></bean> </mvc:interceptor> </mvc:interceptors>
其次攔截器里的方法順序:
感謝你能夠認真閱讀完這篇文章,希望小編分享關于SpringMVC攔截器配置的方法內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。