全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

servlet下载文件实现代码详解(五)

本文实例为大家分享了servlet下载文件的具体代码,供大家参考,具体内容如下

1.servlet下载文件

  servlet下载文件就是将服务器端的文件传输到客户端。

2案例

下载文件servlet类

package com.learn;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/**
 * Created by Administrator on 2017/09/24.
 */
public class DownLoadServlet extends HttpServlet {
  private String filePath;

  @Override
  public void init(ServletConfig config) throws ServletException {
    super.init(config);
    filePath = config.getInitParameter("filePath");
    //初始化路径
    //filePath = config.getServletContext().getRealPath(filePath);
    System.out.println("初始化文件路径:"+filePath);
  }

  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    doPost(req,resp);

  }

  @Override
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    OutputStream out; //输出流
    InputStream in; //输入流

    String fileName = req.getParameter("fileName");
    System.out.println("文件名称:"+fileName);
    //如果把文件名为null则提示用户
    if(fileName == null){
      out = resp.getOutputStream();
      out.write("please input fileName".getBytes());
      out.close();
    }
    //获取文件流
    in = getServletContext().getResourceAsStream(filePath+ File.separator+fileName);
    System.out.println(in==null?true:false);
    int length = in.available();
    
    //设置返回消息头部信息
    resp.setContentType("application/force-download");
    resp.setHeader("Content-Length",String.valueOf(length));
    resp.setHeader("content-disposition","attachment;filename=\""+fileName+"\"");
    //输出文件到客户端
    out = resp.getOutputStream();
    int bytesend = 0 ;
    byte[] buff = new byte[512];
    while ((bytesend = in.read(buff))!= -1){
      out.write(buff,0,bytesend);
    }
    in.close();
    out.close();
  }
}

web.xml配置

 <servlet>
  <servlet-name>download</servlet-name>
  <servlet-class>com.learn.DownLoadServlet</servlet-class>
  <init-param>
    <param-name>filePath</param-name>
    <param-value>file</param-value>
  </init-param>
 </servlet>
 <servlet-mapping>
  <servlet-name>download</servlet-name>
  <url-pattern>/download</url-pattern>
 </servlet-mapping>


# servlet  # 下载  # servlet实现文件下载的步骤及说明详解  # 简单实现Servlet文件下载功能  # servlet实现文件上传、预览、下载、删除功能  # Java Servlet简单实例分享(文件上传下载demo)  # servlet监听实现统计在线人数功能 附源码下载  # servlet简单实现文件下载的方法  # java基于servlet编写上传下载功能 类似文件服务器  # jsp实现Servlet文件下载的方法  # servlet实现文件下载的实用类分享  # 访问JSP文件或者Servlet文件时提示下载的解决方法  # 客户端  # 大家分享  # 具体内容  # 文件传输  # public  # private  # extends  # DownLoadServlet  # Administrator  # Created  # OutputStream  # String  # super  # throws  # getInitParameter  # getRealPath  # getServletContext  # Override  # filePath  # void 


相关文章: 如何快速搭建高效香港服务器网站?  简单实现Android验证码  专业网站建设制作报价,网页设计制作要考什么证?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  如何快速上传自定义模板至建站之星?  建站ABC备案流程中有哪些关键注意事项?  制作门户网站的参考文献在哪,小说网站怎么建立?  网站制作的步骤包括,正确网址格式怎么写?  招商网站制作流程,网站招商广告语?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  建站10G流量真的够用吗?如何应对访问高峰?  金*站制作公司有哪些,金华教育集团官网?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  广州美橙建站如何快速搭建多端合一网站?  如何快速搭建高效WAP手机网站吸引移动用户?  贸易公司网站制作流程,出口贸易网站设计怎么做?  nginx修改上传文件大小限制的方法  如何高效完成自助建站业务培训?  济南专业网站制作公司,济南信息工程学校怎么样?  设计网站制作公司有哪些,制作网页教程?  济南网站制作的价格,历城一职专官方网站?  做企业网站制作流程,企业网站制作基本流程有哪些?  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  定制建站是什么?如何实现个性化需求?  建站之星代理费用多少?最新价格详情介绍  如何选择CMS系统实现快速建站与SEO优化?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  公司网站制作需要多少钱,找人做公司网站需要多少钱?  Swift中循环语句中的转移语句 break 和 continue  韩国服务器如何优化跨境访问实现高效连接?  ,想在网上投简历,哪几个网站比较好?  如何在建站之星网店版论坛获取技术支持?  建站之星北京办公室:智能建站系统与小程序生成方案解析  孙琪峥织梦建站教程如何优化数据库安全?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  建站主机解析:虚拟主机配置与服务器选择指南  Android自定义listview布局实现上拉加载下拉刷新功能  ,购物网站怎么盈利呢?  郑州企业网站制作公司,郑州招聘网站有哪些?  如何在云服务器上快速搭建个人网站?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  大同网页,大同瑞慈医院官网?  c++ stringstream用法详解_c++字符串与数字转换利器  专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何选择适配移动端的WAP自助建站平台?  相册网站制作软件,图片上的网址怎么复制? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。