JAVA判断当前浏览器版本

JAVA判断当前浏览器版本

实习期间,需要完成一个下载功能,即将当前列表信息,通过转化成word的形式,打印下来。功能完成后,测试阶段,利用IE、360浏览器、Google Chrome下载文件,文件名称均显示正常,然而利用Firefox下载时,下载保存的名称出现乱码,由于不同浏览器内核版本不同,在解析时,会出现不一样的问题,推荐一篇介绍浏览器内核区别的文章:各种浏览器内核的区别

  • 具体解决方法

    1 通过request.getHeader()方法获得http的头信息,其中User-Agent属性记录了当前使用的浏览器版本和操作系统信息。
    2 根据不同浏览器版本,进行不同字符转码。

  • 具体实现

    String reqBrowser = req.getHeader("User-Agent");
    通过reqBrowser可以获得不同浏览器的不同信息:

      Firefox:  Mozilla/5.0 (Windows NT 6.1; rv:35.0) Gecko/20100101 Firefox/35.0
      Google Chrome:  Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.93 Safari/537.36
      IE:  Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
      360浏览器: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)

    String fileName = null;
    Firefox浏览器: if(reqBrowser.toLowerCase().indexOf("firefox")>0)
    fileName= new String(fileid.getBytes("UTF-8"), "ISO8859-1");
    其它浏览器: fileName=URLEncoder.encode(fileid,"UTF-8");

    问题解决

你可能感兴趣的:(JAVA实践—问题总结)