原文鏈接http://zhhll.icu/2021/01/09/%E6%A1%86%E6%9E%B6/springmvc/%E6%8B%A6%E6%88%AA%E5%99%A8/
springmvc攔截器
攔截器的使用
在springmvc中使用攔截器融求,對請求進行攔截處理首先需要實現(xiàn)HandlerInterceptor接口,然后重寫該接口中的三個方法
也可以繼承HandlerInterceptorAdapter類來重寫某個方法
注意:攔截器是springmvc提供的功能斥黑,過濾器是javaee中提供的原生功能狸演,過濾器在DispatcherServlet之前執(zhí)行,攔截器在DispatcherServlet之后執(zhí)行
public interface HandlerInterceptor {
/**
* 目標(biāo)方法之前調(diào)用
* 如果返回值為false滑黔,則直接返回笆包,不會調(diào)用目標(biāo)方法
* 如果返回值為true,則繼續(xù)調(diào)用后續(xù)攔截器或者目標(biāo)方法
*
* 作用:權(quán)限略荡、日志
*/
boolean preHandle(HttpServletRequest var1, HttpServletResponse var2, Object var3) throws Exception;
/**
* 調(diào)用目標(biāo)方法之后執(zhí)行
*
* 作用:修改請求域中的屬性做修改
*/
void postHandle(HttpServletRequest var1, HttpServletResponse var2, Object var3, ModelAndView var4) throws Exception;
/**
* 渲染視圖之后調(diào)用
*
* 作用:釋放資源
*/
void afterCompletion(HttpServletRequest var1, HttpServletResponse var2, Object var3, Exception var4) throws Exception;
}
然后在配置文件中配置所編寫的攔截器
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.zhanghe.study.springmvc.interceptor.TestInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
攔截器執(zhí)行順序
對于preHandler方法庵佣,是按照攔截器配置的順序執(zhí)行的
而對于postHadler方法和afterCompletion方法,是按照攔截器配置的反序執(zhí)行
由于本身的博客百度沒有收錄汛兜,博客地址http://zhhll.icu