java之servlet之文件下载

Posted vincent-yuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java之servlet之文件下载相关的知识,希望对你有一定的参考价值。

1.在页面中,可以直接通过超链接来下载:

  a) 如果浏览器能够打开该文件,那么直接在浏览器中显示---不是想要的效果

  b) 任何人都能下载,不能进行权限控制

2.通过servlet来进行下载,在servlet中是通过文件流来下载的。

@WebServlet("/download")
public class DownloadServlet extends HttpServlet
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException 
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("application/octet-stream");
        //解决 以文件形式下载 而不会被浏览器打开    以及中文文件名需要编码
        resp.setHeader("Content-Disposition", "attachment;filename="+URLEncoder.encode("中国", "utf-8")+".txt");
        PrintWriter os = resp.getWriter();
        String path = this.getServletContext().getRealPath("/download");
        Reader is = new BufferedReader(new FileReader(new File(path,"t.txt")));
        int len=0;
        char[] buffer = new char[200];
        while((len=is.read(buffer))!=-1)
            os.print(new String(buffer,0,len));
        
        is.close();
        os.close();
    

 

以上是关于java之servlet之文件下载的主要内容,如果未能解决你的问题,请参考以下文章

Servlet编程专题11之Servlet3.0特性实现文件上传

Java面试之Java Web

Java面试之Java Web

系统运维系列 之实现servlet上传下载文件(java应用)

Servlet 之jsp(上)

Java基础5JavaWeb之简单追踪javax.servlet类库