程序:
<%@ 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 附件数据库出错解析及解决方案 #### 一、问题概述 在使用SQL Server 2005的过程中,用户可能会遇到“附件数据库出错”的问题。这种错误通常发生在尝试附加一个之前从另一台服务器上分离出来的...
Kettle JOB执行出错,发送带附件的邮件
手动保存这些附件不仅耗时且容易出错。为了提高工作效率,我们可以利用VBA(Visual Basic for Applications)编写一个脚本来自动保存Outlook邮件中的附件。下面将详细介绍如何实现这一功能。 #### VBA脚本详解 ...
泛微附件上传失败问题排查
正是在这种背景下,“下载论坛附件的好帮手RAR批量下载器”应运而生,它为用户提供了高效、简便的下载解决方案。 该工具最大的优势在于其“短小精悍”,从体积上来看,它不需要占用大量的存储空间,也不会给用户的...
最好用的浏览器省时省力可在一个窗口中打开多个网页
本篇文章将深入探讨如何使用Java进行邮件的发送、接收以及带附件的邮件发送。 首先,Java邮件开发主要依赖于JavaMail API,这是一个开源库,提供了与各种邮件服务器交互的接口。要发送邮件,你需要导入`javax.mail`...
很多的浏览器等客户端软件都会调用附件管理器来处理交换的文件,比如Firefox,Chrome等。这也就是这些浏览器里下载的文件经常被锁定的原因。这样会导致打开文档出错,双击导入注册表后重启即可解除锁定。
filename=xxx.jpg`,浏览器将识别为附件并启动下载。 3. MIME类型: - **Content-Type**:响应头中的`Content-Type`字段定义了数据的类型。若设置为非图片的MIME类型(如application/octet-stream),浏览器也会...
安装完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
在日常电脑办公中,确保文件能顺利打开是基础性工作之一,但有时我们会遇到一些棘手的问题,例如尝试打开从邮件中下载的PPT文件时,系统会提示“文件内容出错”。这一状况不只出现在PPT文件中,Word文档和Excel表格...
按照附件文献内容 建模,出错内容: 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 ...
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 ...