Sniffy过滤器设置与编码过滤器一起?

时间:2016-06-03 21:01:47

标签: servlets web.xml servlet-filters sniffy

我正在尝试将Sniffy探查器添加到JSF项目中。

根据documentation web.xml需要使用以下过滤器进行更新:

<filter>
    <filter-name>sniffer</filter-name>
    <filter-class>io.sniffy.servlet.SnifferFilter</filter-class>
    <init-param>
        <param-name>inject-html</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>enabled</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>sniffer</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

但是web.xml已经包含一个过滤器:

<filter>
    <filter-name>Character Encoding Filter</filter-name>
    <filter-class>org.primefaces.titan.filter.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>Character Encoding Filter</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
</filter-mapping>    
<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

添加嗅探器过滤器(并且工作正常)字符编码过滤器停止工作(字符乱码)。

web.xml应该如何使这两个过滤器都有效?

1 个答案:

答案 0 :(得分:2)

Sniffy开发者在这里。它是bug中的Sniffy - 我打算在即将发布的3.1版本中修复它。

作为一种解决方法,您可以在JVM参数中添加以下内容:

-Dfile.encoding=UTF-8