拦截器
拦截器的概念:
-
拦截器(Interceptor)是一种动态拦截方法调用的机制(类似于栈的操作,进栈出栈同一个地方)
-
作用:
-
在指定的方法调用前后执行预先设定后的代码。
-
阻止原始方法的执行
拦截器与过滤器的区别
-
归属不同: Filter属于Servlet技术,Interceptor属于SpringMVC技术
-
拦截内容不同:Filter对所有访问进行增强,Interceptor仅针对SpringMVC的访问进行增强
同在Controller层种创建一个文件夹名为Interceptor,在里面创建ProjectInterceptor类如何调用HandlerInterceptor接口(里面有三个默认方法,我们将他们重写一下),模拟一下工作环境在perHandle里面写上输出语句在控制台来使得方法的调用可视化,能够让我们更加直观的看到每一个方法的执行顺序(鼠标坏了就没有自己搞代码了,截图的黑马视频内容)。
测试数据查看效果。能发现preHandle在原始方法之前,postHandle在原始方法后,最后才是afterComoletion方法,
注:Objecrt handle 其实就是原始方法的封装类,能够通过它来调用处理原始方法。
多拦截器的执行顺序
-
当配置多个拦截器时,形成拦截器链