判断浏览器类型工具类

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;
   }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卫涛涛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值