判断浏览器类型工具类

来源:互联网 发布:暮光女 出柜 知乎 编辑:程序博客网 时间:2024/06/05 16:05
package com.test;import java.util.HashMap;import java.util.Map;import java.util.regex.Matcher;import java.util.regex.Pattern;import javax.servlet.http.HttpServletRequest;/** *  * @author weitao *  */public class BrowserUtils {      // 判断是否是IE   public static boolean isIE(HttpServletRequest request) {      return (request.getHeader("USER-AGENT").toLowerCase().indexOf("msie") > 0 || request            .getHeader("USER-AGENT").toLowerCase().indexOf("rv:11.0") > 0) ? true            : false;   }   /**    * 获取IE版本    *     * @param request    * @return    */   public static Double getIEversion(HttpServletRequest request) {      Double version = 0.0;      if (getBrowserType(request, IE11)) {         version = 11.0;      } else if (getBrowserType(request, IE10)) {         version = 10.0;      } else if (getBrowserType(request, IE9)) {         version = 9.0;      } else if (getBrowserType(request, IE8)) {         version = 8.0;      } else if (getBrowserType(request, IE7)) {         version = 7.0;      } else if (getBrowserType(request, IE6)) {         version = 6.0;      }      return version;   }   /**    * 获取浏览器类型    *     * @param request    * @return    */   public static BrowserType getBrowserType(HttpServletRequest request) {      BrowserType browserType = null;      if (getBrowserType(request, IE11)) {         browserType = BrowserType.IE11;      }      if (getBrowserType(request, IE10)) {         browserType = BrowserType.IE10;      }      if (getBrowserType(request, IE9)) {         browserType = BrowserType.IE9;      }      if (getBrowserType(request, IE8)) {         browserType = BrowserType.IE8;      }      if (getBrowserType(request, IE7)) {         browserType = BrowserType.IE7;      }      if (getBrowserType(request, IE6)) {         browserType = BrowserType.IE6;      }      if (getBrowserType(request, FIREFOX)) {         browserType = BrowserType.Firefox;      }      if (getBrowserType(request, SAFARI)) {         browserType = BrowserType.Safari;      }      if (getBrowserType(request, CHROME)) {         browserType = BrowserType.Chrome;      }      if (getBrowserType(request, OPERA)) {         browserType = BrowserType.Opera;      }      if (getBrowserType(request, "Camino")) {         browserType = BrowserType.Camino;      }      return browserType;   }   private static boolean getBrowserType(HttpServletRequest request,         String brosertype) {      return request.getHeader("USER-AGENT").toLowerCase()            .indexOf(brosertype) > 0 ? true : false;   }   private final static String IE11 = "rv:11.0";   private final static String IE10 = "MSIE 10.0";   private final static String IE9 = "MSIE 9.0";   private final static String IE8 = "MSIE 8.0";   private final static String IE7 = "MSIE 7.0";   private final static String IE6 = "MSIE 6.0";   private final static String MAXTHON = "Maxthon";   private final static String QQ = "QQBrowser";   private final static String GREEN = "GreenBrowser";   private final static String SE360 = "360SE";   private final static String FIREFOX = "Firefox";   private final static String OPERA = "Opera";   private final static String CHROME = "Chrome";   private final static String SAFARI = "Safari";   private final static String OTHER = "其它";   public static String checkBrowse(HttpServletRequest request) {      String userAgent = request.getHeader("USER-AGENT");      if (regex(OPERA, userAgent))         return OPERA;      if (regex(CHROME, userAgent))         return CHROME;      if (regex(FIREFOX, userAgent))         return FIREFOX;      if (regex(SAFARI, userAgent))         return SAFARI;      if (regex(SE360, userAgent))         return SE360;      if (regex(GREEN, userAgent))         return GREEN;      if (regex(QQ, userAgent))         return QQ;      if (regex(MAXTHON, userAgent))         return MAXTHON;      if (regex(IE11, userAgent))         return IE11;      if (regex(IE10, userAgent))         return IE10;      if (regex(IE9, userAgent))         return IE9;      if (regex(IE8, userAgent))         return IE8;      if (regex(IE7, userAgent))         return IE7;      if (regex(IE6, userAgent))         return IE6;      return OTHER;   }   public static boolean regex(String regex, String str) {      Pattern p = Pattern.compile(regex, Pattern.MULTILINE);      Matcher m = p.matcher(str);      return m.find();   }      private static Map<String, String> langMap = new HashMap<String, String>();   private final static String ZH = "zh";   private final static String ZH_CN = "zh-cn";      private final static String EN = "en";   private final static String EN_US = "en";         static    {      langMap.put(ZH, ZH_CN);      langMap.put(EN, EN_US);   }      public static String getBrowserLanguage(HttpServletRequest request) {            String browserLang = request.getLocale().getLanguage();      String browserLangCode = (String)langMap.get(browserLang);            if(browserLangCode == null)      {         browserLangCode = EN_US;      }      return browserLangCode;   }}
原创粉丝点击