全网整合营销服务商

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

免费咨询热线: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 


相关文章: 如何通过FTP空间快速搭建安全高效网站?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  如何在香港服务器上快速搭建免备案网站?  制作电商网页,电商供应链怎么做?  网站制作服务平台,有什么网站可以发布本地服务信息?  如何用VPS主机快速搭建个人网站?  C++中引用和指针有什么区别?(代码说明)  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  专业公司网站制作公司,用什么语言做企业网站比较好?  如何获取上海专业网站定制建站电话?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  建站之星24小时客服电话如何获取?  香港服务器租用费用高吗?如何避免常见误区?  Python如何创建带属性的XML节点  制作网站外包平台,自动化接单网站有哪些?  TestNG的testng.xml配置文件怎么写  深圳网站制作案例,网页的相关名词有哪些?  建站之星如何开启自定义404页面避免用户流失?  如何选择域名并搭建高效网站?  ,交易猫的商品怎么发布到网站上去?  建站之星代理如何优化在线客服效率?  网站制作公司排行榜,抖音怎样做个人官方网站  MySQL查询结果复制到新表的方法(更新、插入)  建站之星安装后如何配置SEO及设计样式?  制作充值网站的软件,做人力招聘为什么要自己交端口钱?  如何通过cPanel快速搭建网站?  重庆市网站制作公司,重庆招聘网站哪个好?  昆明网站制作哪家好,昆明公租房申请网上登录入口?  ,石家庄四十八中学官网?  如何正确选择百度移动适配建站域名?  实现虚拟支付需哪些建站技术支撑?  建站上市公司网站建设方案与SEO优化服务定制指南  香港服务器网站推广:SEO优化与外贸独立站搭建策略  北京网站制作网页,网站升级改版需要多久?  定制建站如何定义?其核心优势是什么?  简单实现Android验证码  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  c# Task.ConfigureAwait(true) 在什么场景下是必须的  成都响应式网站开发,dw怎么把手机适应页面变成网页?  如何在阿里云完成域名注册与建站?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  制作营销网站公司,淘特是干什么用的?  如何挑选优质建站一级代理提升网站排名?  如何选择适合PHP云建站的开源框架?  家庭建站与云服务器建站,如何选择更优?  如何通过FTP服务器快速搭建网站? 

您的项目需求

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