我们有一个使用部署在 tomcat 8.5 上的 servlet的旧客户端。此旧版客户端正在等待这种格式的内容类型标头响应(注意分号和“字符集”之间的空格):
Content-type: text/xml; charset=utf-8
然而,在服务器端,Tomcat 总是修剪这个空白,尽管我们在 servlet 中强制它:
response.setContentType("text/xml; charset=utf-8");
甚至在具有自定义扩展名的过滤器中,如this questionHttpServletResponseWrapper
中所建议的那样。
无论我尝试什么,总是返回内容类型标头而没有空格。
Content-type: text/xml;charset=utf-8
作为参考,我在 tomcat 官方文档中找到了这个:
Tomcat 删除 ';' 之间的空白字符 和“字符集”关键字
我知道http标准说分号后的空格是可选的,正如其他SO帖子中提到的那样,但是由于有问题的客户端运行的是旧版本,我想知道是否有任何方法可以强制tomcat保留这个空格.
我正在考虑其他选择,例如修改 apache 或 nginx(在 tomcat 之上)中的内容类型标头,但如果可能的话,我更喜欢 tomcat 级别的解决方案。
任何帮助,将不胜感激。