【发布时间】:2015-01-17 01:58:46
【问题描述】:
在一个工作的应用程序中,已经放置了一个 Servlet 过滤器。但是,此过滤器会导致现有应用程序出现错误。
目前,出于概念验证的目的,过滤器仅记录日志,尚未实现任何代码。
没有发现异常。 在 Tomcat 访问日志中,唯一的线索是资源正在返回 304
[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 方法中实现的代码。
下面是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>
下面是过滤器类
public class SessionFilter implements Filter{
private static final Log LOG = LogFactory.getLog(SessionFilter.class);
@Override
public void destroy() {
LOG.info("SessionFilter destroyed.");
}
@Override
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain arg2) throws IOException, ServletException {
LOG.info("SessionFilter is filtering.");
LOG.info("Test Session");
}
@Override
public void init(FilterConfig arg0) throws ServletException {
LOG.info("SessionFilter initialized.");
}
}
请告诉我任何想法。
谢谢
【问题讨论】:
-
发布您的过滤代码。
-
同意@icza。此外,请尝试清除浏览器缓存并重试。告诉我们在这种情况下会发生什么。
-
好的,谢谢。过滤代码已发布
标签: java servlets servlet-filters