ServletResponse
のインスタンスでgetWriter()
とgetOutputStream()
の両方を呼び出せないのはなぜですか?javaのサーブレット - getWriter()とgetOutputStream()の両方
答えて
デザインの決定。 WriterとOutputStreamはどちらも独自のバッファを保持します。それぞれを作成した場合、その出力は何とかマージする必要があります。可能ですが、もっと複雑です。そこで、文字ベースの出力とバイナリ出力のどちらを選択する必要があるかを決めました。
なぜgetWriter()はgetOutputStream()の結果にラッパーを返しませんか? –
両方に書き込もうとすると、調整されていないバッファリングのために結果が乱れることになります。あるいは、WriterがOutputStreamのバイナリ出力メソッドを公開しない理由を尋ねていますか? – Thilo
一般に、getOutputStream()
はバイナリコンテンツの書き込みに使用され、getWriter()
はテキストコンテンツの書き込みに使用されるためです。どちらのサーブレットリクエストでも両方を記述することは意味がありません。どちらか一方を使用する必要があります。
Writer
は、OutputStream
よりも高いレベルの抽象化であるためです。基本ストリームの文字エンコーディングを制御し、独自のバッファリングメカニズムを組み込みます。
Writerを以前に使用した後に直接OutputStreamに書き込むと、文字エンコーディングが混在しているか、バッファされていないデータが存在するため、下にあるストリームが破損する危険性が高くなります。
この混乱を避けるため、サーブレットAPIはいずれの応答に対しても両方を使用することを禁じます。
実際には、バイナリコンテンツを書き込むためにOutputStreamを使用し、テキストコンテンツを書き込むためにWriterを使用します。
- 1. サーブレット応答のエラーgetOutputStream()
- 2. getRequestDispatcher()、getOutputStream()およびgetWriter()には何らかの関係がありますか?
- 3. 同じサーブレットリクエストでgetOutputStream()とgetWriter()を使用するにはどうすればよいですか?
- 4. Javaサーブレット - javaサーブレット内のjarファイルをexcecuteする方法
- 5. Javaのクライアントとサーバーの両方のサーバー
- 6. Javaサーブレットのログインと登録
- 7. サーブレット - web.xmlとJavaの設定
- 8. Java - サーブレット3.0の非同期とサーブレット3.1のNIOとの比較
- 9. jssc getInputStream()getOutputstream()
- 10. JavascriptとJavaの両方でRSAコード
- 11. Sonar + JaCoCo - JavaとGroovy両方のコードカバレッジ
- 12. JavaサーブレットのURLマッピングは、次のURLでマッピングを行う方法を、Javaサーブレットで
- 13. サーブレットファイル内で呼び出されたときにgetwriterまたはgetoutputstreamがすでに使用されているかどうかをチェックする方法
- 14. SeleniumとjavaサーブレットとjavaScript
- 15. Javaサーブレットのtomcat 404
- 16. Javaは私のサーブレット
- 17. Javaサーブレットの問題
- 18. Javaサーブレット:ページの表示方法は?
- 19. reCAPTCHA V2 Java(サーブレット)の検証方法
- 20. 別のJavaサーブレットの機能を使用するJavaサーブレット?
- 21. Java:サーブレットからサーブレットに転送するときのフィルタ
- 22. Javaサーブレット - ロガーと設定ファイル
- 23. JavaサーブレットとJSON解析
- 24. HttpServletResponse.getOutputStream.print(文字列)vs getWriter(文字列)のパフォーマンスとサイズの制限
- 25. 埋め込みjettyサーバはサーブレットとwebappの両方を実行しません
- 26. トラブル私Javaサーブレット
- 27. ハンドシェイク後のSSLSocket getOutputStream()ブロック
- 28. Javaオープニングソケットストリーム両方の方法で
- 29. javaサーブレット情報
- 30. Javaサーブレット - セッションクリーンアップ(HttpServletRequest)
1つのサーブレットリクエストで両方を呼び出したい理由を説明すると役に立ちます。 –
おそらくAbkuttyはServlet、Servlet、エラー処理Servlet、およびFilterをすべて出力しようとしていて、どちらのメソッドを適切に調整していないのかを両方とも呼びたいとは思わないでしょう。 – Thilo
私はもうなぜあなたが両方を持っていたいと思うだろう。 –