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

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog