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/