JAVA EE获取浏览器和操作系统信息

一、原理说明:

 1. 浏览器访问服务端时,Http请求头上会带上客户端一些信息,可通过“user-agent”获取。

//java获取方法如下,其他语言也有自己获取方法

String agentStr = request.getHeader("user-agent");

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

2. 一般的方法是通过正则表达式解析字符串获取,在此我们直接使用第三方类库UserAgentUtils获取。

二、准备工作(下载依赖jar文件)

1. 访问http://mvnrepository.com/

2. 搜索“UserAgentUtils”

JAVA EE获取浏览器和操作系统信息JAVA EE获取浏览器和操作系统信息

这里我们下载第二个,2014年更新的。如果使用第一个,用IE11访问时,无法获取浏览器类型。

IE11于2013年11月07日随Windows8.1发行。

三、编写测试代码

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String agentStr = request.getHeader("user-agent");
System.out.println(agentStr);
UserAgent agent = UserAgent.parseUserAgentString(agentStr);
//浏览器
Browser browser = agent.getBrowser();
System.out.println("类型:"+browser.getBrowserType()+
"\n名称:"+browser.getName()+
"\n厂商:"+browser.getManufacturer()+
"\n产品系列:"+browser.getGroup()+
"\n引擎:"+browser.getRenderingEngine()); //浏览器版本
Version version = agent.getBrowserVersion();
System.out.println("========================");
System.out.println("主版本:"+version.getMajorVersion()+
"\n小版本:"+version.getMinorVersion()+
"\n完整版本:"+version.getVersion());
//操作系统
System.out.println("========================");
OperatingSystem os = agent.getOperatingSystem();
System.out.println("名称:"+os.getName()+
"\n设备类型:"+os.getDeviceType()+
"\n产品系列:"+os.getGroup()+
"\n生成厂商:"+os.getManufacturer());
}

四、测试

JAVA EE获取浏览器和操作系统信息JAVA EE获取浏览器和操作系统信息



JAVA EE获取浏览器和操作系统信息JAVA EE获取浏览器和操作系统信息

测试报告:

操作系统:windowsXP、windows7、windows8.1、MAC OS X、android4.4
浏览器:IE7、IE8、IE11、Firefox、Chrome
用事们的设备测试了下,在以上环境下都成功了。其他环境应该也没有问题。
上一篇:【故障处理】IMP-00010错误 12C的dmp文件导入11G


下一篇:【Linux/Ubuntu学习8】unbuntu 下播放swf文件