在后台获取浏览器的名称和版本号

来源:互联网 发布:如果不爱我 网络歌手 编辑:程序博客网 时间:2024/04/28 23:37
public final class InvokeClientUtil {

private InvokeClientUtil() {
}

public static final String UNKOWN_INVOKER = "unknown client";

public static final Pattern IE_REXP = Pattern.compile("msie ([\\d.]+)");
public static final Pattern FIREFOX_REXP = Pattern.compile("firefox/([\\d.]+)");
public static final Pattern CHROME_REXP = Pattern.compile("chrome/([\\d.]+)");
public static final Pattern OPERA_REXP = Pattern.compile("opera.([\\d.]+)");
public static final Pattern SAFARI_REXP = Pattern.compile("version/([\\d.]+).*safari");



public static String getBrowser(String userAgent) {
if (StringUtil.isEmpty(userAgent)) {
throw new NullPointerException("userAgent");
}

String browser = UNKOWN_INVOKER;
String lowerUAgent = userAgent.toLowerCase();

Matcher ieMatcher = IE_REXP.matcher(lowerUAgent);
Matcher ffMatcher = FIREFOX_REXP.matcher(lowerUAgent);
Matcher chMatcher = CHROME_REXP.matcher(lowerUAgent);
Matcher opMatcher = OPERA_REXP.matcher(lowerUAgent);
Matcher saMatcher = SAFARI_REXP.matcher(lowerUAgent);

if (ieMatcher.find()) {
browser = ieMatcher.group();
} else if (ffMatcher.find()) {
browser = ffMatcher.group();
} else if (chMatcher.find()) {
browser = chMatcher.group();
} else if (opMatcher.find()) {
browser = opMatcher.group();
} else if (saMatcher.find()) {
browser = saMatcher.group();


return browser;
}

}

//通过消息头获取“User-Ahent”,

// Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22

String us = request.getHeader("User-Agent");
System.out.println(us);

        System.out.println(InvokeClientUtil.getBrowser(us));

原创粉丝点击