1.概念
拦截器是一种动态拦截方法调用的机制,在SpringMVC中动态拦截controller方法的执行
作用:
1.在指定的方法调用前后执行预先设定的代码
2.阻止原方法的执行
?表示拦截器所做功能
拦截器与过滤器的区别
1.归属不同:Filter属于Servlet技术,而Interceptor属于SpringMVC技术
2.拦截内容不同:Filter对所有访问进行增强,Interceptor仅对SpringMVC的访问进行增强
拦截器入门
1.在controller包下定义包interceptor,在包中定义projectInterceptor类
2.ProjectInterceptor类实现HandlerInterceptor接口,并实现三个方法preHandle(在原始操作执行前拦截)、postHandle(在原始操作执行后执行)、afterCompeletion(在post拦截之后拦截)
注意:preHandle中要return true,否则原始操作会被终止且后边两个拦截也不会执行
3.添加配置类SpringMvcSupport继承WebMvcConfigurationSupport类
重写addInterceptors方法,在addInterceptors方法中添加拦截器
拦截器参数
拦截器执行流程
多个拦截器执行顺序
如果第二个拦截器preHandle设置返回为false,则执行after1,执行完成后结束