/ / Jetty Response senza Charset: java, jetty, response, codifica dei caratteri

Jetty Response senza Charset - java, jetty, response, codifica dei caratteri

Sto usando Jetty per testare un servizio web che abbiamo e sto cercando di farlo rispondere senza set di caratteri sotto l'intestazione del tipo di contenuto.

Qualcuno sa come fare questo?

"Ho provato a intercettare la risposta e impostare CharacterEncoding su null o" "ma questo dà eccezioni.

Sto usando il molo 6.1.6.

risposte:

1 per risposta № 1

L'ho provato da solo ora, ma devo ammettere, il miojetty è molto vecchio (4.2., ma fa tutto nel modo in cui ne ho bisogno). L'ho confrontato con Tomcat (4.1.29, anche vecchio). Ho controllato il tipo di contenuto con il seguente codice:

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());

E il risultato è stato il seguente:

Codice servlet:

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

=>
tomcat:; set di caratteri = ISO-8859-1
molo:

Codice servlet:

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

=>
tomcat: text / plain; charset = ISO-8859-1
pontile: testo / pianura

Codice servlet:

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

=>
tomcat: text / plain; charset = utf-8
jetty: text / plain; charset = utf-8

Quindi sembra che il molo più vecchio faccia esattamente quello che vuoi, mentre Tomcat fa quello che hai ottenuto dal molo più recente.


3 per risposta № 2

Penso che non si tratti di quale servletcontenitore che usi, ma cosa fai con la risposta all'interno del tuo servlet. Se imposti la codifica dei caratteri chiamando setContentType (2.3) di ServletResponse o setCharacterEncoding (2.4, 2.5) con il parametro null o "" dovrebbe funzionare (non ci ho provato). Ma assicurati di chiamare i metodi sopra citati prima chiamando getWriter, altrimenti impostando la codifica non avrà alcun effetto!


0 per risposta № 3

Il set di caratteri è informazioni molto utili. Invece di cercare di forzare un buon prodotto (Jetty) a fare la cosa sbagliata, preferirei piuttosto insegnare al consumatore del servizio a fare la cosa giusta (riconoscere e onorare il set di caratteri).