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