本文实例为大家分享了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小时内与您取得联系。