lidashent 2019-04-01 08:42 采纳率: 0%
浏览 652

javaee,out的clear()与clearBuffer()区别?

我实际测试了一下,
感觉clear()与clearBuffer()区别不大

我感觉到的原理是:两者都会清除在他们之前加载到缓冲区的内容,这意味着网页上不会看到这些内容
而且clear,clearBuffer检测到缓冲区为空的时候会抛出异常
(用out.flush()进行检测的)


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>problem test page</title>
  </head>
  <body>
            <p> 啦啦啦</p>
    <%
        StringBuffer str = new StringBuffer("呵呵");
        out.print(str);
                 //out.flush();
        //out.clear();
                //out.clearBuffer();
         if (response.isCommitted()){
            out.print("TRUE");
        }
        else {
            out.print("FALSE");
        }
    %>
  </body>
</html>

看定义是:clearBuffer()清除缓冲区数据,将数据写到客户端
clear()清除缓冲区数据, 不输出到客户端且刷新缓存时抛出异常
那么真正的区别是什么?clearBuffer定义的效果没有实现?

  • 写回答

2条回答 默认 最新

  • wu鑫 2019-04-01 09:15
    关注

    clear():用来清除输出缓冲区。这种方法不写任何内容到客户机。该方法抛出异常,如果缓冲被刷新。

    "这里是页面输出的内容"

    <%

    out.clear();

    %>

    这样页面不会有任何显示(输出内容被清除了),如果在clear()之前,加入flush(),则会抛出异常:

    java.io.IOException: Error: Attempt to clear a buffer that's already been flushed.

    clearBuffer():清除输出缓冲区。这种方法不写任何内容到客户机.

    "这里是页面输出的内容"

    <%

    out.clearBuffer();

    %>

    这样书写,页面不会有任何显示.如果在clearBuffer()之前加入flush().页面则会显示内容.

    作者:xymyqueen
    来源:CSDN
    原文:https://blog.csdn.net/xymyqueen/article/details/52083426

    评论

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮