小编Nes*_*aau的帖子

为什么spring boot过滤器调用两次?

我的 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 …

java spring-boot

4
推荐指数
3
解决办法
5988
查看次数

标签 统计

java ×1

spring-boot ×1