2021-04-21 08:34  阅读(126)
文章分类:Servlet 简单教程 文章标签:Servlet
©  原文作者:一点教程 原文地址:http://www.yiidian.com/servlet/

要从服务器下载文件,请参见下面的简单示例。假设您要下载的D盘一个文件,需要创建一个程序来下载该文件。

1 准备下载的文件

202104210831112_1.png

文件所在目录和名称根据您的情况来定。

2 编写index.jsp

index.jsp用于点击下载链接:

    
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>一点教程网-使用Servlet下载文件</title>
    </head>
    <body>
    <h1>使用Servlet下载文件</h1>
    <a href="Download">点击下载</a>
    </body>
    </html>

3 编写DownloadServlet

DownloadServlet用于完成核心下载逻辑:

    
    import com.oreilly.servlet.MultipartRequest;
    
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.PrintWriter;
    
    /**
     * 一点教程网 - http://www.yiidian.com
     */
    public class DownloadServlet extends HttpServlet {
    
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            response.setContentType("text/html;charset=utf-8");
            PrintWriter out = response.getWriter();
            String filename = "20200113_103731444.zip";
            String filepath = "d:\\upload\\";
            response.setContentType("APPLICATION/OCTET-STREAM");
            response.setHeader("Content-Disposition","attachment; filename=\"" + filename + "\"");
    
            FileInputStream fileInputStream = new FileInputStream(filepath + filename);
    
            int i;
            while ((i=fileInputStream.read()) != -1) {
                out.write(i);
            }
            fileInputStream.close();
            out.close();
        }
    
    }
    

4 配置web.xml

web.xml:

    
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
             version="3.1">
    
        <servlet>
            <servlet-name>DownloadServlet</servlet-name>
            <servlet-class>DownloadServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>DownloadServlet</servlet-name>
            <url-pattern>/Download</url-pattern>
        </servlet-mapping>
    
    </web-app>

5 运行测试

20210421083118_2.png

点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> 使用Servlet下载文件
上一篇
使用Servlet上传文件
下一篇
使用Servlet发送邮件