当jsp:include包含的jsp出错时,其flush对网页输出的影响

flush 属性


顾名思义, flush 指示在读入包含内容之前是否清空任何现有的缓冲区。JSP 1.1 中需要 flush 属性,因此,如果代码中不用它,会得到一个错误。但是,在 JSP 1.2 中, flush 属性缺省为 false。由于清空大多数时候不是一个重要的问题,因此,我的建议是:对于 JSP 1.1,将 flush 设置为 true;而对于 JSP 1.2 及更高版本,将其设置为关闭。
以上节取自JSP 最佳实践: 用 jsp:include 控制动态内容。对flush属性做个记录


但这里要谈的问题并不是关于flush的定义,只是谈一个现像,这个是在弄javabean的时候碰到的一个问题。比

如执行如下jsp标签:
<jsp:include page="a.jsp" flush="true"></jsp:include>
当a.jsp中含有错误的时候,如果把flush设成了true,网页的输出并没有完就结束了,也就是说只输出到include前的一行html代码,后面就没有再输出,所以查看源代码是看不到include后面的内容的,html也不是完整的,至少看不到</body></html>。

如果把flush设为false则会看到完整的关于a.jsp错误的抛错信息。

所以从使用上来说,设成false出错的时候可以看到错误信息,应该会更好,而设成true的话,只会显示不完全的网页,不注意的就容易忽略问题。

不过还是有一点疑问,那为什么设成true的时候,当a.jsp网页出现错误的时候就不会输出错误信息,而设成false的时候就会输出呢!这个问题肯定在tomcat的源代码里找到答案,不过懒得去研究了,毕竟不是很紧要的事情。既然tomcat这样设定,那就按这个设定来就好了,并不影响使用。

原帖地址:http://sai5d.blog.163.com/blog/static/62225483201062102323227/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值