目录
拦截器概念
图示拦截器
拦截器实现的代码:
自定义拦截器
package com.example.springboot_learn.Interceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class testiterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("这里是前置拦截器");
return HandlerInterceptor.super.preHandle(request, response, handler);
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("这里是中间拦截器");
HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("这里是后置拦截器");
HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
}
}
拦截器MVC配置
package com.example.springboot_learn.Interceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class MVCCONFIG implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new testiterceptor())
//“”里是添加要拦截的路径
.addPathPatterns("/**")
//“”里是设置不拦截的路径
.excludePathPatterns("/Book1");
}
}
结果
idea什么都不会输出,因为没有被拦截