我一直在做关于异常的SO研究

getOutputStream() has already been called for this response


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

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

最佳答案

这是IllegalStateException,是RuntimeException


  RuntimeExceptionunchecked异常,完全不会导致系统/服务器崩溃。




如何避免Java Servlet中的IllegalStateException?

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

始终最好确保在完成转发或重定向后没有任何内容添加到响应中,以避免IllegalStateException。可以通过在forward或redirect语句旁边紧接一个return语句来完成此操作。



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

关于java - 是否可以“getOutputStream()已被响应”导致服务器崩溃?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23899406/

10-13 03:50