- 自定义拦截器(拦截的条件是什么)
//自定义登录拦截器
public class LoginHandlerIntercepter implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//获取登录session
Object userLogin = request.getSession().getAttribute("userLogin");
if(userLogin == null){//没有登录
request.setAttribute("msg","没有权限,请先登录!");
//请求转发
request.getRequestDispatcher("/index.html").forward(request,response);
//拦截
return false;
}
return true;
}
}
- 配置拦截器(拦截什么请求)
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginHandlerIntercepter())
.addPathPatterns("/**")
.excludePathPatterns("/index.html","/","/user/login","/css/**","/img/**","/js/**");
}
}