2010-12-01 15 views
2

同じサーブレットリクエストでgetOutputStream()とgetWriter()を使用するにはどうすればよいですか?同じサーブレットリクエストでgetOutputStream()とgetWriter()を使用するにはどうすればよいですか?

+1

詳細を記入してください。特に、getWriterを使用して処理されているリクエストとgetOutputStreamで処理されているリクエストの両方について話しているのですか、または両方を同じリクエストで使用しようとしていますか? –

答えて

2

両方を同時に使用することも、同じ応答で使用することもできません。既にOutputStreamの使用を開始した後でWriterを使用する必要がある場合は、OutputStreamWriterを出力ストリームにラップするだけです。しかし、すでにライターを使用した後に出力ストリームを使用する必要がある場合はできません。あなたはいつも出力ストリームを最初に取得し、上記のようにライターをラップし、書き込みを行い、フラッシュしてから出力ストリーミングを行います。

11

これらを同時に使用することはできません。最初にgetOutputStream()を行った場合は、結果として同じ要求でgetWriter()を実行することはできません。その逆もあります。しかしServletOuptputStreamPrintWriterにラップして、getWriter()と同じ種類の作家を得ることができます。

ServletOutputStream out = response.getOutputStream(); 
// Notice encoding here, very important that it matches that of 
// response.setCharacterEncoding(); 
PrintWriter writer = new PrintWriter(new OutputStreamWriter(out, "utf-8")); 

別の解決策は、getWriter()を使用していないためには、ある程度類似しているPrintStreamを使用することですが、その後、あなたはWriterまたはPrintWriterと型の互換性を持っていません。

// Encoding again very important to match that of your output. 
PrintStream print = new PrintStream(os, true, "utf-8"); 
+1

グラフをjfreechartで印刷するにはどのようにgetwriterを使用できますか? – faree

+0

@Parith、代わりに新しい質問として投稿してください。 –

関連する問題