先利用上节内容讲的文件上传,上传三个文件 test.json、test.png、test.txt

下载文件展示:

index16_download.jsp

<%--Created by IntelliJ IDEA.User: AdminDate: 2022/1/19Time: 9:15To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>文件下载</title>
</head>
<body>
<h3>下载页面</h3>
<%--点击下载:<a href="/servlet15_Download">test.png</a> <br/>--%>
点击下载:<a href="/servlet15_Download?type=png">test.png</a> <br/>
点击下载:<a href="/servlet15_Download?type=txt">text.txt</a> <br/></body>
</html>

Servlet15_Download.java

package com.test.app;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;/*** @author:* @date:2022/1/19* @description:*/
@WebServlet("/servlet15_Download")
public class Servlet15_Download extends HttpServlet {/***@param: [req, resp]*@return: void*@description:*/@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String fileType = req.getParameter("type");String fileName = "";switch (fileType) {case "png":fileName = "test.png";break;case "txt":fileName = "test.txt";break;}//设置响应方式resp.setContentType("application/x-msdownload");//设置下载后的文件名resp.setHeader("Content-Disposition", "attachment;filename=" + fileName);// 获取输出流OutputStream outputStream = resp.getOutputStream();//获取工程的index.jsp的绝对路径,Servlet文件也一样可以获取绝对路径//String path = req.getServletContext().getRealPath("index.jsp");String path = req.getServletContext().getRealPath("file/" + fileName);InputStream inputStream = new FileInputStream(path);int temp = 0;while ((temp = inputStream.read()) != -1) {outputStream.write(temp);}inputStream.close();outputStream.close();//tip:后续可以用反射获取服务器指定资源目录下的所有文件名,然后在jsp中展示出来。}protected void doGet2(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//设置响应方式resp.setContentType("application/x-msdownload");String fileName = "1.png";//设置下载后的文件名resp.setHeader("Content-Disposition", "attachment;filename=" + fileName);// 获取输出流OutputStream outputStream = resp.getOutputStream();//获取工程的index.jsp的绝对路径,Servlet文件也一样可以获取绝对路径//String path = req.getServletContext().getRealPath("index.jsp");String path = req.getServletContext().getRealPath("file/" + fileName);InputStream inputStream = new FileInputStream(path);int temp = 0;while ((temp = inputStream.read()) != -1) {outputStream.write(temp);}inputStream.close();outputStream.close();}
}

11、JavaWeb-download文件下载相关推荐

  1. Spring Boot入门(11)实现文件下载功能

      在这篇博客中,我们将展示如何在Spring Boot中实现文件的下载功能.   还是遵循笔者写博客的一贯风格,简单又不失详细,实用又能让你学会.   本次建立的Spring Boot项目的主要功能 ...

  2. IT兄弟连 JavaWeb教程 文件下载技术

    ●  列出提供下载的文件资源 我们要将Web应用系统中的文件资源提供给用户进行下载,首先我们要有一个页面列出上传文件目录下的所有文件,当用户点击文件下载超链接时就进行下载操作,编写一个ListFile ...

  3. JavaWeb实现文件下载

    一.前言 我们这里要说的文件下载是包括word文档.Excel表格.PPT.image图片的下载,因为我们是基于JavaWeb实现的,所以web前端的界面是在JSP中实现的,而后台的响应是通过Serv ...

  4. java结丹期(11)----javaweb(jstljsp)

    JSP(JavaServer Pages): 1. 概念:     * Java Server Pages: java服务器端页面         * 可以理解为:一个特殊的页面,其中既可以指定定义h ...

  5. Download 文件下载

    iOS开发中经常会用到文件的下载与上传功能,今天咱们来分享一下文件下载的思路.文件上传下篇再说. 文件下载分为小文件下载与大文件下载 小文件下载 小文件可以是一张图片,或者一个文件,这里指在现行的网络 ...

  6. javaweb实现文件下载用ajax请求,浏览器无响应的问题

    最近做公司项目要实现用户通过浏览器从服务端下载文件的功能.于是,我写好了后台,然后前端用JQuery的ajax()方法发送请求到后台,按道理说是没有问题的,包括相应头的设置都没问题,但是点击下载按钮过 ...

  7. JavaWeb 之文件下载

    1. 下载概述 下载就是向客户端响应字节数据! 将一个文件变成字节数组, 使用 response.getOutputStream() 来响应给浏览器!! 2. 下载要求 两个头一个流 Content- ...

  8. Django的文件下载

    在实际的项目中很多时候需要用到下载功能,如导excel.pdf或者文件下载,当然你可以使用web服务自己搭建可以用于下载的资源服务器,如nginx,这里我们主要介绍django中的文件下载. 我们这里 ...

  9. Java文件下载/下载文件的案例

    文章目录 需求 分析 实现步骤 示例代码 下载的文件中文名显示问题 需求 1.页面显示超链接 2.点击超链接后弹出下载对话框 3.完成图片文件下载 分析 超链接指向的资源如果能够被浏览器解析,则直接在 ...

最新文章

  1. 2022-2028年中国硅胶手套产业竞争现状及发展趋势分析报告
  2. 堪比当年的LSTM,Transformer引燃机器学习圈:它是万能的
  3. php 接口继承接口
  4. 前端学习(2933):vue中的循环语句
  5. 二手交易平台html代码,二手物品交易HTML5模板
  6. Bootstrap学习(一)
  7. 小红书下拉词是什么?小红薯下拉框怎么做?下拉词框如何应用?
  8. python inspect —— 查看类的继承体系
  9. hex2bin 64bit
  10. 黑苹果OC引导注入_黑苹果OC配置工具:OpenCore Configurator v2.15.2.0
  11. 飞腾服务器虚拟化,基于飞腾平台的容器虚拟化技术研究
  12. 计算机电路节点,电路分析基础之节点分压原理
  13. 太方便了!告别复制粘贴,Python 轻松实现 PDF 转文本!
  14. 三层交换机的工作原理
  15. 网络安全面试常见问题
  16. 初次创建andriod项目出现的问题
  17. Apache Tomcat 8配置参考 HTTP连接器
  18. Codeforces Round #545 (Div. 2)
  19. 酯化反应固体酸催化剂
  20. 中国无功补偿行业运行状况与投资前景预测研究报告2022-2028年

热门文章

  1. “合十”引领高端酒店餐饮用米标准,助力”2021中国企业家博鳌论坛”
  2. DS18B20数字温度计 (三) 1-WIRE总线 ROM搜索算法和实际测试
  3. HTML+CSS+JavaScript实现电子时钟(数字换成图片)
  4. 如何使用ttf字体文件
  5. android通过ip查询地址吗,Android 根据IP地址获取城市
  6. vue+elementUI组件table实现前端分页功能
  7. Sqlsugar 使用注意点
  8. 字节跳动到底为什么能成功?十个公式深层分析 (含底层业务逻辑,及落地方法拆解)
  9. dos2unix命令将dos文件转换为unix格式
  10. PHP-laravel框架一2