Вопрос

Я использую Jetty для тестирования веб-сервиса, который у нас есть, и я пытаюсь заставить его отвечать без кодировки в заголовке content-type.

Кто-нибудь знает, как это сделать?

Я пытался перехватить Ответ и установить для characterEncoding значение null или "", но это приводит к исключениям.

Я использую Jetty 6.1.6.

Это было полезно?

Решение

Сейчас я попробовал это сам, но должен признать, что мой jetty очень старый (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());

И результат был следующим:

Код сервлета:

    response.setContentType("");
    response.getWriter().write("Return");

=>
кот:;кодировка=ISO-8859-1
причал:

Код сервлета:

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

=>
кот:текст /обычный; кодировка=ISO-8859-1
причал:текстовый / обычный

Код сервлета:

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

=>
кот:текст / обычный; кодировка=UTF-8
причал:текст / обычный; кодировка=UTF-8

Таким образом, похоже, что более старый jetty делает именно то, что вы хотите, в то время как tomcat делает то, что вы получили от более нового jetty.

Другие советы

Я думаю, что дело не в том, какой контейнер сервлета вы используете, а в том, что вы делаете с ответом внутри вашего сервлета.Если вы задаете свою кодировку символов, вызывая setContentType ServletResponse (2.3) или setCharacterEncoding (2.4, 2.5) с параметром null или "" это должно сработать (сам не пробовал).Но обязательно вызовите методы, названные выше до того , как вызов getWriter, в противном случае установка кодировки не будет иметь никакого эффекта!

Кодировка - это очень полезная информация.Вместо того чтобы пытаться заставить хороший продукт (Jetty) поступать неправильно, я бы предпочел попытаться научить потребителя услуги поступать правильно (распознавать и соблюдать кодировку).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top