首页 > 其他 > 详细

通过默认的Servlet和自定义的Servlet实现下载功能

时间:2020-04-30 10:43:48      阅读:69      评论:0      收藏:0      [点我收藏+]
 1 package com.yxfyg.servlet;
 2 
 3 import java.io.FileInputStream;
 4 import java.io.IOException;
 5 import java.io.InputStream;
 6 import java.io.OutputStream;
 7 
 8 import javax.servlet.ServletContext;
 9 import javax.servlet.ServletException;
10 import javax.servlet.ServletOutputStream;
11 import javax.servlet.http.HttpServlet;
12 import javax.servlet.http.HttpServletRequest;
13 import javax.servlet.http.HttpServletResponse;
14 
15 import org.apache.tomcat.jni.File;
16 
17 public class Download extends HttpServlet{
18     
19     @Override
20     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
21         
22         String filename = req.getParameter("filename");
23         OutputStream os = resp.getOutputStream();
24 //      attachment;filename=附件名(注意附件名要带后缀名,不然下载了打不开)
25         resp.setHeader("Content-Disposition", "attachment;filename="+filename);
26         ServletContext sc = getServletContext();
27         String path = sc.getRealPath("download/");
28         InputStream is = new FileInputStream(path + filename);
29 //        注意不要使用相对路径,并不能找到
30 //        InputStream is = new FileInputStream("/download/" + filename);
31 //        InputStream is = new FileInputStream("download/" + filename);
32         int b = 0;
33         while((b = is.read()) != -1) {
34             os.write(b);
35         }
36         os.flush();
37         is.close();
38         os.close();
39     }
40     
41     @Override
42     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
43         doGet(req, resp);
44     }
45 
46 }
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Download</title>
</head>
<body>
    <div>
        <p>利用Tomcat自带的DefaultServlet提供下载</p>
        <a href="download/aa.jpg">aa.jpg</a><br /> <a href="download/bb.txt">bb.txt</a><br />
        <a href="download/cc.rar">cc.rar</a><br />
    </div>
    <div>
        <p>利用自定义的Servlet提供下载</p>
        <a href="Download?filename=aa.jpg">aa.jpg</a><br /> 
        <a href="Download?filename=bb.txt">bb.txt</a><br />
        <a href="Download?filename=cc.rar">cc.rar</a><br />
    </div>
</body>
</html>

 

通过默认的Servlet和自定义的Servlet实现下载功能

原文:https://www.cnblogs.com/yxfyg/p/12806993.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!