一尘不染

使用tomcat在Content-type标头响应中保留分号后的空格

tomcat

我们有一个 客户端,它使用了部署在tomcat
8.5上的servlet。该旧客户端正在等待这种格式的内容类型标头响应(注意分号和“字符集”之间的空格):

Content-type: text/xml; charset=utf-8

但是,在服务器端,Tomcat总是在修剪此空白,尽管我们在servlet中强制使用了它:

response.setContentType("text/xml; charset=utf-8");

甚至在自定义扩展名为的过滤器中HttpServletResponseWrapper

无论我尝试什么,都总是返回内容类型标头而不带空格。

Content-type: text/xml;charset=utf-8

作为参考,我在tomcat官方文档中找到了这一点:

Tomcat删除’;’之间的空白字符 和’charset’关键字

我正在考虑其他选择,例如修改apache或nginx(在tomcat之上)的content-
type标头,但是如果可能的话,我更喜欢在tomcat级别的解决方案。

任何帮助,将不胜感激。


阅读 510

收藏
2020-06-16

共1个答案

一尘不染

正如评论中所述,这是我们无法避免的事情,因为它已在tomcat
源代码中进行了硬编码

在我们的特定用例中,我们终于能够更改一点传统客户端,因此现在它可以处理标准格式的内容类型标头(没有空间)。

感谢@ zack6849 por指出这一点。

2020-06-16