jsp程序错误 jsp+tomcat+oracle

来源:百度知道 编辑:UC知道 时间:2024/05/16 07:18:58
严重: Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException: getOutputStream() has already been called for this response
at org.apache.catalina.connector.Response.getWriter(Response.java:607)
at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:196)
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:179)
at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:116)
at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:76)
at org.apache.jsp.image_jsp._jspService(image_jsp.java:129)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasp

这个问题就是你用了out.print("你用了out向客户端输出信息了");
这个是字符流体系
而getOutputStream()方法返回的是字节流
你想想java的io体系只有两种(1)---字节流
(2)---字符流
你想同时使用两种肯定冲突了阿
所以报错
所以直接在网页开始处

out.clear();
response.reset();
写在最开始处然后在调用getOutputStream();就行了

上面异常信息的原因是页面在输出header消息之前已经向客户端写入的信息。如:在输出数据之后又使用request.sendRedirect函数,或者是setHeader函数就有可能出错。具体需要根据程序而定。