欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springboot 配置使用拦截器 interceptor

程序员文章站 2022-07-09 18:03:30
...

springboot 配置使用拦截器 interceptor

1 定义拦截器类实现 HandlerInterceptor 

package com.kerry.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;


public class MyInterceptor implements HandlerInterceptor {

	@Override
	public void afterCompletion(HttpServletRequest arg0,
			HttpServletResponse arg1, Object arg2, Exception arg3)
			throws Exception {

	}

	@Override
	public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
			Object arg2, ModelAndView arg3) throws Exception {
		// TODO Auto-generated method stub

	}

	@Override
	public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1,
			Object arg2) throws Exception {
		
		return false;
	}

}

2 编写配置类 InterceptorConfigure

package com.kerry.configure;

import org.springframework.boot.autoconfigure.web.WebMvcRegistrationsAdapter;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import com.kerry.interceptor.MyInterceptor;
import com.kerry.interceptor.MyInterceptor1;

@Configuration
public class InterceptorConfigure extends WebMvcConfigurerAdapter {

	@Override
	public void addInterceptors(InterceptorRegistry registry) {
		registry.addInterceptor(new MyInterceptor())
				.addPathPatterns("/interceptor/*")
				.excludePathPatterns("/interceptor/exclude/*");
		
//		registry.addInterceptor(new MyInterceptor1())
//				.addPathPatterns("/interceptor1/*")
//				.excludePathPatterns("/interceptor1/exculde/*");
	}

}

多个拦截器可以在里面添加多个

上面继承的 WebMvcConfigurerAdapter 里面有很多其他的使用配置

只有经过DispatcherServlet 的请求,才会走拦截器链,我们自定义的Servlet 请求是不会被拦截的,比如我们自定义的Servlet地址 http://localhost:8080/servlet/myServlet 是不会被拦截器拦截的。并且不管是属于哪个Servlet 只要复合过滤器的过滤规则,过滤器都会拦截。

上面用到的 WebMvcConfigurerAdapter 并非只是注册添加拦截器使用,其顾名思义是做Web配置用的,它还可以有很多其他作用,通过下面截图便可以大概了解,具体每个方法都是干什么用的,留给大家自己研究(其实都大同小异也很简单)

springboot 配置使用拦截器 interceptor




附上项目结构

springboot 配置使用拦截器 interceptor