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”

这里我们下载第二个,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()+
				"
名称:"+browser.getName()+
				"
厂商:"+browser.getManufacturer()+
				"
产品系列:"+browser.getGroup()+
				"
引擎:"+browser.getRenderingEngine());
		
		//浏览器版本
		Version version = agent.getBrowserVersion();
		System.out.println("========================");
		System.out.println("主版本:"+version.getMajorVersion()+
				"
小版本:"+version.getMinorVersion()+
				"
完整版本:"+version.getVersion());
		//操作系统
		System.out.println("========================");
		OperatingSystem os = agent.getOperatingSystem();
		System.out.println("名称:"+os.getName()+
				"
设备类型:"+os.getDeviceType()+
				"
产品系列:"+os.getGroup()+
				"
生成厂商:"+os.getManufacturer());
	}
四、测试



测试报告:

操作系统:windowsXP、windows7、windows8.1、MAC OS X、android4.4
浏览器:IE7、IE8、IE11、Firefox、Chrome
用事们的设备测试了下,在以上环境下都成功了。其他环境应该也没有问题。

原文地址:https://www.cnblogs.com/pengyan5945/p/5218306.html