Servlets são Multi-thread por default !?
Porque ocorre erro quando estou fazendo downloads simultaneos ?
Código do servlet
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("Servlet Download ");
HttpSession session = request.getSession();
Arquivo arquivo = (Arquivo) session.getAttribute("Arquivo");
session.removeAttribute("Arquivo");
response.setHeader("Content-Disposition", "attachment;filename=\"" + arquivo.getFile().getName() + "\"");
response.setContentLength((int) arquivo.getFile().length());
ServletContext context = super.getServletContext();
response.setContentType(context.getMimeType(arquivo.getFile().getName()));
System.out.println("Mimetype " + context.getMimeType(arquivo.getFile().getName()));
try {
FileInputStream input = new FileInputStream(arquivo.getFile());
ServletOutputStream out = response.getOutputStream();
byte[] buffer = new byte[1024];
int i;
while ((i = input.read(buffer)) != -1) {
out.write(buffer, 0, i);
}
out.flush();
input.close();
out.close();
} catch (IOException err) {
err.printStackTrace();
}
}
Não encontro por ai material sobre o assunto.