La estructura del proyecto WebApp es la siguiente:
El contenido del archivo download.html es el siguiente:
<! DOCTYPE HTML> <html> <fead> <meta charset = "utf-8"> <title> Inserte el título aquí </title> </head> <body> <h1> Descarga de recursos: </h1> <p> cuando simplemente use la etiqueta, solo los archivos que no pueden ser desplegados por el navegador, se descargará, de lo contrario serán analizados directamente por el browser. </p> <a href = "/web/resumen/a.mp3" rel = "externo nofollow"> a.mp3 </a> <br> <a href = "/web/resource/a.exe" rel = "nofollow" externo "> a.exe </a> <br> <a href ="/web/recurse/a.txt "ralio href = "/web/resource/a.xlsx" rel = "externo nofollow"> a.xlsx </a> <br> <a href = "/web/resource/a.png" rel = "nofollow externo"> a.png </a> <br> <p> Entonces, usando la etiqueta combinada con el servlet que la respuesta para instruir a los browns no se descarga a estos archivos para que estos archivos sean parados para que sean parados para que sean un parse para que los archivos sean href = "/web/descargar? FileName = a.mp3" rel = "externo nofollow"> a.mp3 </a> <br> <a href = "/web/descargar? FileName = a.exe" rel = "nofollow externo"> a.exe </a> <br> <a href = "/web/descargar? FileName? href = "/web/descargar? FileName = a.xlsx" rel = "externo nofollow"> a.xlsx </a> <br> <a href = "/web/download? FileName = a.png" rel = "nofollow externo"> a.png </a> <br> </body> </html>
El contenido del archivo Servlet-download.java descargado es el siguiente:
paquete com.download.servlet; import java.io.fileinputstream; import java.io.ioexception; import java.io.inputstream; import javax.servlet.servletException; import javax.servlet.servletutstream; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletRequest; import javax.servlet.http.httpservletRequest; import javax.servlet.http.httpservletResponse;/** * Servlet Download Class Download */public Public Extiense Httpservlet {privado final de serialversionUid = 1l; Doget vacío protegido (HTTPServletRequest, respuesta httpservletResponse) arroja servletException, ioexception {// 1. Obtenga el nombre del archivo solicitado para descargar String filename = request.getParameter ("FileName"); // 2. Obtenga la ruta del sistema de archivos de la cadena de archivo filePath = request.getServletContext (). GetRealPath ("Resource/"+FileName); // 3. Establezca el encabezado de respuesta para solicitar al navegador que no analice los datos del archivo de respuesta, sino que lo analice en forma de archivo adjunto, es decir, la respuesta de la función de descarga.setContentType (this.getServletContext (). GetMimetype (FileName)); respuesta.setheader ("Disposición de contenido", "Adjunto; FileName ="+FileName); // 4. Lea la transmisión de entrada de archivo y la transmisión de salida de respuesta, y emita los datos al cliente inputStream in = new FileInputStream (FilePath); ServLetOutputStream Out = Response.getOutputStream (); int len = 0; byte [] buf = nuevo byte [1024]; while ((len = in.read (buf))! =-1) {out.write (buf, 0, len); } in.close (); } protegido void dopost (httpservletRequest solicitud, respuesta httpservletreSponse) lanza ServletException, ioexception {doget (solicitud, respuesta); }}Ingrese http: // localhost: 8080/downloadservlet/download.html en la barra de direcciones del navegador.
La explicación de ejemplo anterior de la función de descarga de archivos proporcionada por la respuesta web de Java es todo el contenido compartido por el editor. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.