Bin c'est une bete gestion des headers tout comme PHP le fait. Pour envoyer ton document en téléchargement il suffit de faire une répose à la requete qui est faite sur la servlet et mettre le content/type à celui que tu veux (word, excel, binaire, zip, octet stream). Ensuite il y a un objet stream qui te permet d'envoyer le contenu du fichier directement à ton objet.
Wait je me souviens avoir un tuto sous la main je vais essayer de le retrouver (anglais c ok ?)
Pour l'histoire du fichier, tu peux déclarer un rep tmp dans ton web.xml et l'utiliser pour créer ton fichier temporairement. Contrairement aux EJB, tu peux parfaitement ouvrir des fichiers et ecrire sur le filesystem pour autant que tu aies les droits.
A+
---------------
Just because you feel good does not make you right