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);
}
}
本文档介绍了如何使用Java Servlet实现文件下载功能,通过HttpServletRequest获取参数确定文件名,定位服务器文件路径,设置合适的响应头以实现浏览器的下载提示,并通过ServletOutputStream将文件内容输出到客户端。

被折叠的 条评论
为什么被折叠?



