进入碰见一个奇怪的Filter问题。 
设置<url-pattern>/* </url-pattern>虚拟主机上只有 存在的 jsp, servlet才走 Filter。  所有html, jpg, css的都不走filter. 在web.xml 上配置
        <filter>
<filter-name>UrlFilter </filter-name>
<filter-class>Bean.MyUrlFilter </filter-class>
</filter>
<filter-mapping>
<filter-name>UrlFilter </filter-name>
<url-pattern>/* </url-pattern>
</filter-mapping>MyUrlFilter.java代码 DoFilter方法:
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpReq=(HttpServletRequest)request;
String strUri = (httpReq.getRequestURL()).toString();
String rootpath = httpReq.getRealPath("/");
writeLog("127.1.1.1", rootpath, "Filter", "URI="+strUri);  //记下URI, writeLog定义在下面
chain.doFilter(request, response);
}这样预期的结果应该是:
所有request都会走这个Filter, URI还会被记录下来。 在本地测试,确实是没错。 所有html, jsp, servlet, jpg, css等都会走filter但是上传到虚拟主机后, 发现 只有 存在的 jsp, servlet才走 Filter。  所有html, jpg, css的都不走filter.  ---------------------------------------------------
虚拟主机系统配置:
Web 服务器 Resin/3.0.23
操作系统 Windows 2003 Service Pack 2 Ver:5.2
JDK 版本 1.6.0_07
Servlet 版本 2.4
JDK 安装路径 C:\Java\jdk1.6\jre
编码 GBK

解决方案 »

  1.   

    如果是租用的虚拟主机,一般都有apache,这些静态文件有apache处理,没有将请求转发到Resin
      

  2.   

    那应该怎么解决呢? 我要实现 rewritefilter  比如 http://domainname/1/2  转到 /1_2.jsp
      

  3.   

    不知道租给你空间的供应商能否给你权限做apache的urlrewrite,如果有那就好办,直接使用apache的urlrewrite。如果没有,问问他能不能让apache把所有的请求都转发给resin,这样的好处是rewritefilter还能直接用。
      

  4.   

    非常感谢您的答复,刚刚询问了虚拟主机提供商, 虚拟主机环境是 IIS5.0+Resin3.0, 所以我只能让他们设置成把所有的请求都转发给Resin.但是如何配置成所有请求都转发给Resin呢?  万分谢谢