2

Oracle 网站上的一些文档(http://docs.oracle.com/cd/A97688_16/generic.903/bp/j2ee.htm,3.1.12 Disable JSP Page Buffer If Not Used)说:

如果您没有使用任何需要缓冲的 JSP 功能,您可以禁用它以提高性能;创建缓冲区时不会使用内存,输出可以直接到浏览器。您可以使用以下指令禁用缓冲:

<%@ page buffer="none" %>

但是,我还没有找到任何类型的文档来说明究竟什么是“需要缓冲的 JSP 功能”。我通常了解在什么情况下减少或增加缓冲区可能会或可能不会有助于提高性能,但我不知道什么样的功能会“需要”缓冲。

在什么情况下应该关闭缓冲,和/或在什么情况下不应该关闭缓冲?

4

1 回答 1

1

实际上,我只是有一个“呃”的时刻。您可以在 JSP 中执行一些操作来处理随响应返回的标头,例如response.setHeader(...)<jsp:forward />. 这些显然必须始终发生在响应提交和数据开始流向客户端之前。如果您禁用缓冲,您将永远无法设置标头或使用转发标记,这可能是可取的,也可能是不可取的,因为数据将立即开始流向客户端。我不知道为什么我没有想到这一点...

基本上它归结为性能是否比失去设置标题或使用转发标签的能力更重要。如果是,您需要禁用缓冲。如果能够设置标头或使用转发标记很重要,则您希望启用缓冲。

如果有人可以在接下来的两天内纠正我或发布更好的答案,我会很乐意接受它作为答案。

于 2013-02-01T03:46:11.527 回答