gpt4 book ai didi

java - setContentLength 设置为高

转载 作者:行者123 更新时间:2023-12-02 05:34:53 24 4
gpt4 key购买 nike

当使用setContentLength方法设置比实际大小更大的响应长度时,为什么容器不自动计算长度?

例如,

String s = "hello";
byte[] b = s.getBytes();

response.setContentLength(100);
response.getOutputStream().write(b);
response.flush();

当我点击 servlet 时,加载页面大约需要半分钟,这是因为内容长度 header 的原因吗?

什么情况下需要这样的方法呢?为什么不能让容器自己计算响应的长度?

最佳答案

如果您想返回大量内容,加载完整响应并立即发送通常是不切实际的,而是分块加载并发送。由于长度是作为响应开头的一部分发送的,因此容器以后无法更改它。

在这种情况下,您告诉容器您的响应是 100 字节,您发送前 5 个字节(这会触发 header “Content-Length: 100”也被发送),因此现在接收者将期望另外 95 个字节.

现在,另一方面,假设您的内容为 10GB,您不会希望首先将所有内容加载到内存中,以便容器计算大小。

关于java - setContentLength 设置为高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25074359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com