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()
を使用する必要があるかどうかを教えてもらえますか?サーブレット:response.setContentLength()はダウンロードを遅くします
私はサーブレットでservlet-api-3.1の問題を解決しました。私はサーブレットのresponse.setContetLength()を削除しました。応答時間は、以前のJettyのバージョンで得られたものと一致するようになりました。 – faizal
@faizal助けてくれてうれしい。 – Simon