我实际测试了一下,
感觉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定义的效果没有实现?