HttpServletResponse.getOutputStream()
- 用于将二进制数据写入客户端。
- 写入客户端的数据未编码。
- 调用flush()后,数据将刷新到客户端。
IllegalStateException
如果已在此响应对象上调用getWriter()方法,则将抛出该异常。HttpServletResponse.getWriter()
返回一个PrintWriter对象,该对象可用于将字符文本(非二进制)数据写入客户端。
- 发送到客户端的数据使用默认编码方案或用户提供的编码。
- 调用flush()后,数据将刷新到客户端。
IllegalStateException
如果已经为此响应对象调用了getOutputStream()方法,则将抛出该异常
2之间的一个关键用法差异是getOutputStream()用于将二进制数据发送到客户端,而getWriter()用于发送编码的文本数据。
底线:
应该使用以上两种方法中的任何一种来将数据刷新到客户端,而不是同时使用两种方法,并且开发人员必须确保正确处理了数据,尤其是在非servlet类中执行操作时。



