- 攔截器的作用
作用:將多個Controller中共有的代碼放在攔截器中執行,從而減少controller中代碼的冗餘。 - 攔截器的特點
1. 請求到達經過攔截器 響應回來經過攔截器
2. 攔截器中斷用戶的請求軌跡
3. 攔截器只能攔截控制器相關請求路徑 - springboot中攔截器開發步驟
1. @Component
類MyInterceptor implements HandlerInterceptor
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
System.out.println("==========1============");
return true;
}
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
System.out.println("=================3=============");
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
System.out.println("=================4=============");
}
- 配置攔截器
需要配置攔截器那些請求路徑即可
@Component
public class InterceptorCongig extends WebMvcConfigurerAdapter {
@Autowired
private MyInterceptor myInterceptor;
@Override//用來在web環境下添加自定義攔截器配置
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(myInterceptor)//指定攔截器實例
.addPathPatterns("/**")//用來指定那些請求
.excludePathPatterns("file/upload"); //用來排除那些請求
}
注意:在springboot中攔截器的請求路徑書寫必須爲/**