package cn.sasa.serv; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class DownloadServlet1 extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String fileName = request.getParameter("fileName"); // 指定MIME类型 response.setContentType(this.getServletContext().getMimeType(fileName)); // 告诉客户端不要直接解释,以附件形式打开(下载) response.setHeader("Content-Disposition", "attachment;filename=" +fileName); String realPath = this.getServletContext().getRealPath("download/" + fileName); ServletOutputStream output = response.getOutputStream(); InputStream input = new FileInputStream(realPath); int len = 0; byte[] buffer = new byte[1024]; while ((len = input.read(buffer)) > 0) { output.write(buffer, 0, len); } input.close(); // output.close();//response获得的output不需要手动关闭 } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }