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(); } }