当前位置: 代码迷 >> 综合 >> java过滤器的两种加载方式
  详细解决方案

java过滤器的两种加载方式

热度:87   发布时间:2024-01-25 22:36:29.0

一、第一种

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!!!