123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- package org.jeecg.common.util;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- import javax.servlet.http.HttpServletRequest;
- /**
- *
- * @Author 张代浩
- *
- */
- 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;
- }
- }
|