javaweb Response下载文件

简介: javaweb Response下载文件

web服务器接收到客户端的http请求,针对这个请求,分别创建一个代表请求的HttpServletRequest对象,代表响应的一个HttpServletResponse;


  • 如果要获取我们客户端请求过来的参数:找HttpServlectrequest
  • 如果要给客户端响应一些信息:找HttpServlectResponse


  1. 获取文件的路径
  2. 下载文件的名称
  3. 想办法让浏览器支持下载我们需要的东西,中文文件名UREcoder,encode编码,否则有可能出现乱码
  4. 获取文件的输入流
  5. 创建缓冲区
  6. 获取OutputStream对象
  7. 将FileOutputStream流写入buffer缓冲区
public class FileServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //要获取下载文件的路径
        ServletContext context = this.getServletContext();
        String realPath = "E:\\IntelliJ IDEA 2020.1.1\\com.zang\\response\\src\\main\\resources\\1.png";
        //下载的文件名是啥
        String substring = realPath.substring(realPath.lastIndexOf("\\")+1);
        //设置想办法让浏览器能够支持下载 我们需要的东西,中文文件名UREcoder,encode编码,否则有可能出现乱码
        resp.setHeader("Content-Disposition","attachment;filename="+ URLEncoder.encode(realPath,"UTF-8"));
        //获取下载文件的输入流
        FileInputStream is = new FileInputStream(realPath);
        //创建缓冲区
        int len=0;
        byte[] buffer = new byte[1024];
        //获取OutPuTStream对象
        ServletOutputStream os = resp.getOutputStream();
        //将FileOutputStream对象写入到缓冲区
        while ((len=is.read(buffer))!=0){
            os.write(buffer,0,len);
        }
        //使用OutputStream将缓冲区中的数据写入到客户端
        is.close();
        os.close();
    }


相关文章
|
6天前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
|
8天前
|
存储 Java API
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
20 4
|
10天前
|
Java 数据格式 索引
使用 Java 字节码工具检查类文件完整性的原理是什么
Java字节码工具通过解析和分析类文件的字节码,检查其结构和内容是否符合Java虚拟机规范,确保类文件的完整性和合法性,防止恶意代码或损坏的类文件影响程序运行。
|
10天前
|
Java API Maven
如何使用 Java 字节码工具检查类文件的完整性
本文介绍如何利用Java字节码工具来检测类文件的完整性和有效性,确保类文件未被篡改或损坏,适用于开发和维护阶段的代码质量控制。
|
13天前
|
Web App开发 Java
使用java操作浏览器的工具selenium-java和webdriver下载地址
【10月更文挑战第12天】Selenium-java依赖包用于自动化Web测试,版本为3.141.59。ChromeDriver和EdgeDriver分别用于控制Chrome和Edge浏览器,需确保版本与浏览器匹配。示例代码展示了如何使用Selenium-java模拟登录CSDN,包括设置驱动路径、添加Cookies和获取页面源码。
|
20天前
|
Java Apache Maven
Java将word文档转换成pdf文件的方法?
【10月更文挑战第13天】Java将word文档转换成pdf文件的方法?
64 1
|
12天前
|
缓存 Java 程序员
Java|SpringBoot 项目开发时,让 FreeMarker 文件编辑后自动更新
在开发过程中,FreeMarker 文件编辑后,每次都需要重启应用才能看到效果,效率非常低下。通过一些配置后,可以让它们免重启自动更新。
20 0
|
6月前
|
存储 Java Windows
Java21 JDK下载安装及Windows环境变量配置
JDK是Java的开发工具包,要进行Java学习或开发之前,需先下载安装,下载地址如下:提示:这网址里面有三个扩展名的文件,分别是“.zip”、“.exe”和“.msi”,鄙人选择的是.exe的文件,下方的安装和环境的配置也是安装该文件的安装程序进行的。
790 2
|
Oracle Java 关系型数据库
java17的下载与安装
java17的下载与安装
1536 0
|
Oracle Java Unix
Java/JDK下载、安装与环境变量配置超详细教程(2022更新)保姆级,秒会
Java/JDK下载、安装与环境配置超详细教程(2022更新)保姆级,小白秒会[学习必备,建议收藏]。包含JDK8、JDK11、JDK17、JDK19等,本文将从JDK的下载与安装讲起,在从配置到第一个HelloWrold实践结束。在观看本文前我们需要知道JDK是什么,有什么作用?JDK是Java的开发工具包,包括JVM虚拟机,核心类库,开发工具。
17956 0
Java/JDK下载、安装与环境变量配置超详细教程(2022更新)保姆级,秒会