我一直在做关于异常的SO研究
getOutputStream() has already been called for this response
我基本上知道,这可能是由于将
getWriter()
和getOutputStream()
调用一个HttpServletResponse
引起的,因为混合文本和其他MIME类型一起返回到客户端。但是,我不确定是否会发生此异常,并且如果反复发生,是否会导致服务器崩溃? (因为
getWriter()
或getOutputStream()
缓冲区中的数据变为虚影)? 最佳答案
这是IllegalStateException,是RuntimeException。
RuntimeException
是unchecked异常,完全不会导致系统/服务器崩溃。
如何避免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/