⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jsp文件下载及出现getoutputstream() has already been called for ___的解决方法.htm

📁 主要是我最近两月在公司通过百度学习的内容,有AJAX,DWR,JAVA实现文件的上传和下载.主要目的在与告诉大家一个成功程序员(JAVA)是如何学习的,需要学习什么内容.以及学习的态度.
💻 HTM
📖 第 1 页 / 共 5 页
字号:
        <TR vAlign=top>
          <TD width="99%">
            <TABLE 
            style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all; WORD-WRAP: break-word" 
            width="100%">
              <TBODY>
              <TR>
                <TD><SPAN class=bright-subject><A 
                  name=178423></A>JSP文件下载及出现getOutputStream() has already been 
                  called for ...的解决方法 </SPAN></TD></TR></TBODY></TABLE><BR>提交时间: Nov 
            26, 2005 11:03:55 AM </TD>
          <TD width="1%">
            <TABLE cellSpacing=2 cellPadding=3 border=0>
              <TBODY>
              <TR>
                <TD noWrap><SPAN style="COLOR: red">加3分</SPAN></TD>
                <TD>&nbsp;</TD>
                <TD noWrap><A title=点击回复此主题 
                  href="http://dev2dev.bea.com.cn/bbs/post!reply.jspa?forumID=121&amp;threadID=29766&amp;messageID=178423&amp;rep=true">引用<!--img src="/bbs/images/reply-16x16.gif" width="16" height="16" border="0"--></A> 
                </TD>
                <TD noWrap><A title=点击回复此主题 
                  href="http://dev2dev.bea.com.cn/bbs/post!reply.jspa?forumID=121&amp;threadID=29766&amp;messageID=178423">回复</A>&nbsp;&nbsp; 
                </TD>
                <TD noWrap><A title=点击给作者发站内消息 
                  onclick="sendMessage(1791);return false;" 
                  href="http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=121&amp;threadID=29766&amp;tstart=0#">发消息</A> 
                </TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD class=message_content style="BORDER-TOP: #ccc 1px solid" 
            colSpan=2><BR>
            <TABLE 
            style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all; WORD-WRAP: break-word" 
            width="100%">
              <TBODY>
              <TR>
                <TD>JSP文件下载及出现getOutputStream() has already been called for 
                  this 
                  response的解决方法<BR><BR>http://iamin.blogdriver.com/iamin/1072546.html<BR><BR>一、采用RequestDispatcher的方式进行<BR><BR>1、web.xml文件中增加<BR>&nbsp; 
                  &lt;mime-mapping&gt;<BR>&nbsp;&nbsp;&nbsp; 
                  &lt;extension&gt;doc&lt;/extension&gt;<BR>&nbsp;&nbsp;&nbsp; 
                  &lt;mime-type&gt;application/vnd.ms-word&lt;/mime-type&gt;<BR>&nbsp; 
                  &lt;/mime-mapping&gt;<BR><BR><BR>2、程序如下:<BR><BR>&lt;%@page 
                  language="java" import="java.net.*" 
                  pageEncoding="gb2312"%&gt;<BR>&lt;%<BR>&nbsp;&nbsp;&nbsp; 
                  response.setContentType("application/x-download");//设置为下载application/x-download<BR>&nbsp;&nbsp;&nbsp; 
                  String filenamedownload = 
                  "/系统解决方案.doc";//即将下载的文件的相对路径<BR>&nbsp;&nbsp;&nbsp; String 
                  filenamedisplay = 
                  "系统解决方案.doc";//下载文件时显示的文件保存名称<BR>&nbsp;&nbsp;&nbsp; 
                  filenamedisplay = 
                  URLEncoder.encode(filenamedisplay,"UTF-8");<BR>&nbsp;&nbsp;&nbsp; 
                  response.addHeader("Content-Disposition","attachment;filename=" 
                  + filenamedisplay);<BR>&nbsp;&nbsp;&nbsp; 
                  <BR>&nbsp;&nbsp;&nbsp; try<BR>&nbsp;&nbsp;&nbsp; 
                  {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  RequestDispatcher dispatcher = 
                  application.getRequestDispatcher(filenamedownload);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  if(dispatcher != 
                  null)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  dispatcher.forward(request,response);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  response.flushBuffer();<BR>&nbsp;&nbsp;&nbsp; 
                  }<BR>&nbsp;&nbsp;&nbsp; catch(Exception 
                  e)<BR>&nbsp;&nbsp;&nbsp; 
                  {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  e.printStackTrace();<BR>&nbsp;&nbsp;&nbsp; 
                  }<BR>&nbsp;&nbsp;&nbsp; finally<BR>&nbsp;&nbsp;&nbsp; 
                  {<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 
                  }<BR>%&gt;<BR><BR><BR>二、采用文件流输出的方式下载<BR><BR>1、web.xml文件中增加<BR>&nbsp; 
                  &lt;mime-mapping&gt;<BR>&nbsp;&nbsp;&nbsp; 
                  &lt;extension&gt;doc&lt;/extension&gt;<BR>&nbsp;&nbsp;&nbsp; 
                  &lt;mime-type&gt;application/vnd.ms-word&lt;/mime-type&gt;<BR>&nbsp; 
                  &lt;/mime-mapping&gt;<BR><BR><BR>2、程序如下:<BR><BR>&lt;%@page 
                  language="java" contentType="application/x-msdownload" 
                  import="java.io.*,java.net.*" 
                  pageEncoding="gb2312"%&gt;&lt;%<BR>&nbsp;&nbsp;&nbsp; 
                  //关于文件下载时采用文件流输出的方式处理:<BR>&nbsp;&nbsp;&nbsp; 
                  //加上response.reset(),并且所有的%&gt;后面不要换行,包括最后一个;<BR>&nbsp;&nbsp;&nbsp; 
                  //因为Application 
                  Server在处理编译jsp时对于%&gt;和&lt;%之间的内容一般是原样输出,而且默认是PrintWriter,<BR>&nbsp;&nbsp;&nbsp; 
                  //而你却要进行流输出:ServletOutputStream,这样做相当于试图在Servlet中使用两种输出机制,<BR>&nbsp;&nbsp;&nbsp; 
                  //就会发生:getOutputStream() has already been called for this 
                  response的错误<BR>&nbsp;&nbsp;&nbsp; //详细请见《More Java 
                  Pitfill》一书的第二部分 Web层Item 33:试图在Servlet中使用两种输出机制 
                  270<BR>&nbsp;&nbsp;&nbsp; 
                  //而且如果有换行,对于文本文件没有什么问题,但是对于其它格式,比如AutoCAD、Word、Excel等文件<BR>&nbsp;&nbsp;&nbsp; 
                  //下载下来的文件中就会多出一些换行符0x0d和0x0a,这样可能导致某些格式的文件无法打开,有些也可以正常打开。<BR><BR>&nbsp;&nbsp;&nbsp; 
                  response.reset();//可以加也可以不加<BR>&nbsp;&nbsp;&nbsp; 
                  response.setContentType("application/x-download");//设置为下载application/x-download<BR>&nbsp;&nbsp;&nbsp; 
                  // 
                  /../../退WEB-INF/classes两级到应用的根目录下去,注意Tomcat与WebLogic下面这一句得到的路径不同,WebLogic中路径最后没有/<BR>&nbsp;&nbsp;&nbsp; 
                  System.out.println(this.getClass().getClassLoader().getResource("/").getPath());<BR>&nbsp;&nbsp;&nbsp; 
                  String filenamedownload = 
                  this.getClass().getClassLoader().getResource("/").getPath() + 
                  "/../../系统解决方案.doc";<BR>&nbsp;&nbsp;&nbsp; String 
                  filenamedisplay = 
                  "系统解决方案.doc";//系统解决方案.txt<BR>&nbsp;&nbsp;&nbsp; 
                  filenamedisplay = 
                  URLEncoder.encode(filenamedisplay,"UTF-8");<BR>&nbsp;&nbsp;&nbsp; 
                  response.addHeader("Content-Disposition","attachment;filename=" 
                  + filenamedisplay);<BR><BR>&nbsp;&nbsp;&nbsp; OutputStream 
                  output = null;<BR>&nbsp;&nbsp;&nbsp; FileInputStream fis = 
                  null;<BR>&nbsp;&nbsp;&nbsp; try<BR>&nbsp;&nbsp;&nbsp; 
                  {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output&nbsp; = 
                  response.getOutputStream();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  fis = new 
                  FileInputStream(filenamedownload);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  byte[] b = new 
                  byte[1024];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int 
                  i = 0;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  while((i = fis.read(b)) &gt; 
                  0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  output.write(b, 0, 
                  i);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  output.flush();<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; 
                  catch(Exception e)<BR>&nbsp;&nbsp;&nbsp; 
                  {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  System.out.println("Error!");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  e.printStackTrace();<BR>&nbsp;&nbsp;&nbsp; 
                  }<BR>&nbsp;&nbsp;&nbsp; finally<BR>&nbsp;&nbsp;&nbsp; 
                  {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(fis != 
                  null)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  fis.close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  fis = null;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(output != 
                  null)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  output.close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  output = null;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  }<BR>&nbsp;&nbsp;&nbsp; 
            }<BR>%&gt;<BR></TD></TR></TBODY></TABLE><BR><BR>
            <HR style="COLOR: #cccccc; HEIGHT: 1px" align=left>

            <TABLE 
            style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all; WORD-WRAP: break-word" 
            width="100%">
              <TBODY>
              <TR>
                <TD>
                  <DIV 
                  style="PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; WIDTH: 96%; PADDING-TOP: 4px; TEXT-ALIGN: left">只有正确地找到问题的根本所在,才能成功地解决掉问题:)<BR>Read 
                  a bit and take it out , then come back read some more .<BR><A 
                  href="http://yulimin.javaeye.com/" target=_blank><BR><IMG 
                  style="CURSOR: pointer" 
                  onclick=javascript:window.open(this.src); src="" 
                  onload="javascript:if(this.width>400)this.style.width=400;"><BR></IMG></A></DIV></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></SPAN><BR><SPAN 
class=bright-message-list>
<TABLE class=bright-box cellSpacing=1 cellPadding=3 width="98%" align=center 
border=0>
  <TBODY>
  <TR class=bright-even vAlign=top>
    <TD width="1%">
      <TABLE cellSpacing=0 cellPadding=0 width=180 border=0>
        <TBODY>
        <TR>
          <TD><A title="" 
            href="http://dev2dev.bea.com.cn/bbs/profile.jspa?userID=1791"><B>YuLimin</B></A> 
            [版主] <BR><BR>发帖数: 2,283 <BR>活跃积分: 2,472 <BR>技术积分: 342 <BR>可用币值: 187 
            <BR>注册时间: 2002-9-4 <BR>用户状态:<FONT color=green>正常</FONT> 
        <BR></TD></TR></TBODY></TABLE></TD>
    <TD width="99%">
      <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
        <TBODY>
        <TR vAlign=top>
          <TD width="99%">
            <TABLE 
            style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all; WORD-WRAP: break-word" 
            width="100%">
              <TBODY>
              <TR>
                <TD><SPAN class=bright-subject><A name=179308></A>Re: 
                  JSP文件下载及出现getOutputStream() has already been called for 
                  ...的解决方法 </SPAN></TD></TR></TBODY></TABLE><BR>提交时间: Nov 30, 2005 
            3:20:11 PM </TD>
          <TD width="1%">
            <TABLE cellSpacing=2 cellPadding=3 border=0>
              <TBODY>
              <TR>
                <TD vAlign=center noWrap>
                  <FORM name=179308 action=send!default.jspa method=post 
                  target=_blank><INPUT type=hidden value=申请积分 name=subject> 
                  <INPUT type=hidden value=YuLimin,fengw name=master> <INPUT 
                  type=hidden 
                  value=帖子http://dev2dev.bea.com.cn//bbs/thread.jspa?forumID=121&amp;threadID=29766&amp;messageID=179308申请积分 
                  name=body> <INPUT type=image 
                  src="JSP文件下载及出现getOutputStream() has already been called for ___的解决方法.files/sqjifen0.gif" 
                  border=0 name=submit> </TD></FORM>
                <TD>&nbsp;</TD>
                <TD noWrap><A title=点击回复此主题 
                  href="http://dev2dev.bea.com.cn/bbs/post!reply.jspa?forumID=121&amp;threadID=29766&amp;messageID=179308&amp;rep=true">引用<!--img src="/bbs/images/reply-16x16.gif" width="16" height="16" border="0"--></A> 
                </TD>
                <TD noWrap><A title=点击回复此主题 
                  href="http://dev2dev.bea.com.cn/bbs/post!reply.jspa?forumID=121&amp;threadID=29766&amp;messageID=179308">回复</A>&nbsp;&nbsp; 
                </TD>
                <TD noWrap><A title=点击给作者发站内消息 
                  onclick="sendMessage(1791);return false;" 
                  href="http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=121&amp;threadID=29766&amp;tstart=0#">发消息</A> 
                </TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD colSpan=2>
            <TABLE cellSpacing=0 cellPadding=3 width="100%" border=0>
              <TBODY>
              <TR>
                <TD vAlign=top width="1%"><A 
                  href="http://dev2dev.bea.com.cn/bbs/servlet/D2DServlet/download/121-29766-179308-2306/DownloadFile.war" 
                  target=_blank><IMG 
                  src="JSP文件下载及出现getOutputStream() has already been called for ___的解决方法.files/D2DServlet" 
                  border=0> </A></TD>
                <TD width="98%"><A 
                  href="http://dev2dev.bea.com.cn/bbs/servlet/D2DServlet/download/121-29766-179308-2306/DownloadFile.war" 
                  target=_blank>DownloadFile.war</A> (10.4 
            K)<BR></TD></TR></TBODY></TABLE><BR>
            <TABLE cellSpacing=0 cellPadding=3 width=400 border=0>
              <TBODY>
              <TR>
                <TD></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD class=message_content style="BORDER-TOP: #ccc 1px solid" 
            colSpan=2><BR>
            <TABLE 
            style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all; WORD-WRAP: break-word" 
            width="100%">
              <TBODY>
              <TR>
                <TD>修改了一下,在WebLogic上面路径/的问题。 
                  <BR>Tomcat与WebLogic下面这一句得到的路径不同,WebLogic中路径最后没有/<BR></TD></TR></TBODY></TABLE><BR><BR>
            <HR style="COLOR: #cccccc; HEIGHT: 1px" align=left>

            <TABLE 
            style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all; WORD-WRAP: break-word" 
            width="100%">
              <TBODY>
              <TR>
                <TD>
                  <DIV 
                  style="PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; WIDTH: 96%; PADDING-TOP: 4px; TEXT-ALIGN: left">只有正确地找到问题的根本所在,才能成功地解决掉问题:)<BR>Read 
                  a bit and take it out , then come back read some more .<BR><A 
                  href="http://yulimin.javaeye.com/" target=_blank><BR><IMG 
                  style="CURSOR: pointer" 
                  onclick=javascript:window.open(this.src); src="" 
                  onload="javascript:if(this.width>400)this.style.width=400;"><BR></IMG></A></DIV></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></SPAN><SPAN 
class=bright-message-list>
<TABLE class=bright-box cellSpacing=1 cellPadding=3 width="98%" align=center 
border=0>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -