이 기사에서는 참조 용 서블릿 파일 다운로드의 특정 코드를 공유합니다. 특정 내용은 다음과 같습니다
파일 디렉토리를 사용자에게 직접 노출시키는 것은 안전하지 않습니다. 따라서 서블릿을 사용해야하며, 이런 식으로 파일은 더 풍부하게 저장됩니다. 파일 시스템에서 검색하거나 데이터베이스의 계산에 의해 생성되거나 다른 이상한 장소에서 검색 할 수 있습니다.
public class downloadservlet 확장 httpservlet {private String contenttype = "application/x-msdownload"; 개인 문자열 enc = "UTF-8"; 개인 문자열 fileroot = ""; / ** * ContentType, enc, fileroot */ public void init (servletconfig config) servletexception {string tempstr = config.getInitParameter ( "contentType"); if (tempStr! = null &&! tempst.equals ( "")) {contentType = tempStr; } tempStr = config.getInitParameter ( "enc"); if (tempStr! = null &&! tempst.equals ( "")) {enc = tempstr; } tempStr = config.getInitParameter ( "fileroot"); if (tempst! = null &&! tempst.equals ( "")) {fileroot = tempstr; }} Protected void doget (httpservletrequest request, httpservletresponse 응답) servletexception, ioexception {string filepath = request.getParameter ( "FilePath"); 문자열 fullFilePath = fileroot + filepath; /*파일 읽기*/ 파일 파일 = 새 파일 (fullFilePath); /*파일이 존재하는 경우*/ if (file.exists ()) {String filename = urlencoder.encode (file.getname (), enc); response.reset (); Response.SetContentType (ContentType); response.addheader ( "Content-Disposition", "첨부 파일; filename =/" " + filename +"/""); int filelength = (int) file.length (); Response.SetContentLength (FilElength); /*파일 길이가 0*/ if (filelength! = 0)보다 큰 경우 {/*입력 스트림 작성*/ inputStream instream = new FileInputStream (file); 바이트 [] buf = 새로운 바이트 [4096]; /*출력 스트림 생성*/ servletoutputStream servletos = response.getOutputStream (); int readlength; while (((readlength = instream.read (buf))! = -1)) {servletos.write (buf, 0, readlength); } instream.close (); servletos.flush (); servletos.close (); }}} web.xml
<Servlet> <Servlet-name> downloadservlet-name> <servlet-class.mstar.servlet.downloadservletservlet-class> <init-param> <param-name> filerootparam-name> <param- value> d :/tempparam-value> init-param> <param-name> nameparam-name> <Param-value> 응용 프로그램/x-msdownloadparam-value> init-param> <init-param> <param-name> encparam-name> <param- value> utf-8param-value >>> init-param> servlet> <servlet-mapping> <servlet-name> 다운로드 revletn>/downurl-pattern> downurl-pattern>
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.