BrowserUtils.java 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. package org.jeecg.common.util;
  2. import java.util.HashMap;
  3. import java.util.Map;
  4. import java.util.regex.Matcher;
  5. import java.util.regex.Pattern;
  6. import javax.servlet.http.HttpServletRequest;
  7. /**
  8. *
  9. * @Author 张代浩
  10. *
  11. */
  12. public class BrowserUtils {
  13. // 判断是否是IE
  14. public static boolean isIE(HttpServletRequest request) {
  15. return (request.getHeader("USER-AGENT").toLowerCase().indexOf("msie") > 0 || request
  16. .getHeader("USER-AGENT").toLowerCase().indexOf("rv:11.0") > 0) ? true
  17. : false;
  18. }
  19. /**
  20. * 获取IE版本
  21. *
  22. * @param request
  23. * @return
  24. */
  25. public static Double getIEversion(HttpServletRequest request) {
  26. Double version = 0.0;
  27. if (getBrowserType(request, IE11)) {
  28. version = 11.0;
  29. } else if (getBrowserType(request, IE10)) {
  30. version = 10.0;
  31. } else if (getBrowserType(request, IE9)) {
  32. version = 9.0;
  33. } else if (getBrowserType(request, IE8)) {
  34. version = 8.0;
  35. } else if (getBrowserType(request, IE7)) {
  36. version = 7.0;
  37. } else if (getBrowserType(request, IE6)) {
  38. version = 6.0;
  39. }
  40. return version;
  41. }
  42. /**
  43. * 获取浏览器类型
  44. *
  45. * @param request
  46. * @return
  47. */
  48. public static BrowserType getBrowserType(HttpServletRequest request) {
  49. BrowserType browserType = null;
  50. if (getBrowserType(request, IE11)) {
  51. browserType = BrowserType.IE11;
  52. }
  53. if (getBrowserType(request, IE10)) {
  54. browserType = BrowserType.IE10;
  55. }
  56. if (getBrowserType(request, IE9)) {
  57. browserType = BrowserType.IE9;
  58. }
  59. if (getBrowserType(request, IE8)) {
  60. browserType = BrowserType.IE8;
  61. }
  62. if (getBrowserType(request, IE7)) {
  63. browserType = BrowserType.IE7;
  64. }
  65. if (getBrowserType(request, IE6)) {
  66. browserType = BrowserType.IE6;
  67. }
  68. if (getBrowserType(request, FIREFOX)) {
  69. browserType = BrowserType.Firefox;
  70. }
  71. if (getBrowserType(request, SAFARI)) {
  72. browserType = BrowserType.Safari;
  73. }
  74. if (getBrowserType(request, CHROME)) {
  75. browserType = BrowserType.Chrome;
  76. }
  77. if (getBrowserType(request, OPERA)) {
  78. browserType = BrowserType.Opera;
  79. }
  80. if (getBrowserType(request, "Camino")) {
  81. browserType = BrowserType.Camino;
  82. }
  83. return browserType;
  84. }
  85. private static boolean getBrowserType(HttpServletRequest request,
  86. String brosertype) {
  87. return request.getHeader("USER-AGENT").toLowerCase()
  88. .indexOf(brosertype) > 0 ? true : false;
  89. }
  90. private final static String IE11 = "rv:11.0";
  91. private final static String IE10 = "MSIE 10.0";
  92. private final static String IE9 = "MSIE 9.0";
  93. private final static String IE8 = "MSIE 8.0";
  94. private final static String IE7 = "MSIE 7.0";
  95. private final static String IE6 = "MSIE 6.0";
  96. private final static String MAXTHON = "Maxthon";
  97. private final static String QQ = "QQBrowser";
  98. private final static String GREEN = "GreenBrowser";
  99. private final static String SE360 = "360SE";
  100. private final static String FIREFOX = "Firefox";
  101. private final static String OPERA = "Opera";
  102. private final static String CHROME = "Chrome";
  103. private final static String SAFARI = "Safari";
  104. private final static String OTHER = "其它";
  105. public static String checkBrowse(HttpServletRequest request) {
  106. String userAgent = request.getHeader("USER-AGENT");
  107. if (regex(OPERA, userAgent)) {
  108. return OPERA;
  109. }
  110. if (regex(CHROME, userAgent)) {
  111. return CHROME;
  112. }
  113. if (regex(FIREFOX, userAgent)) {
  114. return FIREFOX;
  115. }
  116. if (regex(SAFARI, userAgent)) {
  117. return SAFARI;
  118. }
  119. if (regex(SE360, userAgent)) {
  120. return SE360;
  121. }
  122. if (regex(GREEN, userAgent)) {
  123. return GREEN;
  124. }
  125. if (regex(QQ, userAgent)) {
  126. return QQ;
  127. }
  128. if (regex(MAXTHON, userAgent)) {
  129. return MAXTHON;
  130. }
  131. if (regex(IE11, userAgent)) {
  132. return IE11;
  133. }
  134. if (regex(IE10, userAgent)) {
  135. return IE10;
  136. }
  137. if (regex(IE9, userAgent)) {
  138. return IE9;
  139. }
  140. if (regex(IE8, userAgent)) {
  141. return IE8;
  142. }
  143. if (regex(IE7, userAgent)) {
  144. return IE7;
  145. }
  146. if (regex(IE6, userAgent)) {
  147. return IE6;
  148. }
  149. return OTHER;
  150. }
  151. public static boolean regex(String regex, String str) {
  152. Pattern p = Pattern.compile(regex, Pattern.MULTILINE);
  153. Matcher m = p.matcher(str);
  154. return m.find();
  155. }
  156. private static Map<String, String> langMap = new HashMap<String, String>();
  157. private final static String ZH = "zh";
  158. private final static String ZH_CN = "zh-cn";
  159. private final static String EN = "en";
  160. private final static String EN_US = "en";
  161. static
  162. {
  163. langMap.put(ZH, ZH_CN);
  164. langMap.put(EN, EN_US);
  165. }
  166. public static String getBrowserLanguage(HttpServletRequest request) {
  167. String browserLang = request.getLocale().getLanguage();
  168. String browserLangCode = (String)langMap.get(browserLang);
  169. if(browserLangCode == null)
  170. {
  171. browserLangCode = EN_US;
  172. }
  173. return browserLangCode;
  174. }
  175. }