激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - java壓縮文件和下載圖片示例

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

2020-06-22 12:00xanlv JAVA教程

這篇文章主要為大家詳細(xì)介紹了java壓縮文件和下載圖片示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

主頁面index.xml

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<%@ 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
只有被壓縮文件足夠大,才能抵消壓縮開銷,有效壓縮。否則,很小的文件壓縮之后的文件大小反而變大

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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目錄下面)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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í)有所幫助,也希望大家多多支持服務(wù)器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美亚洲一级 | 久草成人在线 | 亚洲精品久久久久久 | 成人在线视频免费 | 久久久aa| 欧美囗交 | 国产精品资源手机在线播放 | 久久精品操 | av在线免费观看国产 | 亚洲欧美aⅴ | 激情小视频在线观看 | 欧美日韩观看 | 日韩视频一区二区三区四区 | 午夜精品老牛av一区二区三区 | 欧美成在线视频 | 成人毛片视频在线观看 | 国产午夜精品一区二区三区嫩草 | 一级成人欧美一区在线观看 | 久久精品国产久精国产 | 国产乱xxxx| 国产精品久久久久久久久久久久久久久久 | 国产精品av久久久久久网址 | 国内精品伊人久久 | 欧美性色生活片免费播放 | 奇米影视在线 | 久久精品亚洲精品国产欧美kt∨ | 91精品播放 | 欧美伦交 | 啊哈不要啊| 最新午夜综合福利视频 | 亚洲一区成人在线 | 在线天堂中文在线资源网 | 成人黄色短视频在线观看 | 欧美视频一二三区 | 国产亚洲精品久久久久久久久久 | 国产日韩久久久久69影院 | 女人久久久www免费人成看片 | 92自拍视频 | 中国7777高潮网站 | 黄色电影免费网址 | 高潮激情aaaaa免费看 |