package com.example.demo3;

import org.apache.commons.io.IOUtils;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class download extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取要下载的文件名
String downloadfilename="a.jpg";
//读取要下载的文件内容
ServletContext servletContext=getServletContext();
//读取输入流的数据,输出客户端
InputStream resourceAsStream = servletContext.getResourceAsStream("/file/" + downloadfilename);
//读取输入流的全部数据
String mimeType = servletContext.getMimeType("/file/" + downloadfilename);
System.out.println("下载的文件类型"+mimeType);
//获取输出流量
OutputStream outputStream=resp.getOutputStream();
IOUtils.copy(resourceAsStream,outputStream);
// 在回传前告诉客户端返回的数据类型
resp.setContentType(mimeType);
//Content-Disposition响应头,表示收到的数据怎么处理
//attachment附件
// filename下载的文件名
resp.setHeader("Content-Disposition","attachment;filename");
}
}

很重要很重要,多敲