- 拦截器的作用
作用:将多个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中拦截器的请求路径书写必须为/**