es necesario guardar en el servidor para descargarlo?? por que no haces que se guarde solo del lado del cliente, por que por lo que veo solo realizas unos reportes o resumenes y creo que seria lo ideal, aqui te dejo un ejemplo:
esto al inicio de tu jsp
Código:
<%@page contentType="application/vnd.ms-excel"%><%@page contentType="application/vnd.ms-excel"%>
y despues de que generes tu excel (por ejemplo yo lo hago con un bean)
Código:
response.setHeader("Content-Disposition", "attachment; filename=\"vigentes.xls\"");
try{
DataOutput dataOutput = new DataOutputStream(response.getOutputStream());
byte[] bytes = excel.salvar(); //aqui mi bean en lugar de guardar, envia el archivo como un arreglo de bytes
response.setContentLength(bytes.length);
for(int i = 0; i < bytes.length; i++)
dataOutput.writeByte(bytes[i]);
response.getOutputStream().close();
}catch(Exception e){
out.println("No se pudo crear el archivo debido al siguiente error:<br>"+e.toString());
}
ojala te sirva esto... saludos