java.lang.IllegalStateException: getOutputStream() has already been called for t

下载文件时,一不小心,就会经常报下面的异常:

java.lang.IllegalStateException: getOutputStream() has already been called for t

 

解决方法:

由于jsp container在处理完成请求后会调用releasePageContet方法释放所用的PageContext object,并且同时调用getWriter方法,由于getWriter方法与在jsp页面中使用流相关的getOutputStream方法冲突,所以会造成这种异常,

解决办法是:只需要在jsp页面的最后加上两条语句: 

out.clear();
out=pageContext.pushBody();

即可(其中out,pageContext均为jsp内置对象!)

你可能感兴趣的:(jsp,文件下载,servlet,异常)