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

    评论

报告相同问题?

悬赏问题

  • ¥30 基于信创PC发布的QT应用如何跨用户启动后输入中文
  • ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
  • ¥15 远程安装一下vasp
  • ¥15 自己做的代码上传图片时,报错
  • ¥15 Lingo线性规划模型怎么搭建
  • ¥15 关于#python#的问题,请各位专家解答!区间型正向化
  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型
  • ¥15 VB.NET如何绘制倾斜的椭圆