1.定义两个拦截器
一.
package com.boot.intercept.intercept;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** 拦截器一*/
public class OneInterceptor implements HandlerInterceptor {private static final Logger LOGGER = LoggerFactory.getLogger(OneInterceptor.class.getName());@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {String url =String.valueOf(request.getRequestURL()) ;LOGGER.info("1、url=="+url);// 放开拦截return true;}@Overridepublic void postHandle(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse,Object o, ModelAndView modelAndView) throws Exception {LOGGER.info("1、postHandle");}@Overridepublic void afterCompletion(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse,Object o, Exception e) throws Exception {LOGGER.info("1、afterCompletion");}
}
二
package com.boot.intercept.intercept;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** 拦截器二*/
public class TwoInterceptor implements HandlerInterceptor {private static final Logger LOGGER = LoggerFactory.getLogger(TwoInterceptor.class.getName());@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {String url =String.valueOf(request.getRequestURL()) ;LOGGER.info("2、url=="+url);// 放开拦截return true;}@Overridepublic void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {LOGGER.info("2、postHandle");}@Overridepublic void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {LOGGER.info("2、afterCompletion");}
}
2.配置注册拦截器
package com.boot.intercept.config;import com.boot.intercept.intercept.OneInterceptor;
import com.boot.intercept.intercept.TwoInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/*** Web配置文件*/
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {public void addInterceptors(InterceptorRegistry registry) {// 拦截所有路径// 注册自定义两个拦截器registry.addInterceptor(new OneInterceptor()).addPathPatterns("/**").order(2);registry.addInterceptor(new TwoInterceptor()).addPathPatterns("/**");}
}
3.测试
@RequestMapping("/req")public String reqUrl (){return "成功" ;}}
4.结果