1.通过输入流将下载文件读到Servlet里面
2.通过输出流将刚才转为输入流的文件输出给用户
package org.student.servlet;
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 DownloadServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String fileName = request.getParameter("filename");
response.addHeader("content-Type", "application/octet-stream");
response.addHeader("content-Disposition", "attachment;filename="+fileName);
InputStream in = getServletContext().getResourceAsStream("/res/1.png");
ServletOutputStream out = response.getOutputStream();
byte[] bs = new byte[1024];
int len = -1;
while((len=in.read(bs)) != -1) {
out.write(bs, 0, len);
}
out.close();
in.close();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}