Por eso comento en la tercera opción que tienes que hacer un pequeño Servlet de descarga. Es un servlet que atienda a una url
http://tudominio/tuaplicacion/donwload por ejemplo, al que le pasas como parámetro en el request algo que te permita identificar el fichero, estilo
http://tudominio/tuaplicacion/donwload?idFichero=3434, el servlet lo lee del path absoluto donde esté y lo envía por el response. Hay muchos por internet hechos, no es difícil
http://txos.blogspot.com.es/2007/01/...d-servlet.html
Incluso en la segunda opción, es conveniente hacerlo si no limitas las extensiones de los ficheros que se pueden subir. Si simplemente pones el fichero en un sitio de tu proyecto y lo haces accesible a través de una URL, alguien puede subir un fichero de extensión .jsp con código malicioso y hacer que se ejecute simplemente descargándolo.
Se bueno.