在以下情况下将不会调用该过滤器:
过滤器类在类路径中丢失和/或不可加载或不可实例化。但是,您应该已经在服务器的启动日志中注意到它。将根据对服务器日志中发现的异常/错误的解释来找到解决方案。
有一个在未调用链之前运行的另一个过滤器
FilterChain#doFilter()
,而是RequestDispatcher#forward()
或include()
造成后续的过滤器链被完全跳过(当他们不听上FORWARD
或INCLUDE
调度员,他们在默认情况下只侦听REQUEST
调度员)。解决方案是修复错误的过滤器,或相应地添加<dispatcher>FORWARD</dispatcher>
等,或重新排列过滤器声明,web.xml
以使新过滤器位于另一个过滤器 之前 (而您仅需确保新过滤器使用FilterChain#doFilter()
正确即可:) )。请求网址是完全错误的。您使用了http:// localhost:8080 / hello / world。监听过滤器后
/*
,这意味着webapp上下文应为ROOT或至少是ROOT/hello
。验证您的webapp上下文。我只想尝试使用URL,该URL指向同一webapp内的有效JSP / Servlet,该URL会生成非404响应。过滤器是否也会被调用?



