Java 为什么Servlet过滤器在工作应用程序中导致错误
在正常工作的应用程序中,放置了一个Servlet过滤器。但是,此筛选器正在现有应用程序中导致错误 目前,出于概念验证的目的,过滤器只记录日志,没有实现任何代码 没有发现例外情况。 在Tomcat访问日志上,唯一的线索是资源正在返回一个值Java 为什么Servlet过滤器在工作应用程序中导致错误,java,servlets,servlet-filters,Java,Servlets,Servlet Filters,在正常工作的应用程序中,放置了一个Servlet过滤器。但是,此筛选器正在现有应用程序中导致错误 目前,出于概念验证的目的,过滤器只记录日志,没有实现任何代码 没有发现例外情况。 在Tomcat访问日志上,唯一的线索是资源正在返回一个值 [18/Nov/2014:17:18:34 -0500] 10.93.161.0 (0ms) 52D40EF309A3EB46F1C5DE3FB1D063BD.application.1 GET /secure/application/application/s
[18/Nov/2014:17:18:34 -0500] 10.93.161.0 (0ms) 52D40EF309A3EB46F1C5DE3FB1D063BD.application.1 GET /secure/application/application/sc/skins/Enterprise/images/Window/window_TL.png HTTP/1.1 : 304
如前所述,在没有过滤器的情况下,应用程序运行良好
当过滤器就位时,日志显示过滤器正在记录日志,但应用程序将无法正常工作,似乎过滤器正在以某种方式进行干扰,我们不希望有任何干扰,除了doFilter方法中实现的代码
...
// request filtered
arg2.doFilter(req, res);
// response filtered
...
下面是web.xml中的过滤器声明
<filter>
<filter-name>SessionFilter</filter-name>
<filter-class>com.company.filter.SessionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SessionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
请让我知道任何想法
谢谢您需要继续筛选链。将其添加到“doFilter”方法的末尾 在的
doFilter()
方法中,您必须在链上链接或转发请求,否则将不会调用其他筛选器,请求也不会转发到Servlet
从javadoc中获取以下信息:
此方法的典型实现将遵循以下模式:-
chain.doFilter(request, response);
过滤器
系统以这种方式实现的原因是过滤器
可能决定断开链,例如,因为发回错误;或者,过滤器
可以包装请求和/或响应,并且该包装器必须向前借给其他过滤器和servlet
如果您不调用
chail.doFilter()
,则向Servlet容器表明您不想让其他筛选器和Servlet参与服务请求。发布您的筛选器代码。同意@icza。另外,请尝试清除浏览器缓存,然后重试。告诉我们在这种情况下会发生什么。好的,谢谢。过滤代码已发布感谢您的帮助!
chain.doFilter(request, response);