- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当使用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/
当使用setContentLength方法设置比实际大小更大的响应长度时,为什么容器不自动计算长度? 例如, String s = "hello"; byte[] b = s.getBytes();
根据文档,ServletResponse 接口(interface)的setContentLength(int len) 方法设置响应中内容主体的长度 在 HTTP servlet 中,此方法设置HT
private void downloadAllRelease(HttpServletRequest request, HttpServletResponse response) {
如果在发送包含 zip 文件的 HttpServletResponse 时没有指定 Content-Length header 会怎样? 我做了一些测试,似乎标题默认设置为正确的文件长度。我能确定这总
本文整理了Java中org.apache.xmlrpc.client.XmlRpcHttpTransport.setContentLength()方法的一些代码示例,展示了XmlRpcHttpTran
我是一名优秀的程序员,十分优秀!