1.先写一个配置拦截类 实现 HandlerInterceptor
package wocd;
import org.springframework.stereotype.Controller;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Controller
public class lanjie implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("dasda");
//放行
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
System.out.println("dsadasdasdas");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
System.out.println("dsaddsadasasdasdas");
}
}
再写一类个去继承 WebMvcConfigurationSupport类,重写拦截的addResourceHandlers方法,和放行的addInterceptors的代码
package wocd;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
@Controller
public class peizhi extends WebMvcConfigurationSupport {
//拦截的代码
@Autowired
private lanjie lanjie;
@Override
protected void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(lanjie).addPathPatterns("/dd/aa");
}
//放行的路径
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/ddd/**").addResourceLocations("/ddd/");
}
}
包扫描,记住扫描要扫描住。
方式2:在主要配置类 implements WebMvcConfigurer
package wocd;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
@ComponentScan("wocd")
@EnableWebMvc
public class TokenInterceptorConfig implements WebMvcConfigurer {
@Autowired
private lanjie lanjie;
//拦截
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(lanjie)
.addPathPatterns("/user/**")//设定拦截的路径
.excludePathPatterns("/user/selectUser");//设定拦截的路径上应当排除的路径请求
}
// 放行
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/ddd/**").addResourceLocations("/ddd/");
}
}