【问题标题】:Servlet response write vs print? Which is better?Servlet响应写入与打印?哪个更好?
【发布时间】:2014-09-24 07:09:14
【问题描述】:

我有一个字符串需要作为 servlet 的响应发送,我有两种方法可以从它发送回响应。

首先是使用 PrintWriter。

response.getWriter().print(responseString);

其次是使用OutputStream。

 byte[] byteResponse = responseString.getBytes(Charset.forName("UTF-8"));
 response.getOutputStream().write(byteResponse);

我想知道哪种发送响应更好更有效?

请提出建议。

【问题讨论】:

  • Class.forName("UTF-8") 用于在发送响应时进行编码。
  • 抱歉,这里有错字。它的 Charset.forName("UTF-8") 不是 Class.forName("UTF-8")。

标签: java servlets


【解决方案1】:

对二进制数据使用 OutputStream,对文本使用 Writer。

【讨论】:

  • 谢谢。从 servlet 我将响应传递给一个类,该类进一步将此响应传递给 UI。在这种情况下,我应该在 servlet 中使用哪种方式将响应传递给中间类,因为从向 UI 发送响应的中间类,我必须将响应作为字符串传递。
【解决方案2】:

我有一个字符串指定您希望编写一个字符串,所以我建议使用 PrintWriter 对象

 //prints text data to screen (browser)
 PrintWriter printer = response.getWriter();
 printer.print(string);
 //print again if you wish
 printer.print("Welcome blahblah");
 //close afterwards if you don't mind.
 printer.close();

因此,如果您想将文本写入浏览器,PrintWriter 工作得很好、快速且简单。

【讨论】:

  • 它的三向过程。我需要首先将响应传递给一个中间类,然后从这个中间类中,我需要在 UI 上呈现它。所以从 servlet 到中间类,在 UI 上渲染时我应该采用哪种方式,我只需要传递字符串。
猜你喜欢
  • 2010-10-04
  • 2013-04-10
  • 2013-05-03
  • 2020-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多