springboot2.1版本的拦截器实现的接口跟以前的旧版本不一样:
代码如下:
首先我们创建一个java文件,我这里起的是:SessionInterceptor.java里面代码如下:
package com.example.phone.demo.interceptor; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class SessionInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception { System.out.println("preHandle"); // String token= request.getParameter("access_token"); response.getWriter().print("fail"); // return HandlerInterceptor.super.preHandle(request,response,handler); return true; } @Override public void postHandle (HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception{ System.out.println("postHandle"); HandlerInterceptor.super.postHandle(request,response,handler,modelAndView); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)throws Exception { System.out.println("afterCompletion"); HandlerInterceptor.super.afterCompletion(request,response,handler,ex); } }
这里我们写要拦截的内容信息,写完之后我们就要去拦截器那里注册这个文件进行拦截:
在创建一个文件,我的是SessionConfiguration.java,内容代码如下:
package com.example.phone.demo.interceptor; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @Configuration public class SessionConfiguration implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new SessionInterceptor()).addPathPatterns("/"); WebMvcConfigurer.super.addInterceptors(registry); } }
这里的 registry.addInterceptor(new SessionInterceptor()).addPathPatterns("/");的意思是刚才我们的那个文件注册成拦截器,addPathPatterns()这个是要拦截器的路劲,如果想在这个路劲里面除掉一些路径不用进行拦截,那么在后面加上
.excludePathPatterns("/")括号里面就是不进行拦截的路径。
记得注意下实现的接口哦!