7
回答
java filter不过滤.html文件
注册华为云得mate10,2.9折抢先购!>>>   

我使用了url伪静态,使用UrlRewriteFilter做的,现在在web.xml中配置对.html过滤,但是一直不过滤,配置如下:

<filter>
  <filter-name>checkLogin</filter-name>
  <filter-class>com.filter.LoginFilter</filter-class>
</filter>

<filter-mapping>
  <filter-name>checkLogin</filter-name>
  <url-pattern>*.htm</url-pattern>
</filter-mapping>
在过滤器中我输出请求的文件,过滤jsp、.do都可以,就是html不行,*.html,和*.htm两个都配置也不行,大家遇到过这种问题吗?
举报
allen_limi
发帖于6年前 7回/4K+阅
共有7个答案 最后回答: 5年前

引用来自“JavaGG”的答案

不是应写*.html吗????

写了哦,先写的是*.html,filter不过滤,网友说两个(*.html,*.htm)都配置,结果还是不过滤

<filter>
        <filter-name>struts</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>

<filter-mapping>

        <filter-name>struts</filter-name>
        <url-pattern>*.html</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>

    </filter-mapping>

 

不知道这个是神马意思。。~~

我没有用UrlRewriteFilter 也遇到这样的问题 就 html过滤不了 其他可以

/admin/* 这样不行

/test/* 这样行 就admin不行

 

靠.. 奇怪了

--- 共有 1 条评论 ---
allen_limi问题我最后找到了,我先把loginFilter配置在最前面,是加载顺序的问题,以前把urlrewriter配置在前面,所以他拦截了html 5年前 回复
你J2EE容器前面是不是还有apache或者nginx?通常为了提高效率静态页面都在J2EE容器前处理了,所以也就造成了你的过滤器那不到相应的请求。
--- 共有 1 条评论 ---
allen_limi没有用其他web容器,问题我最后找到了,我先把loginFilter配置在最前面,是加载顺序的问题,以前把urlrewriter配置在前面,所以他拦截了html 5年前 回复
顶部