Servlets filterChain.doFilter未移动到下一个筛选器

Servlets filterChain.doFilter未移动到下一个筛选器,servlets,jax-rs,servlet-filters,Servlets,Jax Rs,Servlet Filters,这是我的一段过滤器代码 public void doFilter(ServletRequest请求、ServletResponse响应、FilterChain链) 抛出IOException、ServletException{ 字符串路径=((HttpServletRequest)请求).getRequestURI(); log(Level.INFO,“当前请求路径:{0}”,路径); 如果(忽略路径(路径)){ LOGGER.log(Level.INFO,“继续下一个过滤器”); 链式过滤器(

这是我的一段过滤器代码

public void doFilter(ServletRequest请求、ServletResponse响应、FilterChain链)
抛出IOException、ServletException{
字符串路径=((HttpServletRequest)请求).getRequestURI();
log(Level.INFO,“当前请求路径:{0}”,路径);
如果(忽略路径(路径)){
LOGGER.log(Level.INFO,“继续下一个过滤器”);
链式过滤器(请求、响应);
}
LOGGER.log(Level.INFO,“不应该到这里来”);
}
日志记录仅用于调试目的。 我得到下面的日志执行

2020-07-18T12:02:30.805301+00:00应用程序[网站1]:2020年7月18日下午12:02:30 security.filter.SecurityFilter-doFilter

2020-07-18T12:02:30.805302+00:00应用程序[web.1]:信息:继续下一个过滤器

2020-07-18T12:02:30.889518+00:00应用程序[网站1]:2020年7月18日下午12:02:30 security.filter.SecurityFilter-doFilter

2020-07-18T12:02:30.889520+00:00应用程序[web.1]:信息:不应该到这里来

这里到底出了什么问题?日志不应该出现在这里,不应该打印(这是我所期望的)。

每次请求/响应通过链时都会调用
doFilter()
FilterChain.doFilter()
方法调用链中的下一个过滤器,如果过滤器是链中的最后一个过滤器,则调用链末尾的资源

这只是一个普通的方法,执行后控件将进入下一行。这就是为什么在出现
if
条件后会得到日志

如果要忽略对某些URI执行下一个过滤器,建议使用
else

if(忽略路径(路径)){
链式过滤器(请求、响应);
log(Level.INFO,“为此URI调用doFilter”);
}否则{
log(Level.INFO,“此URI不调用doFilter”);
}