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();
}
}

最新文章

  1. Redmine与Windows AD集成设置
  2. 《统计推断(Statistical Inference)》读书笔记——第6章 数据简化原理
  3. VS2010无法修改资源文件
  4. Linux系统 ssh图形界面远程
  5. 平衡树(AVL)详解
  6. 使用Promise规定来处理ajax请求的结果
  7. javascript 巴西世界杯倒计时
  8. python之列表(list)的使用方法介绍
  9. iOS常见控件的基本使用
  10. defer 和 async 区别
  11. 结对编程四则运算--JAVA实现(徐静、林文敏)
  12. linux 命令启动Oracle数据库
  13. 摘选改善Python程序的91个建议
  14. 修复XSS跨站漏洞
  15. 使用VNC连接管理VPS
  16. 20155330 《网络攻防》 Exp3 免杀原理与实践
  17. Unity5.6之前版本VRTK插件基础交互
  18. MyEclipse 2014 for Mac 在Yosemite怎樣安裝
  19. IDEA初始化配置
  20. 在linux中使用终端浏览器w3m

热门文章

  1. plsql 如何导入excel数据?
  2. Java 12 骚操作, switch居然还能这样玩!
  3. 微信小程序之使用wx:for遍历循环
  4. 20189220 余超《Linux内核原理与分析》第三周作业
  5. C# TcpListener TcpClient
  6. 网易云音乐MP3外链地址
  7. Win10 LTSC 2019 长期支持版
  8. Android 解读Event和Main Log
  9. IDEA使用Git出现push to origin/master was rejected错误解决方案
  10. [LeetCode] 253. Meeting Rooms II 会议室 II