为了账号安全,请及时绑定邮箱和手机立即绑定

out对象方法

flush将缓冲区内容输出到客户端,这里的缓冲区是缓冲什么的?clear报错,clearbuffer不报错这是为什么?原理是什么

正在回答

4 回答

clearBuffer():该方法用于清除缓冲区里的数据,并且把数据写到客户端,在缓冲区的数据为空的时候,那么似乎也这个方法将会产生IOException错误。

 clear():该方法用于清除缓冲区里的数据,但不把数据写到客户端,在缓冲区的数据为空的时候,那么似乎也这个方法将会产生IOException错误,所以一般要使用try……catch……块包住。


0 回复 有任何疑惑可以回复我~
#1

czd_123

clearBuffer不会把数据写到客户端
2016-11-03 回复 有任何疑惑可以回复我~

clear()是删除这个方法前面的缓冲区,如果前面有一个flush()会和flush()方法冲突,又要删除缓冲区内容又要输出缓冲区内容,矛盾,而clearBuffer()是删除flush()到clearBuffer()之间的缓冲区内容所以不会发送异常,因为之间要么有缓冲区内容要么null;

0 回复 有任何疑惑可以回复我~
<%out.println("窗前明月光</br>"); %>
<%out.println("疑是地上霜</br>"); %>
<%out.println("举头望明月</br>"); %>
<%out.println("低头思故乡</br>"); %>
<%out.flush(); %>
<%=out.getBufferSize() %>
<%=out.getRemaining() %>
<%out.println("窗前明月光</br>"); %>
<%out.println("疑是地上霜</br>"); %>
<%out.println("举头望明月</br>"); %>
<%out.println("低头思故乡</br>"); %>
<%out.clear(); %>
<%=out.getBufferSize() %>
<%=out.getRemaining() %>

这两段代码执行后,后者前面的诗句不输出,但后面剩余缓冲区大小一样。说明,flush就是输出并清空缓冲区,clear直接清空缓冲区

0 回复 有任何疑惑可以回复我~
#1

我是大图图 提问者

但是clear和clearbuffer到底区别在那,为什么会一个有异常一个没有。
2015-09-10 回复 有任何疑惑可以回复我~

不用flush也能显示内容,难道每段输出有个默认的flush?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JAVA遇见HTML——JSP篇
  • 参与学习       248282    人
  • 解答问题       3071    个

Java Web入门级教程JSP,带你轻松的学习JSP基础知识

进入课程

out对象方法

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信