• 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
    用事们的设备测试了下,在以上环境下都成功了。其他环境应该也没有问题。

  • 相关阅读:
    Alpha版本发布说明
    团队作业week9
    Alpha版本发布时间安排
    2014年团队博客
    本周团队分数统计
    当前个人及团队分数统计
    团队作业week7
    Java FX入门
    Java第06次实验提纲(集合)
    Java第04次实验提纲(面向对象2-继承、多态、抽象类与接口)
  • 原文地址:https://www.cnblogs.com/pengyan5945/p/5218306.html
Copyright © 2020-2023  润新知