تشترك هذه المقالة في أمثلة على ملفات Java المضغوطة والصور التي تم تنزيلها للرجوع إليها. المحتوى المحدد كما يلي
الصفحة الرئيسية index.xml
<٪@ page language = "java" import = "java.util. src = "Images/1.jpg"/> <!-المسار النسبي-> <br/> <!-المسار المطلق-> <a href = "/helloweb/gzip"> عرض ضغط محتوى الصفحة-gzip </a> <br/> <br/>
ملف مضغوط: gzipservlet.java
فقط عندما يكون الملف المضغوط كبيرًا بما يكفي ، يمكن تعويض النفقات العامة للضغط ويتم ضغط الضغط بشكل فعال. خلاف ذلك ، فإن حجم الملف بعد ضغط ملف صغير جدًا سيصبح أكبر.
package cn.hncu.servlet ؛ استيراد java.io.bytearrayoutputstream ؛ استيراد java.io.ioException ؛ استيراد java.io.outputstream ؛ استيراد java.util.zip.gzipoutputstream ؛ استيراد javax.servlet.servlet javax.servlet.http.httpservletrequest ؛ استيراد javax.servlet.http.httpservletrespons str = "vuttyjhghyurchunan changsha surdivsfanhui wuhu 890-80897 ربما يعتاد V Long V على هذا tvsduvgkjxhvnxzc.nlkcjsdfpeifniuq4y8f048eyuyli" +"skchkxhckxzncnxclkjhasliduhasduisuugdlisgdlkjadhlksjhdlkasjdhasklhdlkjsahashdkskdjhkdjhkdjshkldsjhfkljd" ؛ لا يوجد ISO-8859-1 BYTE SRC [] = str.getBytes ("UTF-8") ؛ // لم يتم التعرف على البيانات المرسلة إلى المتصفح في الخلفية من قبل المتصفح-على الإطلاق لتنزيله ، وهي مشوهة لفتحه بالنص. لذلك ، تحتاج إلى تعيين بروتوكول bytearrayoutputstream bout = جديد bytearrayoutputstream () ؛ // memory GzipoutputStream Gout = gzipoutputstream جديد (bout) ؛ Gout.write (src) ؛ // اضغط على src to bout gout.close () ؛ // flash cache byte dest [] = bout.tobytearray () ؛ // src ==> dest // summary: عند إخراج البيانات المضغوطة ، تحتاج إلى تعيين respreser reveler revers ("المحتوى" ، "Gzip" ؛ // بعد تعيين رأس الاستجابة ، لا تحتاج إلى تنزيله ، ولا تشوه Resp.SetContentType ("Text/HTML ؛ Charset = UTF-8") ؛ System.out.println ("الطول قبل الضغط:"+src.length) ؛ System.out.println ("الطول بعد الضغط:"+dest.length) ؛ // انتقد البيانات المضغوطة إلى DestoreStream Out = resp.getOutputStream () ؛ // resp.getWriter () ؛ // out.write (src) ؛ out.write (dest) ؛ }}قم بتنزيل الصورة: Downservlet .java (الصورة تحت دليل SRC)
package cn.hncu.servlet ؛ استيراد java.io.ioException ؛ استيراد java.io.inputstream ؛ استيراد java.io.outputstream ؛ import java.net.urlencoder ؛ import javax.servlet.servlet.servletexception ؛ import javax.servlet.http.htttpserver javax.servlet.http.httpservletrequest ؛ استيراد javax.servlet.http.httpletrequest ؛ استيراد javax.servlet.http.httpletrespons RESP) يلقي servletexception ، ioException {// set protocol set 1 resp.setContentType ("Application/Force-Download") ؛ // استخدم التطبيق الذي يقوم بتنزيل الملف افتراضيًا لتنزيل اسم Filename = "4.jpg" ؛ // إذا كان اسم الملف صينيًا-such مثل: my picture.jpg //filename=urlencoder.encode(filename ،"utf-8") ؛//encode filename. إذا لم يتم ترميزها ، فسيتم growmbly.inputStream في = downservlet.class.class.getClassloader (). getResourCeasStream (اسم الملف) ؛ // إعداد بروتوكول 2 resp.setheader ("محتوى disposition" ، "المرفق ؛ اسم الملف =/"+اسم الملف+"/'") موقع الصورة: "d: /apache-tomcat-7.0.30/webapps/helloweb/web-inf/classes" // fileInputStream fin = new FileInputStream (filename) ؛ // outputstream out out = resp.getoutream () ؛ بايت بوف [] = بايت جديد [512] ؛ int len = 0 ؛ // بينما ((len = fin.read (buf))! =-1) {// out.write (buf ، 0 ، len) ؛ //} بينما ((len = in.read (buf))! =-1) {out.write (buf ، 0 ، len) ؛ }}} ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.