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();
            }
  • 相关阅读:
    绘图与滤镜全面解析
    排序算法——快速排序
    IOS QuartzCore核心动画框架
    const 笔记
    operation 多线程
    指针 总结
    问题 H: 老管家的忠诚(线段树)
    问题 H: 老管家的忠诚(线段树)
    Python——numpy(python programming)
    Python——numpy(python programming)
  • 原文地址:https://www.cnblogs.com/qrlozte/p/3617857.html
Copyright © 2011-2022 走看看