程序:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="java.io.*" %>
<%@page import="java.util.Hashtable" %>
<%
String filename=request.getParameter("filename");
if(filename==null)return;
OutputStream streamOut=response.getOutputStream();
InputStream streamIn=getServletContext().getResourceAsStream(filename);
int len = 0;
byte[] buffer = new byte[2048];
response.setContentType("application/force-download");
String name=filename.substring(filename.lastIndexOf("/")+1 );
response.setHeader("Content-Disposition", "attachment;filename=\""+name +"\" ");
while ((len = streamIn.read(buffer)) > 0) {
streamOut.write(buffer, 0, len);
}
streamIn.close();
streamOut.close();
%>
出错信息:
2008-10-28 21:41:20 org.apache.catalina.core.StandardWrapperValve invoke
严重: 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:604)
at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:198)
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:186)
at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:118)
at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:77)
at org.apache.jsp.downloads_jsp._jspService(downloads_jsp.java:92)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
解决方法:主要是JSP里的OUT流没有关闭。
在streamOut.close();后加
out.clear();
out = pageContext.pushBody();
就OK。
分享到:
相关推荐
SQL Server 2005附件数据库出错
Kettle JOB执行出错,发送带附件的邮件
泛微附件上传失败问题排查
最好用的浏览器省时省力可在一个窗口中打开多个网页
很多的浏览器等客户端软件都会调用附件管理器来处理交换的文件,比如Firefox,Chrome等。这也就是这些浏览器里下载的文件经常被锁定的原因。这样会导致打开文档出错,双击导入注册表后重启即可解除锁定。
java 邮件开发 日益受到程序员们的喜欢
安装完office2007,每次打开excel时都会提示stdole32出错。该附件完美解决excel打开后提示stdole32出错的问题。下载附件文件,双击导入注册表,下次打开就不再提示stdole32出错了。
项目中需要发邮件功能,基于网上的smailer修改, 原来的smailer将附件完全加密后发送,附件太大就会出错。我改用边加密边发送的方式,可发送大附件。测试可用 另hotmail Gmail 163的SMTP服务器不可用
office 2007 Document Imagging 软件在使用OCR识别文字时,总是出现问题,需要重启。 解决方法:下载本附件,把所有文件替换到C:\Program Files\Common Files\Microsoft Shared\MODI\12.0
按照附件文献内容 建模,出错内容: Trouble solving algebraic loop containing 'mypv/Subsystem4/Fcn' at time 0. Stopping simulation. There may be a singularity in the solution. If the model is ...
CentOS系统yum源配置修改、yum安装软件包源码包出错解决办法!-附件资源
VB.NET编写支持发送附件的邮件发送实例,本实例源码中包含用于将电子邮件发送到简单邮件传输协议(SMTP)服务器进行传送的类,这里使用了SmtpClient 类发送电子邮件,可设置允许添加的附件类型,支持文本文件(*.txt)|*...
单片机小附件,可以用来修复单片机软件Proteus出错的地方
Keras载入mnist数据集出错问题解决方案-附件资源
按照附件文献内容 建模,出错内容: Trouble solving algebraic loop containing 'mypv/Subsystem4/Fcn' at time 0. Stopping simulation. There may be a singularity in the solution. If the model is ...
使用Eclipse导入Maven项目jar包出错,如何解决-附件资源
解决Python安装模块出错 ImportError: No module named setuptools-附件资源