第一种方法:注解
package com.example.demo.filter;
import org.springframework.core.annotation.Order;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
//顺序越小越先执行
@Order(1)
@WebFilter(filterName = "myfilter",urlPatterns = "/*")
/**
* filter
*/
public class Myfilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("filter初始化");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
System.out.println(request.getRequestURI()+"aaaaa");
filterChain.doFilter(servletRequest,servletResponse);
}
@Override
public void destroy() {
}
}
需要在启动类开启注解
@ServletComponentScan
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
第二种方法:
package com.example.demo.filter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.*;
@Configuration
public class TestFilter {
@Bean
public FilterRegistrationBean testFilterRegistrationBean(){
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
registrationBean.setFilter(new Myfilter());
List<String> a = new ArrayList<>();
a.add("/*");
registrationBean.setUrlPatterns(a);
Map<String,String> map = new HashMap<>();
map.put("111","222");
registrationBean.setInitParameters(map);
registrationBean.setName("filter");
return registrationBean;
}
}
package com.example.demo.filter;
import org.springframework.core.annotation.Order;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
public class Myfilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("filter初始化");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
System.out.println(request.getRequestURI()+"aaaaa");
filterChain.doFilter(servletRequest,servletResponse);
}
@Override
public void destroy() {
}
}
打印为 /hahaaaaaa