이 기사에는 Java 압축 파일과 참조를 위해 다운로드 된 이미지의 예제가 공유되었습니다. 특정 내용은 다음과 같습니다
메인 페이지 index.xml
<%@ page language = "java"import = "java.util.*"pageencoding = "utf-8"%> <html> <head> <title> 프로젝트의 홈페이지 </title> </head> <h2> 홈페이지 </h2> <H2> Changsha, Hunan </h2> <H3> src = "images/1.jpg"/> <!-상대 경로-> <br/> <!-절대 경로-> href = "/helloweb/gzip"> 페이지 내용 압축 데모-gzip </a> <br/> <br/> <a href = "down"> 다운로드 사진 </a> <br/> </html> </html>
압축 파일 : gzipservlet.java
압축 파일이 충분히 큰 경우에만 압축 오버 헤드가 오프셋되고 압축이 효과적으로 압축 될 수 있습니다. 그렇지 않으면 매우 작은 파일을 압축 한 후 파일 크기가 커집니다.
패키지 cn.hncu.servlet; import java.io.bytearrayoutputStream; import java.io.ioexception; import java.io.outputStream; import java.util.zip.zip.gzipoutputstream; import javax.servlet.servlet.servletexception; import javax.servlet.htpperver; javax.servlet.http.htttp.httpservletrequest; import javax.servlet.http.htttp.httpervletresponse; public class gzipservlet는 httpservlet {@override protected void service (httpservletrequest req, httpervletresp resp) strest {strest repless, ioexemence str = "vuttyjhgyurchunan changsha surdivsfanhui wuhu 890-80897 더 긴 V 가이 tvsduvgkjxhvnxzc.nlkcjsdfpeifniuq4e8f048eyuyli에 익숙해 질 것입니다." +"skchkxhckxzncnxclkjhasliduhasduisuugdlisgdlkjadhlksjhdlkasjdhasklhdlkjsahashdkskdjhkdjshkldsjhfkljd"; // byte src [] = str.getbyts (getbyt); IS-8859-1 바이트 SRC [] = str.getBytes ( "UTF-8")가 없습니다. // 백그라운드의 브라우저로 전송 된 데이터는 브라우저에서 인식되지 않습니다. 따라서 프로토콜 BytearRayoutputStream Bout = New ByTearRayoutputStream (); // Memory Stream gzipoutputStream gant = new GzipoutputStream (Bout)을 설정해야합니다. gout.write (src); // src를 gaout.close (); // 플래시 캐시 바이트 데스트 [] = bout.tobytearray (); // src ==> dest // 요약 : 압축 데이터를 출력 할 때 응답 헤더 resp.setheader ( "컨텐츠-에코 코딩")를 설정해야합니다. // 응답 헤더를 설정 한 후에는 다운로드 할 필요가 없으며 resp.setContentType ( "text/html; charset = utf-8"); // str.getByte를 Encode로 설정해야합니다. // 파일이 매우 작을 때 : 압축이 발생하지 않으면 (압축에 필요한 오버 헤드를 상쇄 할 수 없음) 더 큰 파일은 커질 것입니다. System.out.println ( "압축 전 길이 :"+src.length); System.out.println ( "압축 후 길이 :"+dest.length); // 압축 데이터를 outputStream out = resp. 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; import javax.servlet.servlet.servletexception; import javax.servlet.httpservlet; import; javax.servlet.http.httpervletrequest; import javax.servlet.http.htttp.httpervletrequest; import javax.servlet.http.htttp.htttp.htttp.httpervletresponse; public class downservlet extrends httpservlet void void void void reqons (httppservletrephons, resp)는 servletexception, ioexception {// 프로토콜 세트 1 resp.setcontenttype ( "application/force-download"); // 파일을 기본적으로 다운로드하는 응용 프로그램을 사용하여 string filename = "4.jpg"; // 파일 이름이 중국인 인 경우 : my picture.jpg //filename=urlencoder.encode(filename,"utf-8") ;//encode filename. 인코딩되지 않으면 브라우저에 표시된 파일 이름이 grabled.inputStream in = downservlet.class.getClassLoader (). getResourCeasStream (filename); // 프로토콜 설정 2 resp.SetHeader ( "Content-Disposition", "첨부 파일; filename =/'"+filename+"/'"); // 브라우저에 현재 다운로드 된 파일 이름 //downservlet.class 위치 : "d : /apache-tomcat-7.30/webapps/helloweb/web-inf/cnf. 그림의 "D :/Aapache-tomcat-7.0.30/webapps/helloweb/web-inf/classes"// fileInputStream = new FileInputStream (filename); // 불가능한 출력 스트림 out = resp.GetOutputStream (); 바이트 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을 더 지원하기를 바랍니다.