/ /文字セットなしのJetty応答-java、jetty、response、character-encoding

文字セットなしの突堤応答 - Java、桟橋、応答、文字エンコーディング

Jettyを使用してWebサービスをテストしていますが、コンテンツタイプヘッダーの下に文字セットなしで応答するようにしようとしています。

誰もこれを行う方法を知っていますか?

応答をインターセプトしてCharacterEncodingをnullまたは ""に設定しようとしましたが、例外が発生します。

Jetty 6.1.6を使用しています。

回答:

回答№1は1

今は自分で試しましたが、認めなければなりません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");

=>
tomcat:; charset = ISO-8859-1
桟橋:

サーブレットコード:

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

=>
tomcat:text / plain; charset = ISO-8859-1
桟橋:テキスト/プレーン

サーブレットコード:

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

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

そのため、Tomcatは新しい桟橋から得た機能を実行し、古い桟橋は必要な機能を実行しているように見えます。


回答№2の場合は3

これはどのサーブレットの問題ではないと思います使用するコンテナですが、サーブレット内の応答で何をするか。パラメーターを指定してServletResponseのsetContentType(2.3)またはsetCharacterEncoding(2.4、2.5)を呼び出して文字エンコードを設定した場合 null または "" うまくいくはずです(自分で試してはいませんでした)。しかし、上記のメソッドを必ず呼び出してください。 getWriterを呼び出します。それ以外の場合はエンコードを設定します 効果がありません!


回答№3の場合は0

文字セットは非常に有用な情報です。 良い製品(Jetty)に間違ったことをさせるのではなく、サービスの消費者に正しいこと(文字セットを認識して尊重する)を教えるようにしたいと思います。