java之servlet之文件下载
2024-10-21 09:09:50
1.在页面中,可以直接通过超链接来下载:
a) 如果浏览器能够打开该文件,那么直接在浏览器中显示---不是想要的效果
b) 任何人都能下载,不能进行权限控制
2.通过servlet来进行下载,在servlet中是通过文件流来下载的。
@WebServlet("/download")
public class DownloadServlet extends HttpServlet{
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setCharacterEncoding("utf-8");
resp.setContentType("application/octet-stream");
//解决 以文件形式下载 而不会被浏览器打开 以及中文文件名需要编码
resp.setHeader("Content-Disposition", "attachment;filename="+URLEncoder.encode("中国", "utf-8")+".txt");
PrintWriter os = resp.getWriter();
String path = this.getServletContext().getRealPath("/download");
Reader is = new BufferedReader(new FileReader(new File(path,"t.txt")));
int len=0;
char[] buffer = new char[200];
while((len=is.read(buffer))!=-1){
os.print(new String(buffer,0,len));
}
is.close();
os.close();
}
}
最新文章
- Redmine与Windows AD集成设置
- 《统计推断(Statistical Inference)》读书笔记——第6章 数据简化原理
- VS2010无法修改资源文件
- Linux系统 ssh图形界面远程
- 平衡树(AVL)详解
- 使用Promise规定来处理ajax请求的结果
- javascript 巴西世界杯倒计时
- python之列表(list)的使用方法介绍
- iOS常见控件的基本使用
- defer 和 async 区别
- 结对编程四则运算--JAVA实现(徐静、林文敏)
- linux 命令启动Oracle数据库
- 摘选改善Python程序的91个建议
- 修复XSS跨站漏洞
- 使用VNC连接管理VPS
- 20155330 《网络攻防》 Exp3 免杀原理与实践
- Unity5.6之前版本VRTK插件基础交互
- MyEclipse 2014 for Mac 在Yosemite怎樣安裝
- IDEA初始化配置
- 在linux中使用终端浏览器w3m
热门文章
- plsql 如何导入excel数据?
- Java 12 骚操作, switch居然还能这样玩!
- 微信小程序之使用wx:for遍历循环
- 20189220 余超《Linux内核原理与分析》第三周作业
- C# TcpListener TcpClient
- 网易云音乐MP3外链地址
- Win10 LTSC 2019 长期支持版
- Android 解读Event和Main Log
- IDEA使用Git出现push to origin/master was rejected错误解决方案
- [LeetCode] 253. Meeting Rooms II 会议室 II