html代码
servlet代码
package com.ServletContext;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.FileInputStream;
import java.io.IOException;
@WebServlet("/ServletContextdownload")
public class ServletContextdownload extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.获取图片的名字
String filename = request.getParameter("filename");
//2.找到文件在服务器中的位置
ServletContext servletContext = request.getServletContext();
String realPath = servletContext.getRealPath("/img/icons.png");
System.out.println(realPath);
//3.获取输入流
FileInputStream fis = new FileInputStream(realPath);
//4.设置响应头
//4.1获取文件的mine类型
String mimeType = servletContext.getMimeType(filename);
//4.2设置响应头content-type的类型
response.setHeader("content-type",mimeType);
//4.3设置响应头的打开方式
response.setHeader("content-disposition","attachment;filename="+filename);
//5.将输入流的对象输写出到输出中
ServletOutputStream os = response.getOutputStream();
byte[] b=new byte[1024*2];
int len=0;
while((len=fis.read(b))!=-1){
os.write(b,0,len);
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request,response);
}
}