重: Servlet.service() for servlet [default] in context with p

问题描述:

重: Servlet.service() for servlet [default] in context with path [/dtsix] threw exception
java.lang.IllegalStateException: getOutputStream() has already been called for this response
at org.apache.catalina.connector.Response.getWriter(Response.java:626)
at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:205)
at utils.CopyRightFilter.doFilter(CopyRightFilter.java:34)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:244)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:383)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:288)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
2012-5-8 11:04:13 org.apache.catalina.core.StandardWrapperValve invoke
代码是:
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
arg2.doFilter(arg0, arg1);
PrintWriter out=arg1.getWriter();
out.println("
版权所有:ABC有限责任公司");
if(date!=null){
out.println("
"+date+"");
}
out.close();
}
我按照网上的回答操作,但还是解决不了问题,这是怎么回事啊?
1个回答 分类:综合 2014-10-06

问题解答:

我来补答
arg2.doFilter(arg0, arg1) 应该放后面.
再问: 放在后面也不对。弄了一整天,后来我灵机一动。因为是个异常嘛,网页能正常运行,只是后台报异常错误,所以我就用try---catch语句捕获了这个异常,然后后台就没有错误啦。虽然这个灵感来得太晚,不过还好解决掉了。
再答: 恭喜喽!
 
 
展开全文阅读
剩余:2000