- 什么是拦截器?
- 一种动态拦截方法调用的机制,类似于过滤器
- 拦截器是Spring框架中提供的,用来动态拦截控制器方法的执行
- 拦截器的作用:
- 拦截请求,在指定方法调用前后,根据业务需要执行预先设定的代码
- 拦截器使用步骤:
- 定义拦截器
- 注册配置拦截器
- 自定义拦截器:实现HandlerInterceptor接口,并重写其所有方法
-
//自定义拦截器 @Component public class LoginCheckInterceptor implements HandlerInterceptor { //目标资源方法执行前执行。 返回true:放行 返回false:不放行 @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("preHandle .... "); return true; //true表示放行 } //目标资源方法执行后执行 @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("postHandle ... "); } //视图渲染完毕后执行,最后执行 @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("afterCompletion .... "); } }
-
注意:
-
preHandle方法:目标资源方法执行前执行。返回true:放行;返回false:不放行
-
postHandle方法:目标资源方法执行后执行
-
afterCompletion方法:视图渲染完毕后执行,最后执行。
-
-
-
自定义配置拦截器:
-
实现WebMvcConfigurer接口,并重写AddIntereptores方法
-
@Configuration public class WebConfig implements WebMvcConfigurer { //自定义的拦截器对象 @Autowired private LoginCheckInterceptor loginCheckInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { //注册自定义拦截器对象 registry.addInterceptor(loginCheckInterceptor).addPathPatterns("/**");//设置拦截器拦截的请求路径( /** 表示拦截所有请求) } }
-
Interceptor
最新推荐文章于 2024-08-23 15:54:50 发布