この記事では、参照用のJava圧縮ファイルとダウンロードされた画像の例を共有しています。特定のコンテンツは次のとおりです
メインページindex.xml
<%@ page Language = "Java" Import = "Java.util。*" PageEncoding = "Utf-8"%> <html> <head> <title>プロジェクトsrc = "images/1.jpg"/> <! - 相対パス - > <br/> <! - 絶対パス - > <a href = "/helloweb/gzip">ページコンテンツ圧縮デモ</a> <br/> <br/> <a href = ">写真>写真</a> <br/> <br/> <br/> <br/> <br/
圧縮ファイル:gzipservlet.java
圧縮ファイルが十分に大きい場合にのみ、圧縮オーバーセットをオフセットし、圧縮が効果的に圧縮されます。それ以外の場合、非常に小さなファイルの圧縮後のファイルサイズが大きくなります。
パッケージcn.hncu.servlet; Import java.io.bytearrayoutputStream; Import java.io.ioexception; import java.io.outputStream; Import java.util.zip.gzipotputStream; Import javax.servlet.servlet.servletexception; Javax.servlete.htptpt.htptp.tp.htptp.tp.htptsception; javax.servlet.http.httpservletrequest; Import javax.servlet.servlet.htttpservletResponse;パブリッククラスgzipservletはhttpservletを拡張します{@Overrideプロテクトボイドサービス(httpservletrequest req、httpservletresponse redows reresp) str = "vuttyjhgyurchunan changsha surdivsfanhui wuhu 890-80897多分もっと長いvがこのtvsduvgkjxhvnxzzc.nlkcjsdfpeifniuq4ey8f048yuyli" +"skchkxhckxzncncnxclkjhasliduhasduisuugdlisgdlkjadhlksjhdlkasjdhasklhdlkjsahashdkskdjhkdjshkldsjhfkljd"; // byte src ISO-8859-1バイトsrc [] = str.getBytes( "utf-8"); //バックグラウンドでブラウザに送信されたデータは、ブラウザによって認識されません - それをダウンロードする必要があります。したがって、プロトコルbytearrayoutputStream bout = new bytearrayoutputStream(); //メモリストリームgzipoutputStreamガウト= new gzipoutputStream(Bout)を設定する必要があります。 Gout.write(src); // srcを押してGout.close(); // flash cache byte dest [] = bout.tobytearray(); // src ==> dest //概要:圧縮データを出力するとき、応答ヘッダーresp.setheader( "gzip"); //応答ヘッダーを設定した後、ダウンロードする必要はなく、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.outputStream; Import java.net.urlencoder; import javax.servlet.servlet.servletexception; Import javax.servlet.http.httpservlet; javax.servlet.http.httpservletrequest; Import javax.servlet.http.httpservletrequest; Import javax.servlet.httpservletResponse; public class downServlets extends httpservlete(@Overrideプロテットボイドサービス(Httpservleteptepepte) rep)servletexception、ioexception {// protocol set 1 resp.setcontenttype( "application/force-download"); //デフォルトでファイルをダウンロードするアプリケーションを使用して、文字列filename = "4.jpg"をダウンロードします。 //ファイル名が中国語の場合 - 私の絵のように:my picture.jpg //filename=urlencoder.encode(filename,"utf-8");//encode filename。エンコードされていない場合、ブラウザに表示されるファイル名はarbled.inputStream in = downServlet.class.getClassLoader()。getResourceAsStream(filename); // Protocol Setting 2 Resp.Setheader( "Content-Disposition"、 "Attachment; filename =/'"+fileName+"/'"); //現在のダウンロードされたファイル名をブラウザに伝えます写真の現在の場所: "d:/apache-tomcat-7.0.30/webapps/helloweb/web-inf/classes" // fileinputstream fin = new fileinputStream(filename); // Impossible outputStream out = resp.getputStream();バイト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); }}}上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。