前台如何获取浏览器及其版本,后台也行,不麻烦就行

String value = request.getHeader("User-Agent");
我是用这种方法在前台小脚本取出头信息中的user-agent信息
但是不同浏览器的头信息不同,如谷歌:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36
360的兼容模式:
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
那我如何准确的取出其中的浏览器以及浏览器版本呢
求指点

 function getBrowserInfo() {
          var Sys = {};
          var ua = navigator.userAgent.toLowerCase();
          var s; (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
          (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
          (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
          (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
          (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;

          if(Sys.ie) {
            return 'IE: ' + Sys.ie;
          }
          if(Sys.firefox) {
            return 'Firefox: ' + Sys.firefox;
          }
          if(Sys.chrome) {
            return 'Chrome: ' + Sys.chrome;
          }
          if(Sys.opera) {
            return 'Opera: ' + Sys.opera;
          }
          if(Sys.safari) {
            return 'Safari: ' + Sys.safari;
          }
        } 

自己弄出来了,自问自答。。。。。。