可以“为此响应调用”getOutputStream()“导致服务器崩溃吗?

时间:2014-05-27 21:38:28

标签: java spring jsp java-ee

我一直在研究有关异常的SO

getOutputStream() has already been called for this response

我知道基本上可能是因为getWriter()getOutputStream()调用一个HttpServletResponse,因为混合文本和其他MIME类型一起返回客户端。

但是,我不确定是否发生此异常,如果重复发生,可能导致服务器崩溃? (因为getWriter()getOutputStream()缓冲区中的数据会变成鬼影?

2 个答案:

答案 0 :(得分:2)

这是一个IllegalStateExceptionRuntimeException

  

RuntimeException是一个unchecked异常,根本不会导致系统/服务器崩溃。


如何避免java servlet中的IllegalStateException?

IllegalStateException异常的根本原因是java servlet在提交响应后尝试写入输出流(响应)。

最好确保在转发或重定向完成后没有内容添加到响应中以避免IllegalStateException。可以通过在转发或重定向语句旁边包含return语句来完成。


有关更多解决方案,请查看JSP-Servlet Q&A » Development » IllegalStateException

答案 1 :(得分:1)

我说这取决于servlet容器,但通常servlet代码中的异常不会导致整个服务器崩溃。

如果您担心这里存在可能的内存泄漏,在这种情况下也不太可能发生。这个例外只是合同执行。 servlet容器告诉您应该使用getOutputStream()或getWriter(),但在单个请求期间不应同时使用。