远程 Tomcat 可能有一个较小的默认写入缓冲区大小、部分配置了直接缓冲区,或者服务器可能只是有更多的数据想要在请求中返回。
无论如何要查看值是什么,暂时,将以下标记粘贴在底部body 个登录页面 JSP,以及一个损坏的页面。
<% out.println("<p>bufferSize: " + out.getBufferSize() + " remaining: " + out.getRemaining() + " used: " + (out.getBufferSize() - out.getRemaining()) + " autoFlush: " + out.isAutoFlush() + "</p><br>"); %>
您应该会看到如下内容:
bufferSize: 8192 remaining: 1509 used: 6683 autoFlush: true
作为一个潜在的快速修复,查看非工作页面是否会在没有缓冲区的情况下呈现,例如在 JSP 页面顶部粘贴以下标记:
<%@ page buffer="none" %>
如果仍然没有运气,请选择一个较大的数字,例如 8MB(与 8KB),并通过添加:
查看这是否足以让您的页面呈现:
<%@ page buffer="8192kb" %>
如果这样可以解决问题,那么只需注意页面上的 used 缓冲区大小,添加一点并调整,因此:
bufferSize: 8380416 remaining: 8321883 used:58533 autoFlush: true
你可能会侥幸逃脱:
<%@ page buffer="64kb" %>
如果还是不行,我怀疑你的 JSP 中有一个坏循环。
注意:不要将页面缓冲区留给一个愚蠢的数字,因为所有连接之间共享一个池。