Este artículo ha compartido ejemplos de archivos comprimidos Java e imágenes descargadas para su referencia. El contenido específico es el siguiente
Página principal index.xml
<%@ page lenguaje = "java" import = "java.util.*" pageEncoding = "utf-8"%> <html> <foad> <title> La página de inicio del proyecto </title> </toble> <body> <h2> homepage </h2> <h2> Changsha, hunan </h2> <h H3> publicar método ... </h3> <img src = "Images/1.jpg"/> <!-Path Relative-> <br/> <!-Absolute Path-> <a href = "/helloweb/gzip"> Page Content Compression Demossion-Gzip </a> <br/> <br/> <a href = "abajo"> Descargar imágenes </a> <br/> <br/> </body> </html>
Archivo comprimido: gzipservlet.java
Solo cuando el archivo comprimido es lo suficientemente grande se puede compensar la sobrecarga de compresión y la compresión se comprime de manera efectiva. De lo contrario, el tamaño del archivo después de la compresión de un archivo muy pequeño se hará más grande.
paquete cn.hncu.servlet; import java.io.bytearrayOutputStream; import java.io.ioException; import java.io.outputStream; import java.util.zip.gzipoutputStream; import javax.servlet.servlet.servletException; import javax.servlet.http.htttttttttttpser javax.servlet.http.httPservletRequest; import javax.servlet.http.httpServletResponse; public class gzipServlet extiende httpservlet {@Override Servicio voides protegido (httpServletRequest req, httpServletResponse Resp) ServletException, IIOCECTECT str = "vuttyjhgyurchunan changsha surdivsfanhui wuhu 890-80897 Tal vez más V se acostumbrará a este TVSDUVGKJXHVNXZC.NLKCJSDFPEIFNIUQ4EY8F048EYUYLI" +"skchkxhckxzncnxclkjhasliduhasduisuugdlisgdlkjadhlksjhdlkasjdhasklhdlkjsahashdkskdjhkdjshkldsjhfkljd"; // byte src [] = str.getBytes no ISO-8859-1 byte src [] = str.getbytes ("utf-8"); // Los datos enviados al navegador en segundo plano no son reconocidos por el navegador, se necesita descargarlos y está confuso de abrirlos con texto. Por lo tanto, debe establecer el protocolo bytearRayOutputStream BOUT = new ByTearRaReOutputStream (); // Memory Stream GzIPoutputStream Gout = new GZIPoutputStream (BOUT); gout.write (src); // presione src para ver gout.close (); // flash cache byte dest [] = bout.tobytearray (); // src ==> dest // sumario: al emitir datos comprimidos, debe establecer el receptor del encabezado de respuesta resp. // Después de establecer el encabezado de respuesta, no necesita descargarlo, y no se vaya a reembolsar resp.setContentType ("text/html; charset = utf-8"); // asegúrese de establecer str.getByte para codificar // Cuando el archivo sea muy pequeño: la compresión no tiene efecto, será CumbernEx (no se puede compensar el gasto exigido para la compresión). Los archivos más grandes se verán comprimidos (por lo general no tendrá efecto). System.out.println ("Longitud antes de la compresión:"+src.length); System.out.println ("Longitud después de la compresión:"+dest.length); // deslice los datos comprimidos a Dest outputStream out = resp.getOutputStream (); // resp.getwriter (); // out.write (src); out.write (dest); }}Descargue la imagen: Downservlet .java (la imagen está debajo del directorio SRC)
paquete cn.hncu.servlet; import java.io.ioexception; import java.io.inputstream; import java.io.outputstream; import java.net.urlencoder; import javax.servlet.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletRequest; import javax.servlet.http.httpservletRequest; import javax.servlet.http.httpServletResponse; public class downservlet extiende htttttPservlet {@Override protegido void service (httpServlEd req, httPservlet {@Override Protected Void Service (httpServlEd Req, HTTPservlet HtPservlet resp) lanza ServletException, IOException {// Protocol Set 1 Resp.SetContentType ("Application/Force-Download"); // Use la aplicación que descarga el archivo de forma predeterminada para descargar String filename = "4.jpg"; // Si el nombre del archivo es chino, como: mi imagen.jpg //filename=urlencoder.encode(filename,"utf-8") ;//encode filename. Si no está codificado, el nombre del archivo que se muestra en el navegador estará confundido. // configuración de protocolo 2 resp.setheader ("content-disisposition", "adjunta; filename =/'"+filename+"/'"); // dígale al navegador el nombre de archivo descargado actual //downservlet.class ubicación: "d: /apache-tomcat-7.0.30/webs/helloweb/weBiBinf/classes/cn/cn/cn/cncn Ubicación de la imagen: "D: /apache-Tomcat-7.0.30/webapps/helloweb/web-inf/classes" // fileInputStream fine = new FileInputStream (nombre de archivo); // imposible outputStream out = resp.getOutputStream (); byte buf [] = nuevo byte [512]; int len = 0; // while ((len = fin.read (buf))! =-1) {// out.write (buf, 0, len); //} while ((len = in.read (buf))! =-1) {out.write (buf, 0, len); }}} Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.