【问题标题】:Jetty Response with no Charset没有字符集的码头响应
【发布时间】:2009-02-09 12:48:03
【问题描述】:

我正在使用 Jetty 测试我们拥有的 Web 服务,我试图让它在内容类型标题下没有字符集的情况下响应。

有人知道怎么做吗?

我已经尝试拦截响应并将 CharacterEncoding 设置为 null 或 "" 但这会产生异常。

我正在使用 Jetty 6.1.6。

【问题讨论】:

    标签: java jetty response character-encoding


    【解决方案1】:

    我认为这与您使用哪个 servlet 容器无关,而是您如何处理 servlet 中的响应。如果您通过使用参数null"" 调用ServletResponse 的setContentType (2.3) 或setCharacterEncoding (2.4, 2.5) 来设置字符编码,它应该可以工作(我自己没试过)。但一定要在调用getWriter之前调用上面提到的方法,否则设置编码will have no effect!

    【讨论】:

    • 不幸的是,设置 CharacterEncoding 不能这样工作,如果它为 null,则默认使用 iso-8859-1。如果 contentType 设置为plain old text/xml iso-8859-1 也被用作默认值。 :(
    • 对不起,正如我所说:我自己没试过。 setCharacterEncoding("") 呢?
    【解决方案2】:

    我现在亲自尝试过,但我必须承认,我的码头是一个非常古老的码头(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: ;charset=ISO-8859-1
    码头:

    Servlet 代码:

         response.setContentType("text/plain");
         response.getWriter().write("Return");
    

    =>
    tomcat: text/plain;charset=ISO-8859-1
    码头:文本/普通

    Servlet 代码:

    response.setContentType("text/plain;charset=UTF-8");
    response.getWriter().write("Return");
    

    =>
    tomcat: text/plain;charset=UTF-8
    码头:text/plain;charset=UTF-8

    所以看起来旧码头完全按照您的意愿行事,而 tomcat 则按照您从新码头得到的。

    【讨论】:

    • 我实际上必须尝试一些你给我的想法。谢谢+1
    【解决方案3】:

    字符集是非常有用的信息。 与其试图强迫一个好的产品(Jetty)做错事,我更愿意教服务的消费者做正确的事(识别和尊重字符集)。

    【讨论】:

    • 不幸的是消费者是微软:(
    猜你喜欢
    • 2020-02-23
    • 2015-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    相关资源
    最近更新 更多