2

在 JBoss 4.2.3.GA 上,我们有一个使用 transfer-encoding:chunked 生成的 JSP 响应。这会阻止我们的 Netscaler 负载均衡器允许 JSP 生成的 HTML 被缓存,因为它认为它是可变内容。

但是如果我们设置了 max-age,那么无论传输编码如何,请求是否都应该被缓存?

我决定尝试让 JSP 以固定长度返回(设置内容长度,以便将传输编码设置为固定)。. 我做了以下测试:

创建了一个 Jboss 4.2.3.GA Web 应用程序,其中包含一个包含大量内容的 test.jsp 文件。我验证了当部署这个从服务器渲染的 JSP 文件时,使用 transfer-encoding:chunked。内容的总大小为 71.00Kb。

我进入 test.jsp 并尝试了各种设置:

response.setContentLength(90000);
response.setBufferSize(90000); 

验证 test.jsp 仍然传输编码:分块。

我还尝试编辑 jboss-4.2.3.GA\server\default\deploy\jboss-web.deployer\server.xml 并设置:

<Connector ... bufferSize="90000" socketBuffer="90000" />

已验证 test.jsp 仍然是 transfer-encoding:chunked。

我在这里做错了什么?如何缓存此内容?

4

1 回答 1

2

问题是,我没有

response.setContentLength(90000); response.setBufferSize(90000);

在页面顶部。一旦我移动它,它就起作用了。

于 2012-04-23T21:29:56.437 回答