Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Servlets 嗅探过滤器与编码过滤器一起设置?_Servlets_Web.xml_Servlet Filters_Sniffy - Fatal编程技术网

Servlets 嗅探过滤器与编码过滤器一起设置?

Servlets 嗅探过滤器与编码过滤器一起设置?,servlets,web.xml,servlet-filters,sniffy,Servlets,Web.xml,Servlet Filters,Sniffy,我正在尝试将Sniffy profiler添加到JSF项目中 根据web.xml需要使用以下过滤器进行更新: 嗅探 io.sniffy.servlet.SnifferFilter 注入html 真的 启用 真的 嗅探 /* 但是web.xml已经包含一个过滤器: 字符编码滤波器 org.primefaces.titan.filter.CharacterEncodingFilter 字符编码滤波器 Facesservlet Facesservlet javax.faces.webapp.Fa

我正在尝试将Sniffy profiler添加到JSF项目中

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


嗅探
io.sniffy.servlet.SnifferFilter
注入html
真的
启用
真的
嗅探
/*
但是web.xml已经包含一个过滤器:


字符编码滤波器
org.primefaces.titan.filter.CharacterEncodingFilter
字符编码滤波器
Facesservlet
Facesservlet
javax.faces.webapp.FacesServlet
Facesservlet
*.jsf
Facesservlet
*.xhtml
添加嗅探器过滤器(并正常工作)后,字符编码过滤器停止工作(字符被乱码)


web.xml应该如何让这两个过滤器都工作?

这里是Sniffy developer。我计划在即将发布的3.1版本中修复它

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


-Dfile.encoding=UTF-8

过滤器按照在web.xml中声明的顺序调用。问题表明,Sniffy筛选器在字符编码筛选器有机会设置请求编码之前访问请求有效负载。合乎逻辑的解决方案是将字符编码筛选器的映射放在嗅探筛选器之前。@BalusC在嗅探之前声明字符编码筛选器会产生相同的结果(字符是乱码的)。在这种情况下,过滤器的顺序似乎没有什么区别。能否显示从服务器返回的Content Type header的值?您可以在您的“开发人员工具”中检查它browser@bedrin内容类型的值如下:
内容类型:“text/html;charset=UTF-8”
在Payara服务器上运行Sniffy时,我收到以下警告。这在跟踪问题时可能很有用<代码>警告:无法从上下文中将请求字符编码设置为UTF-8,因为已读取请求参数,或者已调用ServletRequest.getReader()