1 。編寫MyFilter類,實現Filter接口
package com.zhong.spring_demo.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
/**
* 攔截所有服務的請求信息,filter攔截器不能知道filter是哪個controller處理的請求,只能獲取請求中的信息
*/
@WebFilter(urlPatterns = { "/**" })
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
// 通過filter
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() {
}
}
2.配置Filter
package com.zhong.spring_demo.config;
import java.util.List;
import com.zhong.spring_demo.filter.MyFilter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* 註冊外部的interceptor WebConfig
*/
@Configuration
public class WebConfig implements WebMvcConfigurer {
/**
* 註冊外部的filter,
*/
@Bean
public FilterRegistrationBean myFilter() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
filterRegistrationBean.setFilter(new MyFilter());
String[] urls = new String[] { "/**" };
filterRegistrationBean.addUrlPatterns(urls);
return filterRegistrationBean;
}
}