@WebFilter(urlPatterns = {"/test/*"}) //过滤地址一个* ,两个会不生效
package cjf.com.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
/**
* springboot 整合filter方式之一
*
* 以前web.xml配置:
* <filter>
* <filter-name>FirstFilter</filter-name>
* <filter-class>com.zhong.spring_boot_filter_03.filter.FirstFilter</filter-class>
* </filter>
*
* <filter-mapping>
* <filter-name>FirstFilter</filter-name>
* <url-pattern>/first</url-pattern>
* </filter-mapping>
*
* FirstFilter
*/
@WebFilter(filterName="TestFilter",urlPatterns = {"/*"})
public class TestFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("----TestFilter过滤器初始化----");
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
// 对request和response进行一些预处理
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
System.out.println("FilterDemo01执行前!!!");
chain.doFilter(request, response); // 让目标资源执行,放行
System.out.println("FilterDemo01执行后!!!");
}
@Override
public void destroy() {
System.out.println("----TestFilter过滤器销毁----");
}
}
启动类:
@ServletComponentScan(basePackages = {"cjf.com.filter.**"}) 正确,两个*
@ServletComponentScan(basePackages = {"cjf.com.filter.*"}) 错误,不生效
@ServletComponentScan 或者这样也可以,全扫了
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
@SpringBootApplication
@ServletComponentScan(basePackages = {"cjf.com.filter.**"})
public class SpringBootFiltertApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootFiltertApplication.class, args);
}
}