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/**");//對應的不攔截的請求 } }