java request.getHeader("user-agent")获取浏览器信息的方法

 更新时间:2019年03月29日 14:53:22   作者:天才小小布  
这篇文章主要介绍了java request.getHeader("user-agent")获取浏览器信息的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、User Agent的含义

User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。

一些网站常常通过判断 UA 来给不同的操作系统、不同的浏览器发送不同的页面,因此可能造成某些页面无法在某个浏览器中正常显示,但通过伪装 UA 可以绕过检测。

浏览器的 UA 字串
标准格式为: 浏览器标识 (操作系统标识; 加密等级标识; 浏览器语言) 渲染引擎标识 版本信息

浏览器标识
由于很多网站在进行 UA 检测的时候忽略了两位数版本号,所以可能造成 浏览器及之后版本收到糟糕的页面,因此自 浏览器 10 之后的版本中浏览器标识项固定为 浏览器,在 UA 字串尾部添加真实版本信息。

注:来源自百度百科

当在浏览器发起一个请求后,我们可以查看请求信息。

 

Request Headers:请求头会包含请求信息。

二:获得浏览器请求头中的User-Agent

(1)请求

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

(2)获取

User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36

三、UserAgentUtils.jar

UserAgentUtils.jar是UserAgent的工具类。

(1)maven

<!-- https://mvnrepository.com/artifact/eu.bitwalker/UserAgentUtils -->
<dependency>
  <groupId>eu.bitwalker</groupId>
  <artifactId>UserAgentUtils</artifactId>
  <version>1.20</version>
</dependency>

(2)java代码

UserAgent userAgent = UserAgent.parseUserAgentString(request.getHeader("User-Agent")); 
Browser browser = userAgent.getBrowser(); 
OperatingSystem os = userAgent.getOperatingSystem();

参考文章:

java 获取HttpRequest Header的几种方法(必看篇)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • SWT(JFace) 图片浏览器 实现代码

    SWT(JFace) 图片浏览器 实现代码

    SWT(JFace)小制作:图片浏览器
    2009-06-06
  • Java线程池的拒绝策略实现详解

    Java线程池的拒绝策略实现详解

    这篇文章主要介绍了Java线程池的拒绝策略实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Java实现整数分解质因数的方法示例

    Java实现整数分解质因数的方法示例

    这篇文章主要介绍了Java实现整数分解质因数的方法,结合实力形式分析了质因数分解的原理与实现方法,涉及java数值运算相关操作技巧,需要的朋友可以参考下
    2017-12-12
  • Java8新特性:Lambda表达式之方法引用详解

    Java8新特性:Lambda表达式之方法引用详解

    这篇文章主要给大家介绍了关于Java8新特性:Lambda表达式之方法引用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • java去除重复对象的简单实例

    java去除重复对象的简单实例

    下面小编就为大家带来一篇java去除重复对象的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • 通过Java Reflection实现编译时注解正确处理方法

    通过Java Reflection实现编译时注解正确处理方法

    Java注解是一种标记在JDK5及以后的版本中引入,用于Java语言中向程序添加元数据的方法,这篇文章主要介绍了通过Java Reflection实现编译时注解处理方法,需要的朋友可以参考下
    2023-06-06
  • review引发的有关于单例模式的思考

    review引发的有关于单例模式的思考

    一次代码调试中发现一个情况,即我在查看memcached的connection时,发现总是维持在100来个左右,当然这看似没什么问题,因为memcached默认connection有1024个。
    2013-04-04
  • 基于mybatis like %%的问题

    基于mybatis like %%的问题

    这篇文章主要介绍了mybatis like %%的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • 关于Spring中的@Configuration中的proxyBeanMethods属性

    关于Spring中的@Configuration中的proxyBeanMethods属性

    这篇文章主要介绍了关于Spring中的@Configuration中的proxyBeanMethods属性,需要的朋友可以参考下
    2023-07-07
  • java匿名内部类实例简析

    java匿名内部类实例简析

    匿名类是不能有名称的类,所以没办法引用它们,必须在创建时,作为new语句的一部分来声明它们,需要了解更多的可以参考本文
    2012-11-11

最新评论