本篇內容主要講解“Java SpringMVC如何實現自定義攔截器”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java SpringMVC如何實現自定義攔截器”吧!
Spring MVC 的攔截器類似于 Servlet 開發中的過濾器 Filter,用于對處理器進行預處理和后處理。
將攔截器按一定的順序聯結成一條鏈,這條鏈稱為攔截器鏈(InterceptorChain)。在訪問被攔截的方法或字段時,攔截器鏈中的攔截器就會按其之前定義的順序被調用。攔截器也是AOP思想的具體實現。
關于interceptor和filter的區別,如圖所示:
步驟分析:
1.創建攔截器類實現HandlerInterceptor接口
2.配置攔截器
3.測試攔截器的攔截效果
public class MyInterceptor implements HandlerInterceptor { /** * preHandle: 在目標方法執行之前 進行攔截 return false:不放行 */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("preHandle1...."); return true; } /** * postHandle: 在目標方法執行之后,視圖對象返回之前,執行的方法 */ @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("postHandle1...."); } /** * afterCompletion:在流程都執行完成后,執行的方法 */ @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("afterCompletion1...."); } }
<!-- 配置攔截器--> <mvc:interceptors> <mvc:interceptor> <!--對哪些資源執行攔截操作 path="/**"表示對controller層所有方法進行攔截 --> <mvc:mapping path="/**" /> <bean class="com.weihong.interceptor.MyInterceptor" /> </mvc:interceptor> </mvc:interceptors>
@RequestMapping("/target") public String targetMethed(){ System.out.println("目標方法執行了"); return "interceptor"; }
<html> <head> <title>Title</title> </head> <body> <h4>success~~~~~~</h4> <% System.out.println("視圖執行了....");%> </body> </html>
開發中攔截器可以單獨使用,也可以同時使用多個攔截器形成一條攔截器鏈。開發步驟和單個攔截器是一樣的,只不過注冊的時候注冊多個,注意這里注冊的順序就代表攔截器執行的順序。
同上,再編寫一個MyHandlerInterceptor2操作,測試執行順序:
<!--配置攔截器--> <mvc:interceptors> <mvc:interceptor> <!--攔截器路徑配置--> <mvc:mapping path="/**"/> <!--自定義攔截器類--> <bean class="com.lagou.interceptor.MyInterceptor1"></bean> </mvc:interceptor> <mvc:interceptor> <!--攔截器路徑配置--> <mvc:mapping path="/**"/> <!--自定義攔截器類--> <bean class="com.lagou.interceptor.MyInterceptor2"></bean> </mvc:interceptor> </mvc:interceptors>
到此,相信大家對“Java SpringMVC如何實現自定義攔截器”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。