springmvc的攔截器
阿新 • • 發佈:2022-04-05
spring mvc的攔截器和servlet提供的過濾器的作用很相似,都能攔截http請求和響應結果,對http的請求和響應做一些通用的操作。
springMVC的攔截器的介面
springmvc提供了org.springframework.web.servlet.HandlerInterceptor攔截器的介面: preHandle方法:呼叫控制器類的請求方法之前執行的方法,返回true會繼續執行後面的操作,返回false會中斷執行流程。 postHandle方法:呼叫控制器類的請求方法之後,把請求請求轉發給檢視元件之前。 afterCompletion:檢視元件執行完畢,把響應結果返回給客戶端之前。 springmvc中定義的攔截器要實現HandlerInterceptor介面
在springmvc的配置檔案中配置攔截器
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="test.MyInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
springmvc攔截器的簡單實現
public class MyInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("呼叫控制器類的請求方法之前執行的方法,返回true會繼續執行後面的操作,返回false會中斷執行流程。"); return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("呼叫控制器類的請求方法之後,把請求請求轉發給檢視元件之前。"); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("檢視元件執行完畢,把響應結果返回給客戶端之前。"); } }