1、示例
package com.test; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.annotation.WebServlet; 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.InputStream; @WebServlet(name = "Servlet_5",urlPatterns = "/download") public class Servlet_5 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取请求参数 String filename = request.getParameter("filename"); //获取文件类型 String mimeType = this.getServletContext().getMimeType(filename); //设置响应类型 response.setContentType(mimeType); //设置相应头,如不设置该响应头,凡是能被浏览器识别的如jpg、txt等格式会预览,设置后会直接下载 response.setHeader("Content-Disposition","attachment;filename=" + filename); //获取文件的绝对路劲 String real = this.getServletContext().getRealPath("download/" + filename); InputStream in = new FileInputStream(real); ServletOutputStream servletOutputStream = response.getOutputStream(); int len = 0; byte[]buff = new byte[1024]; while((len = in.read(buff))>0){ servletOutputStream.write(buff,0,len); } in.close(); } }