В этой статье есть общие примеры сжатых файлов Java и загруженных изображений для вашей ссылки. Конкретный контент заключается в следующем
Главная страница index.xml
<%@ page language = "java" import = "java.util.*" pageencoding = "utf-8"%> <html> <head> <title> Homepage Project </title> </Head> <body> <h2> Домашняя страница </h2> <h2> Чанша, Хунан </h2> <h3>. src = "Images/1.jpg"/> <!-относительный путь-> <br/> <!-Абсолютный путь-> <a href = "/helloweb/gzip"> Демонстрация сжатия содержимого страницы-gzip </a> <br/> <br/> <a href = "down"> Загрузить Picture </a> <br/ <br/> </href = "down"> picture </a> <br/ <br/> </href = "down"> </a> <br/ <br/> </href = "> down"> </a> <br/ <br/> </href = "> Down"> </a> <br/ <br/> </href = "down"
Сжатый файл: gzipservlet.java
Только когда сжатый файл достаточно большой, может быть смещена накладные расходы сжатия, а сжатие эффективно сжимается. В противном случае размер файла после сжатия очень маленького файла станет больше.
Пакет cn.hncu.servlet; import java.io.bytearrayoutputstream; import java.io.ioexception; import java.io.outputstream; import java.util.zip.gzipoutputstream; importm.servlet.servlet.servletexception; импорт. javax.servlet.http.httpservlectrequest; import javax.servlet.http.httpservletresponse; открытый класс Gzipservlet расширяет httpservlet {@override protected void service (httpservletrequest rreq, httpsperser respervess respson str = "vuttyjhgyjurchunan Changsha surdivsfanhui wuhu 890-80897 Возможно, дольше V привыкнет к этому TVSduvgkjxhvnxzc.nlkcjsdfpeifniuq4ey8f048eyuyli" +"skchkxhckxzncnxclkjhasliduhasduisuugdlisgdlkjadhlksjhdlkasjdhasklhdlkjsahashdkskdjhkdjshkldsjhfkljd"; // byte src [] = str.getb Не существует ISO-8859-1 BYTE SRC [] = str.getBytes ("UTF-8"); // Данные, отправленные в браузер в фоновом режиме, не распознаются браузером-необходимо загрузить его, и они искажены, чтобы открыть его с текстом. Следовательно, вам необходимо установить протокол BytearrayOutputStream bout = new BytearRayoutputStream (); // Поток памяти GzipoutputStream Gout = new GzipoutputStream (BOUT); gout.write (src); // Нажмите src to bet gout.close (); // кэш-кэш-флэш-кэш byte dest [] = bout.tobytearray (); // src ==> dest // rummary: при выводе сжатых данных вам нужно установить заголовок ответа. // После установки заголовка ответа вам не нужно его загружать и не искажать Resp.SetContentType («Text/html; charset = utf-8"); // Обязательно установите str.getbyte для кодирования //, когда файл очень мал: компресс не имеет эффекта, он будет громоздким (обычно не может быть компенсация). System.out.println («Длина перед сжатием:»+src.length); System.out.println («Длина после сжатия:»+dest.length); // провести сжатые данные в dest outputStream out = resp.getOutputStream (); // resp.getWriter (); // out.write (src); out.write (dest); }}Загрузите картинку: Downservlet .java (изображение находится под каталогом SRC)
Пакет cn.hncu.servlet; import java.io.ioexception; import java.io.inputstream; import java.io.outputstream; import java.net.urlencoder; импорт javax.servlet.servlet.servletexcept javax.servlet.http.httpservlectrequest; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletrespons RESP) Throws ServletException, IOException {// set protocol set 1 resp.setContentType ("Приложение/Force-Download"); // Использование приложения, которое загружает файл по умолчанию, чтобы загрузить string fileName = "4.jpg"; // Если имя файла является китайским-то же самое как: my picture.jpg //filename=urlencoder.encode(filename,"utf-8");//encode fileName. Если не кодируется, имя файла, отображаемое в браузере, будет искажено. INPUTSTREAM IN = DownServlet.class.getClassLoader (). GetResourCeasStream (fileName); // Установка протокола 2 Resp.SetheAder ("Content-Disposition", "ATTHAMENT; FILENAME =/'"+FILENAME+"/'"); // Расскажите браузеру текущее название файла///downservlet.class Текущее местоположение изображения: «d: /apache-tomcat-7.0.30/webapps/helloweb/web-inf/classes» // fileInputStream FIN = new FileInputStream (FileName); // невозможно outputStream out = resp.getOutputStream (); byte buf [] = новый байт [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); }}} Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.