如何在同一個servlet請求中使用getOutputStream()和getWriter()?如何在同一個servlet請求中使用getOutputStream()和getWriter()?
2
A
回答
2
您可以同時使用它們,而不是同時使用它們,或者不使用相同的響應。如果您在開始使用OutputStream後需要使用Writer,則只需在輸出流中包裝一個OutputStreamWriter。但是,如果您在使用作者之後需要使用輸出流,則不能。你可以總是先獲得輸出流,然後像上面那樣包裝作者,做你的寫作,刷新,然後做輸出流。
11
你不能同時使用它們。如果你第一次做getOutputStream()
你不能因此在同一個請求做getWriter()
,反之亦然。但是,您可以將ServletOuptputStream
換成PrintWriter
以獲得與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
如何使用getwriter在jfreechart中打印圖表? – faree 2010-12-01 08:34:26
相關問題
- 1. Java中的Servlets - getWriter()和getOutputStream()
- 2. 如何在servlet文件中調用getwriter或getoutputstream時檢查是否已使用
- 3. 在同一個servlet請求中區分URI和請求主體參數
- 4. Do getRequestDispatcher(),getOutputStream()和getWriter()有一些關係嗎?
- 5. 請求和servlet
- 6. jquery的AJAX請求:的getOutputStream()
- 7. 的getOutputStream()已經呼籲對第二servlet請求此響應
- 8. 顯示下面有三個圖中一個JSP使用同一個servlet和不同的請求參數
- 9. 如何使一個同步GET請求
- 10. 如何在HttpServletResponse中使用getWriter()函數?
- 11. Servlet請求和window.location.href
- 12. UT010006:無法調用的getWriter()的getOutputStream()已經調用
- 13. HTTP請求如何在servlet中提供?
- 14. 在同一個URL中使用請求QueryString和Path Info?
- 15. 如何在使用servlet時在HTTP請求中隱藏密碼
- 16. 寫消息,並在同一時間發送一個下載文件(的getWriter,的getOutputStream衝突)
- 17. 如何在同一個請求中上傳圖片和數據?
- 18. 使用servlet處理多部分請求和正常請求
- 19. 如何在servlet動作中同步請求
- 20. 請求servlet的不同響應並使用AJAX和JSP
- 21. 如何在Jmeter中同時請求AJAX和HTTP請求
- 22. 如何在同一個委託中使用connectionDidFinishLoading處理不同的請求?
- 23. 如何使用同一個會話創建多個HTTP請求
- 24. 如何從同一個JSP文件向多個Servlet發送請求?
- 25. servlet請求和驗證
- 26. 請求和會議的Servlet
- 27. 如何使用一個ajax請求從java servlet返回多個json對象
- 28. 我們可以做getwriter並在單個servlet中轉發
- 29. 如何在一個請求
- 30. 在一個請求中使用同一模型兩次
請提供更多詳情。特別是,你是在談論一些使用getWriter處理的請求,有些使用getOutputStream處理請求,還是你正在嘗試將它們用於同一請求? – 2010-12-01 07:10:36