码头响应没有Charset
-
22-08-2019 - |
题
我使用的码头测试服务,我们已经和我试图让它回应没有charset下content-type header.
没有人知道如何做到这一点?
我试图拦截的响应和设置CharacterEncoding到空或""但是,让的例外情况。
我使用的码头6.1.6.
解决方案
我试了一下我自己了,但我必须承认,我的码头是一个非常古老的一个(4.2,但做的一切,我需要它的方式)。我比较它把Tomcat(4.1.29,老了)。我用下面的代码检查内容类型:
URL tomcatUrl = new URL("http://localhost:18080/ppi/jobperform/headertest")//tomcat;
URLConnection tconnect = tomcatUrl.openConnection();
System.out.println("tomcat: " + tconnect.getContentType());
URL jettyUrl = new URL("http://localhost:13818/ppi/jobperform/headertest")//jetty;
URLConnection jconnect = jettyUrl.openConnection();
System.out.println("jetty: " + jconnect.getContentType());
和的结果如下:
的Servlet代码:
response.setContentType("");
response.getWriter().write("Return");
=>结果 Tomcat的:;字符集= ISO-8859-1,点击 码头:
的Servlet代码:
response.setContentType("text/plain");
response.getWriter().write("Return");
=>结果 Tomcat的:文本/无格式;字符集= ISO-8859-1,点击 码头:文本/无格式
的Servlet代码:
response.setContentType("text/plain;charset=UTF-8");
response.getWriter().write("Return");
=>结果 Tomcat的:文本/无格式;字符集= UTF-8,点击 码头:text / plain的;字符集= UTF-8
所以看起来好像老码头不正是你想要的东西,而Tomcat的做了你从较新的码头得到了什么。
其他提示
我认为,这不是一个问题,其servlet容器使用时,但你做什么用的响应内部servlet。如果你的字符编码,通过调用ServletResponse的setContentType(2.3)或setCharacterEncoding(2.4,2.5)与参数 null
或 ""
它应工作(没有尝试自己).但可以肯定对话的方法上面 之前 叫getWriter,否则设置的编码 将没有任何效果!
的字符集是非常有用的信息。 而不是试图迫使好的产品(码头)做错误的事情,我宁愿尝试教服务做正确的事的消费者(可以识别和字符集)。
不隶属于 StackOverflow