public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 统一拦截,判断是否有登录(输入有账号密码,userName就会存储到session)
Object value = request.getSession().getAttribute("userInfo");
if (value != null) {
return true;
}else {
request.getRequestDispatcher("/login/toLogin").forward(request, response);
return false;
}
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
@Configuration //一定要加上这个注解,成为Springboot的配置类,不然不会生效
public class WebMvcConfiguration implements WebMvcConfigurer {
@Override //拦截器配置
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyInterceptor()) //拦截器注册对象
.excludePathPatterns("/login/toLogin") //排除请求
.excludePathPatterns("/login/loginReception")
.excludePathPatterns("/css/**","/js/**","/images/**")
.excludePathPatterns("/index")
.excludePathPatterns("/registerView")
.excludePathPatterns("/login/Register")
.addPathPatterns("/**"); //指定要拦截的请求
}
}