本文将帮助大家简单理解Java中的java.lang.IllegalStateException异常,这一异常经常出现在输出流作业中。
咱们在做文件上传或许下载,或许过滤等操作时,可能要用到页面的输出流.
例如在JSP运用:
response.reset(); |
抛出反常:
ERROR [Engine] StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exception has already been called for this response |
从网上找了下材料,归纳一下原因剖析:
这是WEB容器生成的servlet代码中有out.write(””),这个和JSP中调用的response.getOutputStream()发生抵触。即Servlet标准阐明,不能既调用 response.getOutputStream(),又调用response.getWriter(),不管先调用哪一个,在调用第二个时分应会抛出 IllegalStateException,由于在jsp中,out变量是经过response.getWriter得到的,在程序中既用了response.getOutputStream,又用了out变量,故呈现以上过错。
解决方案:
1.在程序中增加:
out.clear();
out = pageContext.pushBody();
就可以了;
2,不要在%][%之间写内容包含空格和换行符
3,在页面写入图片的时分,需求
flush() |
4,在页面确认写入
【修改引荐】
- Java开发者需求留意的十条规律
- Java前史回忆:开发人员十大问答
- 散步云端 Java开发者的新挑选
转载请说明出处
知优网 » 简略了解Java中的输出流反常(java 异常输出)
知优网 » 简略了解Java中的输出流反常(java 异常输出)