java.lang.IllegalStateException: getWriter() has already been called for this response
at org.apache.catalina.connector.Response.getOutputStream(Response.java:568)
at org.apache.catalina.connector.ResponseFacade.getOutputStream(ResponseFacade.java:180)
at org.apache.jsp.oa.file.downLoad_jsp._jspService(downLoad_jsp.java:94)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at goodghost.tools.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:28)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
代码如下:
<%@ page language="java" pageEncoding="GB2312" import="java.io.*"%>
<jsp:include flush="true" page="check.jsp" />
<jsp:useBean id="classMap" scope="request" class="goodghost.tools.ClassMap" />
<jsp:setProperty name="classMap" property="*" /><%
%>
<%
String actionDo=request.getParameter("actionDo");
String id_str=request.getParameter("id");
String mainId=request.getParameter("mainId");
System.out.println("id_str:::"+id_str+"mainId:::"+mainId);
String localPath="c:\\downLoadDatabase\\";
goodghost.base.FileList file=(goodghost.base.FileList)classMap.load("oa_file_list","goodghost.base.FileList",new Integer(id_str));
goodghost.base.File main=(goodghost.base.File)classMap.load("oa_file","goodghost.base.File",new Integer(mainId));
String mainName=main.getFileName();//得到主记录名称
String fileName=file.getListName();//得到明细名称
String listUrl=file.getListUrl();
System.out.println("listUrl::"+listUrl);
if(actionDo.equals("download"))
{
String path=application.getRealPath("/")+listUrl;//得到文件具体路径
//String str[]=listUrl.split("/");
//String nowP=str[str.length-1];//得到文件的名称含扩展名
//String ss2[]=nowP.split("\\.");
//String extendName="."+ss2[ss2.length-1];//得到文件扩展名
File fileIn=new File(path);
System.out.println("filName::::"+fileIn.getName());
File fileOut=new File(localPath);
if(!fileOut.exists())
fileOut.mkdirs();
try{
java.io.FileInputStream fin = new java.io.FileInputStream(fileIn);
response.setHeader("Content-disposition", "attachment; filename=" + new String(fileIn.getName().getBytes("gb2312"), "ISO8859-1"));
int a = fin.read();
response.getWriter().close();
while (a != -1)
{
response.getOutputStream().write(a);
a = fin.read();
}
response.getOutputStream().flush();
response.getOutputStream().close();
fin.close();
response.flushBuffer();
out.clear();
out = pageContext.pushBody(); }
catch (RuntimeException e) {
e.printStackTrace();
}
catch(Exception e)
{
e.printStackTrace();
} }%>怎么解决呢,,愿各位老大帮帮忙!
解决方案 »
- 你知道输出String result=""是输出一个空格?求解释为何输出" "是输出两个空格
- com.jspsmart.upload.jar无法下载中文文件,出现乱码
- 两个float数相加的问题?
- 哪位大侠有SmartUpload组件
- 简单的struts 错误, 大家帮我看看!!
- <jsp:setProperty> 问题 ,请高手指教
- 开发中一般用到spring的什么方面
- 读字符串子串的问题?
- 一个愚蠢的问题什么叫jsp
- ssh报错 Error setting expression 'teacher.password' with value '[Ljava.lang.String
- 因为没有上网条件,请问firebug本地安装?
- java中时间类型的问题
while (a != -1)
{
response.getOutputStream().write(a);
a = fin.read();
} response.getOutputStream().flush();
response.getOutputStream().close();
fin.close();
response.flushBuffer();
out.clear();
out = pageContext.pushBody();
中去掉out.clear();
就行了。哈哈………………终于解决了》》