jsp页面验证码问题
2013-05-13 11:55
465 查看
生成jsp页面的验证码,,代码如下
解决办法
<%@page contentType="image/jpeg" pageEncoding="UTF-8"%> <jsp:useBean id="image" scope="page" class="com.zb.other.makeCertPic" /> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'register.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <% String str = image.getCertPic(0,0,response.getOutputStream()); // 将验证码保存到Session中 session.setAttribute("certCode", str); %> </head> <body> </body> </html> 以上在刷新页面时会报错 java.lang.IllegalStateException: getOutputStream() has already been called for this response at org.apache.catalina.connector.Response.getWriter(Response.java:639) at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:214) at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:125) at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:118) at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:190) at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:126) at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:80) at org.apache.jsp.makeCertPic_jsp._jspService(makeCertPic_jsp.java:125) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:88) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1008) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722)
解决办法
<% String str = image.getCertPic(0,0,response.getOutputStream()); // 将验证码保存到Session中 session.setAttribute("certCode", str); //加入以下两行代码 out.clear(); //清除输出 out = pageContext.pushBody(); %>
相关文章推荐
- jsp页面验证码产生及刷新问题
- jsp页面上取得的验证码的值与session中存入的值不同步的问题
- 验证码之 jsp页面显示与img里的显示内容同步问题
- 关于springMVC和传统servlet框架从jsp页面向后台请求url问题
- JSP、Servlet中的相对路径和绝对路径 页面跳转问题
- jsp页面get中文传值ie浏览器乱码的问题总结
- 解决Yii自带的验证码不随页面刷新自动刷新的问题
- JSP页面间的中文传值乱码问题,解决方案
- jsp页面向后台传值出现乱码的问题
- jsp 菜鸟学习过程中遇到的页面逻辑,解耦等问题
- 使用jsp生成验证码使用简单在java或jsp页面调用简单
- 关于JSP页面表单提交中文乱码问题和URL中文参数乱码问题
- jsp页面第一行报错问题
- 【JavaEE常见问题】frame框架中如何引入WEB-INF中的jsp页面
- yii自带验证码,解决刷新页面验证码不刷新问题
- JSP页面GET传值乱码问题
- jsp页面显示out.write()输出int 类型问题
- 两个jsp页面传递参数问题
- JSP页面添加验证码
- 利用JSP在Web页面中显示随机数字验证码图片