版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq360694660/article/details/81287803
1、实现Filter接口
package com.example.studySpringBoot.filter;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class MySelfFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
response.addHeader("Access-Control-Allow-Origin","http://localhost:7001");// * 允许所有域名跨域访问
response.addHeader("Access-Control-Allow-Methods","GET");// * 允许所有请求方法
// 是否让请求通过过滤器。这行代码不能漏掉。如果漏掉请求会访问不到URL
filterChain.doFilter(request,response);
}
@Override
public void destroy() {
}
}
2、注册Filter
package com.example.studySpringBoot;
import com.example.studySpringBoot.filter.MySelfFilter;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ImportResource;
@SpringBootApplication
@ImportResource({ "classpath:applicationContext.xml" })
public class StudySpringBootApplication {
public static void main(String[] args) throws Exception {
SpringApplication.run(StudySpringBootApplication.class, args);
}
@Bean
public FilterRegistrationBean registFilter(){
FilterRegistrationBean bean = new FilterRegistrationBean();
// 定义filter的过滤路径规则。
bean.addUrlPatterns("/*");
bean.setFilter(new MySelfFilter());
return bean;
}
}