昨晚在做图片验证码的时候,生成验证码成功了,但却抛出了一个异常:java.lang.illegalStateException:getOutputStream() has already been call for this response,呵呵,错误的状态,肯定是在输出流已经关闭的情况还继续向页面输出语句,看了一下生成验证码的代码,果然如此:
OutputStream os=response.getOutputStream();
。。。
os.flush();
os.close();
但要怎样解决呢?不清空输出流的话验证码图片是不会生成的。没办法,只好求助于google,终于找到了解决方法:在方法体结束前加入以下两条语句:
out.clear();
out = pageContext.pushBody();
OutputStream os=response.getOutputStream();
。。。
os.flush();
os.close();
但要怎样解决呢?不清空输出流的话验证码图片是不会生成的。没办法,只好求助于google,终于找到了解决方法:在方法体结束前加入以下两条语句:
out.clear();
out = pageContext.pushBody();
本文记录了一个关于图片验证码生成过程中遇到的java.lang.IllegalStateException异常及其解决办法。异常提示为getOutputStream()hasalreadybeencallforthisresponse,通常发生在输出流被关闭后仍尝试输出内容到页面的情形。文中提供了一种解决方案,即在方法体结束前加入两行代码来清空输出流并重新设置,从而确保验证码图片能够正常生成。
1570

被折叠的 条评论
为什么被折叠?



