zoukankan      html  css  js  c++  java
  • 解决getOutputStream() has already been called for this response

    我是在TagSupport中使用了

    response.getOutputStream(),导致的这个异常,参考http://gqsunrise.iteye.com/blog/1935758,解决方案如下,添加代码:pageContext.getOut().clear()

            HttpServletResponse response = (HttpServletResponse)pageContext.getResponse();
            response.setHeader("Content-disposition", "attachment;filename="+fileName+"."+fileExt);
            File file = new File(fileURI);
            try {
                FileInputStream fileInputStream = new FileInputStream(file);
                BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
                ServletOutputStream servletOutputStream = response.getOutputStream();
                BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(servletOutputStream);
                byte[] buffer = new byte[2048];
                int bytesRead;
                while ((bytesRead=bufferedInputStream.read(buffer,0,buffer.length))!=-1) {
                    bufferedOutputStream.write(buffer,0,bytesRead);
                }
                bufferedOutputStream.flush();
                pageContext.getOut().clear();
                if (bufferedInputStream!=null) {
                    bufferedInputStream.close();
                }
                if (bufferedOutputStream!=null) {
                    bufferedOutputStream.close();
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
  • 相关阅读:
    线性表之顺序表的结构与实现
    (转)面试题1:第一个只出现一次的字符
    c++ 虚基类应用
    c++ 多重继承
    c++ 单继承派生类的构造函数
    c++ 构造函数
    深入 Struts2 的配置
    c++ 结构体
    深入浅出C指针
    HTML5 小实例
  • 原文地址:https://www.cnblogs.com/qrlozte/p/3617857.html
Copyright © 2011-2022 走看看