日期:2014-05-19  浏览次数:20810 次

关于一个Filter无效的问题

我的Filter很简单 
就是打印 req.getRequestURI()
然后放行 chain.doFilter(request, response);

public class SessionFilter implements Filter {

public void init(FilterConfig config) throws ServletException {

}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
System.out.println("进入了filter: " + req.getRequestURI());
                chain.doFilter(request, response);
}

public void destroy() {
}
}



我的web.xml也很简单

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<!-- session过滤器  -->
<filter>
<filter-name>SessionFilter</filter-name>
<filter-class>com.maphao.web.listener.SessionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SessionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>


在本地和一台机器上面 访问页面都能正常的打印请求的资源 如js,css,image,html,.do

然后放到另外一台上面的时候 就只能打印.do的请求 js,css,image,html都没打印了...

用的struts1.2 

出现问题后
本来web.xml配置了struts的过滤器等一些内容的 
我把所有无关的东西都删除了
这台机器上面的jdk已经到官方下载了最新的jdk6安装,tomcat也下载了最新的tomcat7
问题依旧
困扰两天了都找不到问题所在,哪位大神帮我分析分析到底是哪里有问题?
------解决方案--------------------
呵呵,这是典型的缓存问题,因为你访问js,css,image,html时,它根本就没有去请求服务器,所以也就进不到你的filter,它直接读取本地缓存了。
你把缓存清掉,再访问就会请求服务器了。
------解决方案--------------------
先检查下自己IE浏览器关于“Internet临时文件和历史记录设置” 是怎么设置的,是否为:自动。

如果要更保险就是:每次访问网页时。