复习下Servlet下载文件,

  1. responseContentType设置成application/xxxx的时候呢,浏览器会默认启动下载,而不是试图打开。
  2. 通过给httpHeader里面加入内容描述Content-Disposition来告知浏览器文件名称等信息。

    中文时,URLEncoder.encode下下更健康。
  3. 如果要通过Response拿到的输出流写中文出去的话,要先设置 response.setCharacterEncoding("UTF-8");,写成小写的utf-8不好使?
  4. 通过response.setConetentLength(Long)告诉浏览器response要写出的文件有多少字节。不设置的话就是不知道多少,下完为此,没有进度条之类的东东。
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// System.out.println("I'm get your request!!");
response.setCharacterEncoding("UTF-8");
response.setContentType("application/txt");
response.addHeader("Content-Disposition", "attachment; filename="+URLEncoder.encode("中国通号门户.url","utf-8"));
Writer w = response.getWriter();
w.write("[InternetShortcut]\r\n"
+ "URL=http://w3.crsc.isc\r\n"
+ "IDList=\r\n"
+ "HotKey=0\r\n"
+ "IconFile=%windir%\\system32\\SHELL32.dll\r\n"
+ "IconIndex=130\r\n"
+ "[{000214A0-0000-0000-C000-000000000046}]\r\n"
+ "Prop3=19,2");
w.close(); }

大家都知道,像下面这种内容,写入到txt文本中,然后更改文件扩展名为.url就直接是一个url快速链接了。

[InternetShortcut]
URL=http://w3.crsc.isc
IDList=
[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,2

所以呢,只要有Servlet里面把这些内容用txt的格式通过response写出来就好了,然后给一个明确的文件名与后缀就好了。

“放到桌面”的Servlet实现的更多相关文章

  1. 2019-6-23-win10-uwp-应用放到桌面

    title author date CreateTime categories win10 uwp 应用放到桌面 lindexi 2019-06-23 11:11:30 +0800 2019-06-2 ...

  2. Applet、Scriptlet与Servlet

    Applet.Scriptlet与Servlet - 青春念邵的博客 - 博客频道 - CSDN.NEThttp://blog.csdn.net/mo_fan_qing_wa/article/deta ...

  3. 使用win10的开始屏幕,在系统中设置简洁、快捷桌面

    前几天入手了一个本本,由于之前电脑使用的柠檬桌面软件和现在本本的分辨率不适应,意外发现win10自带的开始屏幕整理桌面也是很有意思,再加上触摸板的手势,瞬间觉得整个电脑都清洁许多.废话少说,开始上料. ...

  4. XP如何在桌面新建宽带连接的快捷方式

    1 打开控制面板,点击网络和Internet连接 2 如果存在宽带连接选项. 则点击左侧的网上邻居,然后点击查看网络连接 右击宽带连接,点击创建快捷方式,放到桌面,改一下快捷方式的名字即可.   3 ...

  5. Ubuntu 创建 Pycharm 桌面快捷方式

    1. 安装 Pycharm,我的运行目录是: /opt/pycharm-/bin 2. 在 /usr/share/applications/ 下创建文件 pycharm.desktop [Deskto ...

  6. Servlet技术之——概述、实现、细节、获取资源、ServletConfig、ServletContext

    Servlet概述.实现.细节.获取资源.ServletConfig.ServletContext (一) Setvlet基本概述 (1) 什么是Servlet ? Servlet(Server Ap ...

  7. servlet的抽取

    servlet的抽取 servlet按照模块来划分,比如注册和登录的servlet就放到user的servlet中 原来: 登录时登录的servlet 注册时注册的servlet 现在: 登录注册的s ...

  8. 2.2 学习总结 之 servlet 的两次抽取

    说在前面 昨天 完成了文件上出的学习和实践 今天 学习servlet的两次抽取,以加快编写工程的速度 一.servlet 抽取的原因: 刚刚学习使用servlet写后台,往往只使用一个servlet来 ...

  9. 【转】BAT 批处理脚本 教程

    第一章 批处理基础第一节 常用批处理内部命令简介批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD.这些命令统称批处理命令.小知识:可以在 ...

随机推荐

  1. Scrum Meeting 博客

    笨拙软件工程 Scrum Meeting 博客汇总 一.Alpha阶段 [alpha阶段]第一次Scrum Meeting [alpha阶段]第二次Scrum Meeting [alpha阶段]第三次 ...

  2. JS Arry 常用方法总结

    var arr = ["a", "b", "c", "1", "2", "3"] ...

  3. jexus上部署nuget私服vs访问403错误解决方式

    因为vs去访问nuget项目的时候是以下面的方式去访问的 http://域名/nuget/Search()?$filter=IsLatestVersion&searchTerm=''& ...

  4. ajax属性详解

    https://blog.csdn.net/mooncom/article/details/52402836 资料库: $.ajaxSetup()方法为将来的ajax请求设置默认值. http://w ...

  5. centos7之zabbix监控mysql(mariadb)数据库

    一.Zabbix3.2.6使用自带模板监控MySQL 添加zabbix_agent客户端方法:http://www.cnblogs.com/lei0213/p/8858269.html mysql服务 ...

  6. 在Asp.Net Core中集成Kafka

    在我们的业务中,我们通常需要在自己的业务子系统之间相互发送消息,一端去发送消息另一端去消费当前消息,这就涉及到使用消息队列MQ的一些内容,消息队列成熟的框架有多种,这里你可以读这篇文章来了解这些MQ的 ...

  7. Spring Boot 2.x 编写 RESTful API (三) 程序层次 & 数据传输

    用Spring Boot编写RESTful API 学习笔记 程序的层次结构 相邻层级的数据传输 JavaBean 有一个 public 的无参构造方法 属性 private,且可以通过 get.se ...

  8. 京东iPad新品开售销量环比增22倍

    一年一度万众期待的 Apple 春季发布会终于在今天凌晨揭晓,Apple 新推的 Apple News.Apple Card.Apple Arcade 和 Apple TV+ 四大软件服务惊喜不断,随 ...

  9. QProcess与外部程序的调用

    项目做到一定阶段,常常须要在原来的project上调用外部程序. Qt为此提供了QProcess类,QProcess可用于完毕启动外部程序,并与之交互通信. 一.启动外部程序的两种方式:(1)一体式: ...

  10. SQL SERVER2000将多行查询结果拼接到一行数据及函数的创建

    处理前的查询结果如上图: 通过借助SQL变量的定义 ) DECLARE @Num int SET @Scope='' ), ' ' GROUP BY ContractID 实现了一下效果: //创建拼 ...