E che roba è questa
codice:
response.setContentType("application/octet-stream.pdf");
?
L'header corretto è questo:
codice:
response.setContentType("application/octet-stream; name=\"" + nomeFile + "\"");
response.setCharacterEncoding("UTF-8");
response.addHeader("content-disposition", "attachment; filename=\"" + nomeFile + "\"");
Dove NomeFile è una stringa di testo con il nome del file da inviare (ovvero, il nome che vuoi che venga visto dall'utente al momento del download).
Poi manca tutta la parte di invio del file... devi aprire il file PDF in lettura (FileInputStream), leggerlo byte per byte (a blocchi, possibilmente, di N byte) e spedirlo al client.
Ciao.