zoukankan      html  css  js  c++  java
  • “放到桌面”的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写出来就好了,然后给一个明确的文件名与后缀就好了。

  • 相关阅读:
    P7276-送给好友的礼物【dp】
    P4831-Scarlet loves WenHuaKe【组合数学】
    CF461D-Appleman and Complicated Task【并查集】
    P6499-[COCI2016-2017#2]Burza【状压dp】
    CF757F-Team Rocket Rises Again【最短路,DAG支配树】
    Loj#6053-简单的函数【Min25筛】
    P5325-[模板]Min_25筛
    2019.10.6 机房训练赛
    [CSP校内集训]v(记忆化搜索+map优化状压)
    [CSP校内集训]ac(树上启发式合并)
  • 原文地址:https://www.cnblogs.com/nimeiz/p/3974487.html
Copyright © 2011-2022 走看看