参考:http://stackoverflow.com/questions/11305563/cause-of-servlets-response-already-committed
Response变为committed状态的意思是将headers写出,在这些情况下Response会变为committed:
- Response的buffer超过了最大值,这可能由以下两个原因造成:
- buffer到了JSP页面设置的buffer size最大值,可以在这里修改buffer size的值
-
<%@ page buffer="5kb" autoFlush="false" %>
- 达到了Server中response的buffer最大值,这个值可以在这里修改:
-
ServletRespnse.setBufferSize()
- Response中的某些代码调用了flush()方法,比如:
- 有些代码调用了OutputStream或Writer的flush()方法
- 如果forwarded到了其他页面,那么response将变为commited和closed