SpringMVC攔截器的使用


定義攔截器,實現HandlerInterceptor接口。接口中提供三個方法。

 1 package cn.itcast.ssm.interceptor;
 2 
 3 import javax.servlet.http.HttpServletRequest;
 4 import javax.servlet.http.HttpServletResponse;
 5 
 6 import org.springframework.web.servlet.HandlerInterceptor;
 7 import org.springframework.web.servlet.ModelAndView;
 8 
 9 public class HandlerInterceptor1 implements HandlerInterceptor {
10 
11     
12     //進入 Handler方法之前執行
13     //用於身份認證、身份授權
14     //比如身份認證,如果認證通過表示當前用戶沒有登陸,需要此方法攔截不再向下執行
15     @Override
16     public boolean preHandle(HttpServletRequest request,
17             HttpServletResponse response, Object handler) throws Exception {
18         
19         System.out.println("HandlerInterceptor1...preHandle");
20         
21         //return false表示攔截,不向下執行
22         //return true表示放行
23         return true;
24     }
25 
26     //進入Handler方法之后,返回modelAndView之前執行
27     //應用場景從modelAndView出發:將公用的模型數據(比如菜單導航)在這里傳到視圖,也可以在這里統一指定視圖
28     @Override
29     public void postHandle(HttpServletRequest request,
30             HttpServletResponse response, Object handler,
31             ModelAndView modelAndView) throws Exception {
32         
33         System.out.println("HandlerInterceptor1...postHandle");
34         
35     }
36 
37     //執行Handler完成執行此方法
38     //應用場景:統一異常處理,統一日志處理
39     @Override
40     public void afterCompletion(HttpServletRequest request,
41             HttpServletResponse response, Object handler, Exception ex)
42             throws Exception {
43         
44         System.out.println("HandlerInterceptor1...afterCompletion");
45     }
46 
47 }

 配置攔截器  :springmvc配置類似全局的攔截器,springmvc框架將配置的類似全局的攔截器注入到每個HandlerMapping中。

 1     <!--攔截器 -->
 2 <mvc:interceptors>
 3     <!--多個攔截器,順序執行 -->
 4     <!-- 登陸認證攔截器 -->
 5     <mvc:interceptor>
 6         <mvc:mapping path="/**"/>
 7         <bean class="cn.itcast.ssm.interceptor.LoginInterceptor"></bean>
 8     </mvc:interceptor>
 9     <mvc:interceptor>
10         <!-- /**表示所有url包括子url路徑 -->
11         <mvc:mapping path="/**"/>
12         <bean class="cn.itcast.ssm.interceptor.HandlerInterceptor1"></bean>
13     </mvc:interceptor>
14     <mvc:interceptor>
15         <mvc:mapping path="/**"/>
16         <bean class="cn.itcast.ssm.interceptor.HandlerInterceptor2"></bean>
17     </mvc:interceptor>
18 </mvc:interceptors>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM