• “放到桌面”的Servlet实现


    复习下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]
    "
                + "URL=http://w3.crsc.isc
    "
                + "IDList=
    "
                + "HotKey=0
    "
                + "IconFile=%windir%\system32\SHELL32.dll
    "
                + "IconIndex=130
    "
                + "[{000214A0-0000-0000-C000-000000000046}]
    "
                + "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写出来就好了,然后给一个明确的文件名与后缀就好了。

  • 相关阅读:
    小程序开发系列(五)悬浮搜索框
    LINQ的连接扩展(左连、右连、全连等)
    小程序开发系列(四)九宫格另一种实现
    python 生成随机图片验证码
    django定时任务小插件
    线程池模块thernd
    python logging 模块记录日志
    django Q条件
    jquery 事件绑定
    jQuery示例
  • 原文地址:https://www.cnblogs.com/nimeiz/p/3974487.html
Copyright © 2020-2023  润新知