最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java壓縮文件和下載圖片示例

 更新時間:2016年10月11日 11:12:01   作者:xanlv  
這篇文章主要為大家詳細(xì)介紹了java壓縮文件和下載圖片示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了java壓縮文件和下載圖片示例,供大家參考,具體內(nèi)容如下

主頁面index.xml

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<html>
 <head>

  <title>項目的主頁</title>

 </head>

 <body>
  <h2>主頁主頁</h2>
  <h2>湖南長沙</h2>
  <h3>發(fā)布方式一......</h3>
  <img src="images/1.jpg"/><!-- 相對路徑 -->
  <br/>
  <!-- 絕對路徑 -->
  <a href="/helloWeb/gzip">頁面內(nèi)容壓縮演示--gzip</a><br/><br/>
  <a href="down">下載圖片</a><br/><br/>



 </body>
</html>

壓縮文件:GzipServlet.java
只有被壓縮文件足夠大,才能抵消壓縮開銷,有效壓縮。否則,很小的文件壓縮之后的文件大小反而變大

package cn.hncu.servlet;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.zip.GZIPOutputStream;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import 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="vuttyjhgyurc湖南長沙surdivsf安徽蕪湖890-80897也許更長v就會習(xí)慣這樣tvsduvgkjxhvnxzc.nlkcjsdfpeifniuq4ey8f048eyuyli"
        +"skchkxhckxzncnxclkjhasliduhasiduisugdlisgdlkjadhlksjhdlkasjdhasklhdlkjsahashdkskdjhkdjshkldsjhlksjhfkljd";
//   byte src[]=str.getBytes();//使用平臺默認(rèn)編碼(GBK),沒有就使用ISO-8859-1
    byte src[]=str.getBytes("utf-8");

    //后臺向瀏覽器發(fā)的數(shù)據(jù),瀏覽器不認(rèn)識--需要下載,用文本打開是亂碼。所以要設(shè)置協(xié)議
    ByteArrayOutputStream bOut=new ByteArrayOutputStream();//內(nèi)存流
    GZIPOutputStream gOut=new GZIPOutputStream(bOut);
    gOut.write(src);//把src壓到bOut
    gOut.close();//刷緩存
    byte dest[]=bOut.toByteArray();//src==>dest
    //總結(jié):輸出壓縮數(shù)據(jù)時要設(shè)置響應(yīng)頭
    resp.setHeader("Content-Encoding", "gzip");
    //設(shè)置響應(yīng)頭之后,就不用下載,不亂碼
    resp.setContentType("text/html;charset=utf-8");//一定要把str.getByte設(shè)置編碼


    //當(dāng)文件很小時:壓縮無效果,反而累贅(不能抵消壓縮所需要的開銷)...較大文件會被壓小(一般>200k)
    System.out.println("壓縮前的長度:"+src.length);
    System.out.println("壓縮后的長度:"+dest.length);
    //把壓縮之后的數(shù)據(jù)dest刷出去
    OutputStream out=resp.getOutputStream();//resp.getWriter();
//   out.write(src);
    out.write(dest);

  }

}

下載圖片:DownServlet .java(圖片在src目錄下面)

package cn.hncu.servlet;


import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DownServlet extends HttpServlet {

  @Override
  protected void service(HttpServletRequest req, HttpServletResponse resp)
      throws ServletException, IOException {
    //協(xié)議設(shè)置1
    resp.setContentType("application/force-download");//用默認(rèn)下載文件的應(yīng)用程序下載

    String fileName="4.jpg";
    //如果文件名是中文--如:我的圖片.jpg
    //fileName=URLEncoder.encode(fileName,"utf-8");//把fileName編碼一下,如果不編碼,瀏覽器中顯示的文件名會亂碼
    InputStream in=DownServlet.class.getClassLoader().getResourceAsStream(fileName);
    //協(xié)議設(shè)置2
    resp.setHeader("content-Disposition", "attachment;filename=\'"+fileName+"\'");//告訴瀏覽器當(dāng)前下載的文件名


    //DownServlet.class的位置:"D:\apache-tomcat-7.0.30\webapps\helloWeb\WEB-INF\classes\cn\hncu\servlet"
    //圖片所在的當(dāng)前位置:"D:\apache-tomcat-7.0.30\webapps\helloWeb\WEB-INF\classes"
    //FileInputStream fin=new FileInputStream(fileName);//不可行
    OutputStream out=resp.getOutputStream();
    byte buf[]=new 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);
    }
  }


}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Springboot項目監(jiān)聽器失效問題解決

    Springboot項目監(jiān)聽器失效問題解決

    這篇文章主要介紹了Springboot項目監(jiān)聽器失效問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • SpringBoot中Controller參數(shù)與返回值的用法總結(jié)

    SpringBoot中Controller參數(shù)與返回值的用法總結(jié)

    這篇文章主要介紹了SpringBoot中Controller參數(shù)與返回值的用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java多線程之讀寫鎖分離設(shè)計模式

    Java多線程之讀寫鎖分離設(shè)計模式

    這篇文章主要介紹了Java多線程讀寫鎖分離設(shè)計模式,主要利用Java到嗎完成read read 并行化、read write 不允許、write write 不允許幾項任務(wù),需要的朋友可以參考一下
    2021-10-10
  • Java內(nèi)部類的實現(xiàn)原理與可能的內(nèi)存泄漏說明

    Java內(nèi)部類的實現(xiàn)原理與可能的內(nèi)存泄漏說明

    這篇文章主要介紹了Java內(nèi)部類的實現(xiàn)原理與可能的內(nèi)存泄漏說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • Java?輸入輸出?IO?NIO?AIO三兄弟對比分析對比分析

    Java?輸入輸出?IO?NIO?AIO三兄弟對比分析對比分析

    這篇文章主要為大家介紹了Java?輸入輸出?IO?NIO?AIO三兄弟對比分析對比分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 從零實現(xiàn)一個簡單的Spring Bean容器的代碼案例

    從零實現(xiàn)一個簡單的Spring Bean容器的代碼案例

    Spring是一個非常流行的Java?Web開發(fā)框架,它提供了強(qiáng)大的依賴注入、面向切面編程、聲明式事務(wù)管理等功能,為開發(fā)者提供了高效、快速地構(gòu)建Web應(yīng)用程序的工具,在這篇文章中,咱們將一步一步地構(gòu)建一個簡單的SpringBean容器,需要的朋友可以參考下
    2023-06-06
  • SpringBoot中application.properties、application.yaml、application.yml區(qū)別

    SpringBoot中application.properties、application.yaml、applicati

    本文主要介紹了SpringBoot中application.properties、application.yaml、application.yml區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-04-04
  • 關(guān)于@GetMapping和@GetMapping(value=““)的區(qū)別

    關(guān)于@GetMapping和@GetMapping(value=““)的區(qū)別

    這篇文章主要介紹了關(guān)于@GetMapping和@GetMapping(value=““)的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • java常見報錯及解決方案總結(jié)

    java常見報錯及解決方案總結(jié)

    這篇文章主要介紹了Java編程中常見錯誤類型及示例,包括語法錯誤、空指針異常、數(shù)組下標(biāo)越界、類型轉(zhuǎn)換異常、文件未找到異常、除以零異常、非法線程操作異常、方法未定義異常、死鎖和類未找到異常,文中通過代碼將解決方案介紹的非常詳細(xì),需要的朋友可以參考下
    2025-03-03
  • Java中super關(guān)鍵字詳解

    Java中super關(guān)鍵字詳解

    這篇文章主要為大家詳細(xì)介紹了Java中super關(guān)鍵字,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02

最新評論

沽源县| 绵阳市| 宁蒗| 青岛市| 北京市| 金川县| 乳山市| 武川县| 获嘉县| 富蕴县| 岱山县| 东莞市| 原平市| 麻城市| 外汇| 元氏县| 营山县| 郯城县| 东莞市| 通城县| 来凤县| 修水县| 舞阳县| 土默特左旗| 宝应县| 双辽市| 阆中市| 巴彦县| 三原县| 黎川县| 江都市| 金阳县| 定襄县| 东乡县| 盈江县| 班玛县| 漳平市| 吉隆县| 萍乡市| 德昌县| 新源县|