her~~llo,我是你们的好朋友Lyle,是名梦想成为计算机大佬的男人!
博客是为了记录自我的学习历程,加强记忆方便复习,如有不足之处还望多多包涵!非常欢迎大家的批评指正。
今天主要学习关于拦截器的知识。
目录
WebMvcConfigurationSupport简化开发(注意:侵入式较强)
一、拦截器概念
拦截器( Interceptor )是一种动态拦截方法调用的机制,在SpringMVC中动态拦截控制器方法的执行。
作用︰
- 在指定的方法调用前后执行预先设定的代码阻止原始方法的执行
- 阻止原始方法的执行
拦截器与过滤器区别
归属不同:Filter属于Servlet技术,Interceptor属于SpringMVC技术
拦截内容不同:Filter对所有访问进行增强,Interceptor仅针对SpringMVc的访问进行增强
二、入门案例
①声明拦截器的bean,并实现HandlerInterceptor接口(注意:扫描加载bean)
@Component public class Interceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("preHandle..."); return true; //false会拦截原始操作,只进行preHandle } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("postHandle..."); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("afterCompletion..."); } }
②定义配置类,继承webMvcConfigurationSupport,实现addInterceptor方法(注意:扫描加载配置)
③添加拦截器并设定拦截的访问路径,路径可以通过可变参数设置多个
@Configuration public class SpringMvcSupport extends