一、第一种
1.代码
@WebFilter(filterName="LoginCheckFilter",urlPatterns="*")
public class LoginCheckFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {// TODO Auto-generated method stub}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {System.out.println("filter");HttpServletRequest httpRequest = (HttpServletRequest)request;HttpServletResponse httpResponse = (HttpServletResponse) response;httpResponse.setCharacterEncoding("UTF-8"); httpResponse.setContentType("application/json; charset=utf-8"); httpResponse.setHeader("Access-Control-Allow-Origin", "*");httpResponse.setHeader("Access-Control-Allow-Credentials", "true");httpResponse.setHeader("Access-Control-Allow-Methods", "*");httpResponse.setHeader("Access-Control-Allow-Headers", "Content-Type,Authorization");httpResponse.setHeader("Access-Control-Expose-Headers", "*");chain.doFilter(httpRequest, httpResponse);}@Overridepublic void destroy() {// TODO Auto-generated method stub}
}
2.加载方式(启动类上面加一个注解@ServletComponentScan)
@SpringBootApplication
@ComponentScan(basePackages = {"com.thread.threadtest.*"})
@ServletComponentScan
@EnableAsync
public class ThreadtestApplication {public static void main(String[] args) {SpringApplication.run(ThreadtestApplication.class, args);}
}
3.启动之后,访问任何一个后端接口都会走这个过滤器的,然后会把我们在过滤器写的那句话输出。
二、第二种方式
1.代码
public class LoginCheckFilter2 implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {// TODO Auto-generated method stub}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {System.out.println("filter 22222");chain.doFilter(request, response);}@Overridepublic void destroy() {// TODO Auto-generated method stub}
}
2.通过一个配置类进行加载
@Configuration
public class FilterConfig {@Beanpublic FilterRegistrationBean filterRegistration() {FilterRegistrationBean reg = new FilterRegistrationBean();reg.setFilter(new LoginCheckFilter2());reg.addUrlPatterns("*");return reg;}
}
3.同样能达到上面的效果
三、结束
Always keep the faith!!!