使用Servlet实现下载文件的功能

在前台有一个下载链接,比如

<a href="DownLoadServlet">下载</a> <br/>  

使用Servlet实现下载:

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URLEncoder;  

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;  

public class DownLoadServlet extends HttpServlet {  

    public DownLoadServlet() {
        super();
    }  

    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }  

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request,response);
    }  

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        //处理请求
        //读取要下载的文件
        File f = new File("E:/好久不见.mp3");
        if(f.exists()){
            FileInputStream  fis = new FileInputStream(f);
            String filename=URLEncoder.encode(f.getName(),"utf-8"); //解决中文文件名下载后乱码的问题
            byte[] b = new byte[fis.available()];
            fis.read(b);
            response.setCharacterEncoding("utf-8");
            response.setHeader("Content-Disposition","attachment; filename="+filename+"");
            //获取响应报文输出流对象
            ServletOutputStream  out =response.getOutputStream();
            //输出
            out.write(b);
            out.flush();
            out.close();
        }     

    }  

    /**
     * Initialization of the servlet. <br>
     *
     * @throws ServletException if an error occurs
     */
    public void init() throws ServletException {
        // Put your code here
    }  

}  

配置文件注意路径。。。

本文来源于 :http://www.cnblogs.com/android-html5/archive/2012/03/16/2534082.html

时间: 2024-08-01 05:59:46

使用Servlet实现下载文件的功能的相关文章

servlet 实现下载文件

servlet: public class UpAndDownServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); String type = request.getParam

Java中实现FTP上传下载文件的功能,完整代码

一个JAVA 实现FTP功能的代码,包括了服务器的设置模块,并包括有上传文件至FTP的通用方法.下载文件的通用方法以及删除文件.在ftp服务器上穿件文件夹.检测文件夹是否存在等,里面的有些代码对编写JAVA文件上传或许有参考价值,Java FTP主文件代码: package ftpDemo;         import java.io.DataOutputStream;         import java.io.InputStream;         import java.io.Out

用C++实现下载文件的功能

今天同学问了个C++实现给定的下载链接进行下载并保存文件,上网搜索下,看到网上这类东西,所以就直接拿来个改了下,因为他的代码是在VC++中可以,我导入到VS2010中出现点小问题,所以改了下贴了个VS中亲测可运行的代码.在此记录下. 参考的资料   http://bbs.csdn.net/topics/390052882  感觉里面大家讨论的都不错 其实这个使用到MFC中的一些函数,可以做成图形界面的. 下面贴下自己小小修改的代码 //#define _WIN32_WINNT 0x0502 #i

Servlet:浏览器下载文件时文件名为乱码问题

1 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 2 String filename = request.getParameter("filename"); 3 System.out.println(filename); 4 String path = getServletContext().get

1 servlet实现下载文件

代码实现: import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.ser

【Servlet】java web 文件下载功能实现

需求:实现一个具有文件下载功能的网页,主要下载压缩包和图片 两种实现方法: 一:通过超链接实现下载 在HTML网页中,通过超链接链接到要下载的文件的地址 [html] view plain copy <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body&

C#实现开发windows服务实现自动从FTP服务器下载文件(自行设置分/时执行)

最近在做一个每天定点从FTP自动下载节目.xml并更新到数据库的功能.首先想到用 FileSystemWatcher来监控下载到某个目录中的文件是否发生改变,如果改变就执行相应的操作,然后用timer来设置隔多长时间来下载.后来又想想了.用windwos服务来实现吧. 效果图: 执行的Log日志: INFO-2016/5/24 0:30:07--日志内容为:0/30/7进行time触发 INFO-2016/5/24 1:30:07--日志内容为:1/30/7进行time触发 INFO-2016/

java按http地址列表下载文件队列

本文实现的功能是通过url列表下载文件队列,http url地址如:http://172.16.53.187:8080/LiveDownServer/Media/DownloadFile?path=E%3A%2Fvideofiles%2Ftest123%2Fdevelop%2F2015%2F06%2F12%2Fts%2F12%2F20150612124328.ts 路径经过了编码,可以利用java自带函数java.net.URLDecoder.decode进行解码,解码之后添加到url列表利用H

web下载文件和跳转

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. 如果不通过JSP和servlet直接下载文件的话,可以通过web.xml文件来识别文件类型来进行下载.如果要通过servlet来下载的话,可以如下所示来进行下载: 但是这样下载的话有两个缺点:一个是我们不知道文件的大小和下载进度,二是我们下载文件的文件名字看不到,所以我们进行了以下操作: 这样我们就可以得到文件大小下载进度和文件名称. 开发Web应用中会遇到