MyInterceptor.java public class MyInterceptor implements HandlerInterceptor { Logger logger = LoggerFactory.getLogger(MyInterceptor.class); @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // TODO Auto-generated method stub logger.info("------preHandle------"); //获取session HttpSession session = request.getSession(true); //判断用户ID是否存在,不存在就跳转到登录界面 if(session.getAttribute("userId") == null){ logger.info("------:跳转到login页面!"); response.sendRedirect(request.getContextPath()+"/admin/login"); return false; }else{ session.setAttribute("userId", session.getAttribute("userId")); return true; } } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { // TODO Auto-generated method stub } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { // TODO Auto-generated method stub } }
WebConfig.java
@Configuration @EnableWebMvc @ComponentScan public class WebConfig extends WebMvcConfigurerAdapter implements ApplicationContextAware { private ApplicationContext applicationContext; public WebConfig(){ super(); } @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/static/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+"/static/"); registry.addResourceHandler("/templates/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+"/templates/"); super.addResourceHandlers(registry); } @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext = applicationContext; } @Override public void addInterceptors(InterceptorRegistry registry) { //拦截规则:除了login,其他都拦截判断 registry.addInterceptor(new MyInterceptor()). addPathPatterns("/**"). excludePathPatterns("/adminUser/login"); super.addInterceptors(registry); } }