1.创建拦截器类
public class LoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request
, HttpServletResponse response
, Object handler
)
throws Exception
{
System
.out
.println("interceptor preHandle");
return true;
}
@Override
public void postHandle(HttpServletRequest request
, HttpServletResponse response
, Object handler
,
ModelAndView modelAndView
) throws Exception
{
System
.out
.println("interceptor postHandle");
}
@Override
public void afterCompletion(HttpServletRequest request
, HttpServletResponse response
, Object handler
, Exception ex
)
throws Exception
{
System
.out
.println("interceptor afterCompletion");
}
}
2.创建controller类
@RestController
public class UserController {
@GetMapping("/user/getUser")
public User
getUser() {
User user
=new User();
user
.setId(1);
user
.setUserName("张三");
user
.setUserPassword("123");
return user
;
}
@GetMapping("/user/hello")
public String
hello() {
return "hello spring boot";
}
@GetMapping("/user/index")
public String
index() {
return "index";
}
}
3.创建拦截器的注册类
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry
) {
String
[] addPathPatterns
= {
"/user/**"
};
String
[] excludePathPatterns
= {
"/user/hello",
"/user/index"
};
//注册指定的拦截器
,可以用注册多个
InterceptorRegistration interceptor
=registry
.addInterceptor(new LoginInterceptor());
interceptor
.addPathPatterns(addPathPatterns
);//添加需要拦截的路径
interceptor
.excludePathPatterns(excludePathPatterns
);//添加不需要拦截的路径
}
}
4.启动springboot项目运行测试即可