我的 Spring Boot 版本是 1.5.4,这是我的配置代码
@SpringBootApplication
@Configuration
@RestController
@ServletComponentScan
public class Application {
public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}
@RequestMapping("/")
public String home() {
System.out.println("test");
return "Hello World!";
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的 servlet 过滤器代码
@WebFilter(urlPatterns = "/*")
public class LogFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
System.out.println("LogFilter");
chain.doFilter(request, response);
}
//init and destroy
Run Code Online (Sandbox Code Playgroud)
当我访问http://localhost:8080/ 时,控制台打印出来了
LogFilter
test
LogFilter <----the second time
Run Code Online (Sandbox Code Playgroud)
为什么要调用 filter 两次?Spring …