zoukankan      html  css  js  c++  java
  • java.lang.IllegalStateException:

    java.lang.IllegalStateException: getOutputStream() has already been called for this response;
    该错误信息一般会在文件下载过程中出现,主要是因为ServletResponse.getOutputStream()方法和public java.io.PrintWriter getWriter()两个方法发生冲突,其中的一个方法被调用了,再调用另一个方法就会抛出异常。

    Servlet的API中解释为:

    public java.io.PrintWriter getWriter()
    throws java.io.IOException
    
        Returns a PrintWriter object that can send character text to the client. The PrintWriter uses the character encoding returned by getCharacterEncoding(). If the response's character encoding has not been specified as described in getCharacterEncoding (i.e., the method just returns the default value ISO-8859-1), getWriter updates it to ISO-8859-1.
    
        Calling flush() on the PrintWriter commits the response.
    
        Either this method or getOutputStream() may be called to write the body, not both.
    
    
    
        Returns:
            a PrintWriter object that can return character data to the client 
        Throws:
            UnsupportedEncodingException - if the character encoding returned by getCharacterEncoding cannot be used 
            java.lang.IllegalStateException - if the getOutputStream method has already been called for this response object 
            java.io.IOException - if an input or output exception occurred 
        See Also:
            getOutputStream(), setCharacterEncoding(java.lang.String)

    解决方法:在使用完response.getOutputStream()的后面加上两句:

    out.clear();//清空缓存的内容,此处out为JSPWriter 对象。
    out = pageContext.pushBody();

    ·返回一个新的BodyContent(代表一个HTML页面的BODY部分内容)
    ·保存JspWriter实例的对象out
    ·更新PageContext的out属性的内容

    public BodyContent pushBody()
    
        Return a new BodyContent object, save the current "out" JspWriter, and update the value of the "out" attribute in the page scope attribute namespace of the PageContext.
    
        Returns:
            the new BodyContent
  • 相关阅读:
    mongoDB 获取系统时间
    android应用程序监听SMS Intent广播
    安卓开发之探秘蓝牙隐藏API
    Android内存优化解决 资料和总结的经验分享
    android 访问SMS短信收件箱
    Android 和 PHP 之间进行数据加密传输
    Android开发 MMS支持 创建和编辑MMS
    android 动态改变屏幕方向
    Android 使用 Gmail 来发送邮件
    android数据库操作之直接读取db文件
  • 原文地址:https://www.cnblogs.com/lllini/p/11955324.html
Copyright © 2011-2022 走看看