See the Servlet Specification information about
RequestDispatcher.forward(), available at:

  http://java.sun.com/products/servlet/download.html

Once a response has been committed back to the client, it is not legal to
call RequestDispatcher.forward() (which is what <jsp:forward> does under
the covers), because a forward() tries to erase all the headers -- and
they have already been sent back to the client, so this cannot be done.

A solution is to:
* Move thoe <jsp:forward> call closer towards the beginning of
  your page, or
* Increase the buffer size on your page with the <%@ page buffer="xxx" %>
  directive

Craig

On Wed, 12 Sep 2001, Rock Luiss wrote:

> Date: Wed, 12 Sep 2001 09:37:17 +0800
> From: Rock Luiss <[EMAIL PROTECTED]>
> Reply-To: [EMAIL PROTECTED]
> To: [EMAIL PROTECTED]
> Subject: Attempt to clear a buffer that's already been
>     flushed----------when use <jsp:forward>; why?Anybody?
>
> java.io.IOException: Error: Attempt to clear a buffer that's already been flushed
>  at org.apache.jasper.runtime.JspWriterImpl.clear(JspWriterImpl.java:180)
>  at org.apache.jsp.view_0005fout_jsp._jspService(view_0005fout_jsp.java:1947)
>  at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>  at 
>org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:200)
>  at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:357)
>  at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:431)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>  at 
>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
>  at 
>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:191)
>  at 
>org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:255)
>  at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
>  at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>  at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:879)
>  at 
>org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:225)
>  at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
>  at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
>  at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
>  at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>  at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:879)
>  at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2175)
>  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
>  at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
>  at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:446)
>  at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
>  at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>  at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:879)
>  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:162)
>  at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
>  at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
>  at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:879)
>  at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:827)
>  at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:904)
>  at java.lang.Thread.run(Thread.java:484)
>

Reply via email to