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