public class LoginInterceptor implements HandlerInterceptor { private static final Logger log = LoggerFactory.getLogger(LoginInterceptor.class); /** * 進入controller層以前攔截請求 * * @param httpServletRequest * @param httpServletResponse * @param o * @return * @throws Exception */ @Override public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception { log。info("---------------開始進入地址攔截器-------------------")return true; } //訪問controller以後 訪問視圖以前被調用 @Override public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception { log.info("--------------處理請求完成後視圖渲染以前的處理操做---------------"); } //訪問視圖以後被調用 @Override public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception { log.info("---------------視圖渲染以後的操做-------------------------0"); } }
/* 攔截器配置類 */ @Configuration public class WebAppConfig extends WebMvcConfigurerAdapter { // 多個攔截器組成一個攔截器鏈 // addPathPatterns 用於添加攔截規則 // excludePathPatterns 用戶排除攔截 @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LoginInterceptor())//添加攔截器 .addPathPatterns("/**") //攔截全部請求 .excludePathPatterns("/UserCon/**", "/Doctor/**", "/SMS/**");//對應的不攔截的請求 } }