生成图片验证码中问题的解决
生成图片验证码的几个页面以及JAVA文件:
?
session.setAttribute("certCode", str);out.clear();out=pageContext.pushBody();%>?LoginPic.jsp
?loginCheck.jsp
?
红色部分(?makeCertPic.jsp的第十行)要格外注意,如果不加则会报java.lang.IllegalStateException: getOutputStream() has already been called for this response错误,
具体原因如下:
应用验证码时,都会用到字节流response.getOutputStream()来将验证码
?
输出,但是jsp页面自己最后会调用字符流JspWriter的out()方法将页面的内容输
?
出。通过查看servlet的API我们可以看到知道,在servlet中不能够同时利用这两
?
个流输出,解决办法将验证码写在servlet中或者在JSP的JAVA代码中加入
response.reset();
out.clear();
out=pageContext.pushBody();