private void downloadAllRelease(HttpServletRequest request,
HttpServletResponse response) {
LoginToken tok=getToken(request, response);
int size = 0;
try {
ArrayList<Release> releases = manager.getReleases(tok.getUsername);
ZipOutputStream out = new ZipOutputStream(response.getOutputStream());
for (int i=0; i<releases.size(); i++) {
size += releases.get(i).getFile().length;
out.putNextEntry(new ZipEntry(releases.get(i).getFilename()));
out.write(releases.get(i).getFile());
out.closeEntry();
}
response.setContentLength(size);
response.setContentType("application/force-download");
response.setHeader("Content-Disposition","attachment;filename=release.zip");
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
response.setContentLength()
重新下载下载速度缓慢。
如果我不使用它或将其放在out.close()
之后,一切仍然正常,但下载速度更快。
有人可以解释我为什么,如果有必要使用response.setContentLength()
?Servlet:response.setContentLength()减慢下载速度
您的问题解决了我在Jetty 9中使用servlet-api-3.1时遇到的一个问题。我删除了servlet中的response.setContetLength();现在的响应时间与我之前使用Jetty版本获得的响应时间相匹配。 – faizal 2014-05-17 07:49:47
@faizal很高兴能有所帮助。 – Simon 2014-05-18 08:40:30