1.创建拦截器
public class LoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException, ServletException {
HttpSession session = request.getSession();
User user = (User) session.getAttribute("user");
if(user==null){
request.getRequestDispatcher("/pages/login.html").forward(request,response);
return false;
}else{
return true;
}
}
}
2.将拦截器加入到SpringBoot中
@Configuration
public class MvcConfig extends WebMvcConfigurationSupport {
@Override
protected void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**")
.excludePathPatterns(
//放行静态资源js,css,图片等
"/css/**",
"/fonts/**",
"/error/**",
"/img/**",
"/js/**",
"/lib/**",
"/login",//登陆请求
"/pages/login.html",//登陆页面
"/pages/logincookie"//登陆验证请求
);
}
//必须要自定义资源文件路径
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("classpath:/resources/")
.addResourceLocations("classpath:/static/");
super.addResourceHandlers(registry);
}
}