Java入门级文件下载_学习笔记
文件下载和上一篇文件上传很像,就不多说了,传一个我写的一个下载歌曲的代码:
下面是Servlet代码:
public class DownLoadServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ServletContext servletContext= request.getServletContext();
        String filename="风吹麦浪.mp3";
        String path=servletContext.getRealPath("/WEB-INF/"+filename);
        File file =new File(path);
        String type=servletContext.getMimeType(path);
        InputStream in = new FileInputStream(file);
        response.setContentType(type);
        filename =new String(filename.getBytes("gbk"),"iso8859-1");
        response.setHeader("Content-Disposition", "attachment;filename"+filename);
        PrintWriter out=response.getOutputStream();
        IOUtils.copy(in, out);
     in.close();
    }
}
下面是jsp代码:
<body>
<a href="${pageContext.request.contextPath}/DownLoadServlet">下载</a>
</body>
注意要导入一个io的jar包:

Java入门级文件下载_学习笔记的更多相关文章
- 【Java】集合_学习笔记
		一.集合 1.集合类也称容器类,主要负责保存.盛装其他数据. 2.集合可以保存数量不确定的数据,保存具有映射关系的数据(也称关联数组). 3.Java5后提供一些多线程安全的集合类,放在java.ut ... 
- 【Java】多线程_学习笔记
		多线程 1.进程 进程:当一个程序进入内存运行时,它就成为了进程.进程具有独立性.动态性.并发性. A.独立性:进程是系统中独立存在的实体,它可以拥有自己独立的资源,每一个进程都拥有自己私有的地址空间 ... 
- 【Java】异常处理_学习笔记
		异常: 1.格式1: try { //业务代码 } catch(Exception e) { //异常处理代码 } 说明: a. 异常抛出:执行try里的代码,系统会自动生成一个异常对象,该对象会 ... 
- No.1_1 java语言基础_学习笔记
		import java.util.Scanner; public class HelloWorld { static final double PI=3.14; static int x=125; / ... 
- Java String.intern()_学习笔记
		参考:https://www.jianshu.com/p/0d1c003d2ff5 String.intern() String.intern()是native方法,底层调用c++中的StringTa ... 
- Java后端高频知识点学习笔记1---Java基础
		Java后端高频知识点学习笔记1---Java基础 参考地址:牛_客_网 https://www.nowcoder.com/discuss/819297 1.重载和重写的区别 重载:同一类中多个同名方 ... 
- JAVA的反射机制学习笔记(二)
		上次写JAVA的反射机制学习笔记(一)的时候,还是7月22号,这些天就瞎忙活了.自己的步伐全然被打乱了~不能继续被动下去.得又一次找到自己的节奏. 4.获取类的Constructor 通过反射机制得到 ... 
- 【笔记目录2】【jessetalk 】ASP.NET Core快速入门_学习笔记汇总
		当前标签: ASP.NET Core快速入门 共2页: 上一页 1 2 任务27:Middleware管道介绍 GASA 2019-02-12 20:07 阅读:15 评论:0 任务26:dotne ... 
- 《Java编程思想》学习笔记(二)——类加载及执行顺序
		<Java编程思想>学习笔记(二)--类加载及执行顺序 (这是很久之前写的,保存在印象笔记上,今天写在博客上.) 今天看Java编程思想,看到这样一道代码 //: OrderOfIniti ... 
随机推荐
- Git&GitHub 基本使用
			如果是Windows用户需要自行去Git的官网下载Git工具 相信以您的聪明才知不需要一会就可以安装好Git工具了 博主这里是MacOS系统,本省就自带Git工具就不演示安装了 在完成一个简单的Git ... 
- ServletContext实现网站计数器
			在网站开发中,有很多功能需要使用ServletContext,比如: 1.网站计数器 2.网站在线用户的显示 3.简单的聊天系统 总之,如果是涉及到不用用户共享数据,而这些数据量不大,同时又不希望写入 ... 
- MySQL学习笔记——〇三 MySQL习题
			在前面讲了MySQL的初步使用方法以后,在这里放出来一些案例来看看怎么做. 先看看database的结构,一共5个表 外键关系: class的cid是student的class_id的外键,teach ... 
- body书写总框架
			Body-reason 1:Topic sentence 2-n:解释or/and 举例 段内结构: 主题句+解释 主题句+举例 主题句+解释+举例:逐渐细化 不要每一段格式一致 
- CSP模拟赛游记
			时间:2019.10.5 考试时间:100分钟(连正式考试时间的一半还没有到)题目:由于某些原因不能公开. 由于第一次接触NOIinux系统所以连怎么建文件夹,调字体,如何编译都不知道,考试的前半小时 ... 
- Notification通知在OPPO手机上不弹出提示?
			oppo默认应用 不允许通知. 解决步骤:设置 通知与状态栏 通知管理 NotificationTest 允许通知 
- js 经纬度计算直线距离
			function getRad(d) { var PI = Math.PI; return d * PI / 180.0; } function getDistance(lat1, lng1, lat ... 
- More 'long-life' plastic bags being used
			1 1.1 roll out v. 推广,或实行 1.2 pilot v. 试行 n. 飞行员 1.3 bags for life 可重复使用的环保购物袋 2 2.1 How many times a ... 
- tensorflow(六)
			一.TensorBoard可视化工具 TensorBoard实现形式为web应用程序,这为提供分布式.跨系统的图形界面服务带来了便利. 1.使用流程 SummaryOps->Session--( ... 
- 七种常见经典排序算法总结(C++实现)
			排序算法是非常常见也非常基础的算法,以至于大部分情况下它们都被集成到了语言的辅助库中.排序算法虽然已经可以很方便的使用,但是理解排序算法可以帮助我们找到解题的方向. 1. 冒泡排序 (Bubble S ... 
