public class BatchDownloadServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("application/x-msdownload"); response.setHeader("Content-Disposition", "attachment;filename=test.zip"); String path = getServletContext().getRealPath("/")+"images/"; String[] filenames = request.getParameterValues("filename"); String str = ""; String rt = "\r\t"; ZipOutputStream zos = new ZipOutputStream(response.getOutputStream()); for(String filename:filenames){ str+=filename+rt; File file = new File(path+filename); zos.putNextEntry(new ZipEntry(filename)); FileInputStream fis = new FileInputStream(file); byte[] b = new byte[1024]; int n = 0; while((n=fis.read(b))!=-1){ zos.write(b, 0, n); } zos.flush(); fis.close(); } zos.setComment("download success:"+rt+str); zos.flush(); zos.close(); } }