1.攔截器作用
SpringMVC的處理器攔截器類似於Servlet開發中的過濾器Filter,用於對處理器進行預處理和后處理。開發者可以自己定義一些攔截器來實現特定的功能。
2.自定義攔截器
想要自定義攔截器,必須實現 HandlerInterceptor
接口。
1 package com.springmvc.aftercom; 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 /** 10 * springmvc攔截器 11 * @author Administrator 12 * 13 */ 14 public class MyInterceptor implements HandlerInterceptor{ 15 16 @Override 17 public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) 18 throws Exception { 19 System.out.println("afterCompletion方法在控制器的處理請求方法執行完成后執行,即視圖渲染結束之后執行"); 20 } 21 22 @Override 23 public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) 24 throws Exception { 25 System.out.println("postHandle方法在控制器的處理請求方法調用之后,解析視圖之前執行"); 26 } 27 28 @Override 29 public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception { 30 System.out.println("preHandle方法在控制器的處理請求方法調用之后,解析視圖之前執行"); 31 return true; 32 } 33 34 35 }
3.在springmvc核心配置文件中配置攔截器
1 <!-- 配置攔截器 --> 2 <mvc:interceptors> 3 <mvc:interceptor> 4 <!-- 配置攔截器作用的路徑 對某個模塊攔截請求 /模塊名/* --> 5 <mvc:mapping path="/**" /> 6 <!--攔截器方法--> 7 <bean class="com.springmvc.aftercom.MyInterceptor"></bean> 8 </mvc:interceptor> 9 </mvc:interceptors>