java 解析user-agent 信息

 更新时间:2016年07月03日 16:49:38   投稿:hebedich  
这篇文章主要介绍了java 解析http user-agent的信息的相关资料,需要的朋友可以参考下

解析http user-agent信息,使用uasparser-0.6.1.jar和jregex-1.2_01.jar两个包

import cz.mallat.uasparser.OnlineUpdater;
import cz.mallat.uasparser.UASparser;
import cz.mallat.uasparser.UserAgentInfo;


import java.io.IOException;

/**
 * Created by Edward on 2016/7/1.
 */
public class UserAgentUtil {

  static UASparser uasParser = null;

  // 初始化uasParser对象
  static {
    try {
      uasParser = new UASparser(OnlineUpdater.getVendoredInputStream());
    } catch (IOException e) {
      e.printStackTrace();
    }
  }

  public static void main(String[] args)
  {
    String str = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.130 Safari/537.36";
    System.out.println(str);
    try {
      UserAgentInfo userAgentInfo = UserAgentUtil.uasParser.parse(str);
      System.out.println("操作系统名称:"+userAgentInfo.getOsFamily());//
      System.out.println("操作系统:"+userAgentInfo.getOsName());//
      System.out.println("浏览器名称:"+userAgentInfo.getUaFamily());//
      System.out.println("浏览器版本:"+userAgentInfo.getBrowserVersionInfo());//
      System.out.println("设备类型:"+userAgentInfo.getDeviceType());
      System.out.println("浏览器:"+userAgentInfo.getUaName());
      System.out.println("类型:"+userAgentInfo.getType());

    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

运行结果:

User-Agent信息通过浏览器自带工具可查看:

如下使用的是chrome浏览器

程序中static块,在初始化的时候被执行,初始化情况如下:

1.当创建某个类的新实例时;
2.当调用某个类的静态方法时;
3.当使用某个类或接口的静态字段时;
4.当调用Java API中的某些反射方法时,比如类Class中的方法,或者java.lang.reflect中的类的方法时;
5.当初始化某个子类时;
6.当虚拟机启动某个被标明为启动类的类(main方法);

以上就是本文的全部内容了,希望大家能够喜欢

相关文章

  • Java 输入输出 IO NIO AIO三兄弟对比分析对比分析

    Java 输入输出 IO NIO AIO三兄弟对比分析对比分析

    这篇文章主要为大家介绍了Java 输入输出 IO NIO AIO三兄弟对比分析对比分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • intellij idea的快速配置使用详细教程

    intellij idea的快速配置使用详细教程

    这篇文章主要介绍了intellij idea的快速配置使用详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • Java数字和字符串拼接原理及案例

    Java数字和字符串拼接原理及案例

    这篇文章主要介绍了Java数字和字符串拼接原理及案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Spring Cloud 2023 新特性支持同步网关

    Spring Cloud 2023 新特性支持同步网关

    这篇文章主要为大家介绍了Spring Cloud 2023 新特性支持同步网关讲解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • 浅谈为什么同一个java文件只能有一个public类

    浅谈为什么同一个java文件只能有一个public类

    这篇文章主要介绍了浅谈为什么同一个java文件只能有一个public类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • 通过字节码看java中this的隐式传参详解

    通过字节码看java中this的隐式传参详解

    这篇文章主要给大家介绍了关于如何通过字节码看java中this的隐式传参的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • IntelliJ IDEA 2022.1.1创建java项目的详细方法步骤

    IntelliJ IDEA 2022.1.1创建java项目的详细方法步骤

    最近安装了IntelliJ IDEA 2022.1.1,发现新版本的窗口还有些变化的,所以下面这篇文章主要给大家介绍了关于IntelliJ IDEA 2022.1.1创建java项目的详细方法步骤,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • 详解Spring boot Admin 使用eureka监控服务

    详解Spring boot Admin 使用eureka监控服务

    本篇文章主要介绍了详解Spring boot Admin 使用eureka监控服务,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • SpringBoot 中使用 Validation 校验参数的方法详解

    SpringBoot 中使用 Validation 校验参数的方法详解

    Validation 是用于检查程序代码中参数的有效性的框架,作为 Spring 框架中的一个参数校验工具,集成在 spring-context 包中,这篇文章主要介绍了SpringBoot 中使用 Validation 校验参数,需要的朋友可以参考下
    2022-05-05
  • PostMan如何传参给@RequestBody(接受前端参数)

    PostMan如何传参给@RequestBody(接受前端参数)

    这篇文章主要介绍了PostMan如何传参给@RequestBody(接受前端参数),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10

最新评论