//登陸攔截器public class LoginInterceptor implements HandlerInterceptor { //訪問controller之前被調用 @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HttpSession session=request.getSession(); if(null!=session.getAttribute("admin")) return true; return false; } //訪問controller之后 訪問視圖之前被調用 @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception { } //訪問視圖之后被調用 @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception { } }
攔截器配置類 @Configuration public class MyWebAppConfigurer extends WebMvcConfigurerAdapter { @Override public void addInterceptors(InterceptorRegistry registry) { // 多個攔截器組成一個攔截器鏈 // addPathPatterns 用於添加攔截規則 // excludePathPatterns 用戶排除攔截 registry.addInterceptor(new LoginInterceptor()) //添加攔截器 .addPathPatterns("/**") //攔截所有請求 .excludePathPatterns("/","/admin_login","/login"); //對應的不攔截的請求 super.addInterceptors(registry); } }