/ / Jetty Response без чипсет - java, пристанище, отговор, кодиране на символи

Отговор на Jetty без Charset - java, jetty, отговор, кодиране на знаци

Аз използвам Jetty за тестване на webservice, който имаме, и се опитвам да го накарам да отговори с никакъв набор от символи под заглавието на типа съдържание.

Някой знае ли как да направи това?

Опитах да прехванем отговора и да настроим CharacterEncoding на null или "" но това дава изключения.

Използвам Jetty 6.1.6.

Отговори:

1 за отговор № 1

Сега се опитах да го направя, но трябва да признаяпристанището е много стар (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
пристанище: текст / обикновен, charset = utf-8

Така че изглежда, че по-старият пристан прави точно това, което искате, докато котаракът прави това, което сте получили от по-новия кей.


3 за отговор № 2

Мисля, че това не е въпрос на кой сервлетконтейнер, който използвате, но това, което правите с отговора вътре в сървлета ви. Ако зададете кодиране на символи, като извикате setContentType (2.3) или setCharacterEncoding (2.4, 2.5) с параметър ServletResponse с параметър null или "" трябва да работи (не се опитвах сами), но уверете се, че наричате горепосочените методи преди извикване на getWriter, в противен случай задаване на кодиране няма да има ефект!


0 за отговор № 3

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