Artikel ini telah berbagi contoh file terkompresi Java dan gambar yang diunduh untuk referensi Anda. Konten spesifiknya adalah sebagai berikut
Indeks halaman utama.xml
<%@ page language = "java" import = "java.util.*" pageenCoding = "utf-8"%> <html> <head> <title> homepage proyek </iteme> </head> <hody> <h2> homepage </h2> <h2> Changsa, hunan </h2> <h3 h3. src="images/1.jpg"/><!-- Relative path--> <br/> <!-- Absolute path--> <a href="/helloWeb/gzip">Page content compression demonstration--gzip</a><br/><br/> <a href="down">Download pictures</a><br/><br/> </body></html>
File terkompresi: gzipservlet.java
Hanya ketika file terkompresi cukup besar, overhead kompresi dapat diimbangi dan kompresi secara efektif dikompresi. Kalau tidak, ukuran file setelah kompresi file yang sangat kecil akan menjadi lebih besar.
Paket cn.hncu.servlet; impor java.io.bytearrayoutputStream; import java.io.ioexception; import java.io.outputstream; javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class GzipServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String str = "vuttyjhgyurchunan Changsha surdivsfanhui wuhu 890-80897 Mungkin lebih lama akan terbiasa dengan tvsduvgkjxhvnxzc.nlkcjsdfpeifniuq4ey8f048f048 ini" +"skchkxhckxzncnxclkjhasliduhasduisuugdlisgdlkjadhlksjhdlkasjdhasklhdlkjsahashDKSkdjHkdjkldsjhfkljd"; // byte src [] = str.Ept. (str. =) ifbby (// byte src [] = str. = str.strgety (// byte src [] = str.Ept. tidak ada iso-8859-1 byte src [] = str.getbytes ("utf-8"); // Data yang dikirim ke browser di latar belakang tidak dikenali oleh browser-perlu mengunduhnya, dan dibukanya untuk membukanya dengan teks. Oleh karena itu, Anda perlu mengatur protokol ByTeArrayOutputStream Bout = new ByTeArrayOutputStream (); // memori GzipOutputStream gout = GZIPOutputStream baru (Bout); gOut.write(src);//Press src to bOut gOut.close();//Flash cache byte dest[]=bOut.toByteArray();//src==>dest //Summary: When outputting compressed data, you need to set the response header resp.setHeader("Content-Encoding", "gzip"); // Setelah menetapkan header respons, Anda tidak perlu mengunduhnya, dan jangan resp.setContentType yang kacau ("Teks/html; charset = utf-8"); // Pastikan untuk mengatur str.getbyte untuk mengkode // ketika file yang sangat kecil: Kompresi tidak ada efeknya, itu akan menjadi tidak rumit (tidak dapat mengimbangi overhead yang diperlukan untuk kompresi): Kompresi tidak ada efeknya, itu akan menjadi rumit (tidak dapat mengimbangi overhead yang diperlukan untuk kompresi) .. System.out.println ("Panjang sebelum kompresi:"+src.length); System.out.println ("Panjang Setelah Kompresi:"+Dest.Length); // Geser data terkompresi ke Dest OutputStream out = resp.getoutputStream (); // resp.getWriter (); // out.write (src); out.write (dest); }}Unduh gambar: Downservlet .java (gambar di bawah direktori SRC)
Paket cn.hncu.servlet; import java.io.ioException; import java.io.inputStream; import java.io.outputStream; import java.net.urlencoder; impor javax.servlet.servlet.servletException; impor javax.servlet.htp.servlet javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletrequest; HttpservletResponse resp) melempar servletException, ioException {// Protocol Set 1 resp.setContentType ("Aplikasi/force-download"); // Gunakan aplikasi yang mengunduh file secara default untuk mengunduh string filename = "4.jpg"; // Jika nama file adalah bahasa Cina-such as: picture.jpg //filename=urlencoder.encode(filename ,"utf-8"///encode nama nama. Jika tidak dikodekan, nama file yang ditampilkan di browser akan dikocok. InputStream in = downservlet.class.getClassLoader (). GetResourceAsstream (nama file); //Protocol setting 2 resp.setHeader("content-Disposition", "attachment;filename=/'"+fileName+"/'");//Tell the browser the current downloaded file name //DownServlet.class location: "D:/apache-tomcat-7.0.30/webapps/helloWeb/WEB-INF/classes/cn/hncu/servlet" //The current location dari gambar: "D: /APACHE-TOMCAT-7.0.30/webapps/Helloweb/web-intrip/classses" // FileInputStream fin = FileInputStream baru (nama file); // tidak mungkin outputStream out = resp.getoutputStream (); byte buf [] = byte baru [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); }}} Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.