现在很多网站都支持判断客户端平台、浏览器,比如新浪微博、http://zww.me/。个人总结了一下根据 User Agent String 判断客户端的 Java 程序,未完待续,作者有空的话会随时更新,目前只支持主流的几个平台和浏览器。也希望朋友们可以进行补充,如果有什么好的意见可以跟帖留言,毕竟个人的力量是有限的,谢谢。
数据封装的 UserAgent 代码如下:
package com.defonds.sample.web.entity;
/**
* 根据 user agent string 来判断出客户端的浏览器以及平台等信息
* @author Defonds
*/
public class UserAgent {
private String browserType;//浏览器类型
private String browserVersion;//浏览器版本
private String platformType;//平台类型
private String platformSeries;//平台系列
private String platformVersion;//平台版本
public UserAgent(){}
public UserAgent(String browserType, String browserVersion,
String platformType, String platformSeries, String platformVersion){
this.browserType = browserType;
this.browserVersion = browserVersion;
this.platformType = platformType;
this.platformSeries = platformSeries;
this.platformVersion = platformVersion;
}
public String getBrowserType() {
return browserType;
}
public void setBrowserType(String browserType) {
this.browserType = browserType;
}
public String getBrowserVersion() {
return browserVersion;
}
public void setBrowserVersion(String browserVersion) {
this.browserVersion = browserVersion;
}
public String getPlatformType() {
return platformType;
}
public void setPlatformType(String platformType) {
this.platformType = platformType;
}
public String getPlatformSeries() {
return platformSeries;
}
public void setPlatformSeries(String platformSeries) {
this.platformSeries = platformSeries;
}
public String getPlatformVersion() {
return platformVersion;
}
public void setPlatformVersion(String platformVersion) {
this.platformVersion = platformVersion;
}
}
判断处理的 UserAgentUtil 代码如下:
package com.defonds.sample.common.util;
import org.apache.commons.lang.StringUtils;
import com.defonds.sample.web.entity.UserAgent;
/**
* 根据 user agent string 判断用户的平台、浏览器
* 参考资料
* **************************************************************************************************************************************************
*
* 台式机
*
* Linux Ubuntu
* Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.2pre) Gecko/20100225 Ubuntu/9.10 (karmic) Namoroka/3.6.2pre
* --------------------------------------------------------------------------------------------------------------------------------------------------
* Linux Mandriva 2008.1
* Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008072403 Mandriva/3.0.1-1mdv2008.1 (2008.1) Firefox/3.0.1
* --------------------------------------------------------------------------------------------------------------------------------------------------
* Linux suSE 10.1
* Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.3) Gecko/20060425 SUSE/1.5.0.3-7 Firefox/1.5.0.31
* --------------------------------------------------------------------------------------------------------------------------------------------------
* Windows XP SP3
* Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1) Gecko/20090624 Firefox/3.5 (.NET CLR 3.5.30729)
* --------------------------------------------------------------------------------------------------------------------------------------------------
* Windows Vista
* Mozilla/5.0 (Windows; U; Windows NT 6.1; nl; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
* Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.