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方法);

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

相关文章

  • SpringBoot集成JPA的示例代码

    SpringBoot集成JPA的示例代码

    本篇文章主要介绍了SpringBoot集成JPA的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • Spring Session(分布式Session共享)实现示例

    Spring Session(分布式Session共享)实现示例

    这篇文章主要介绍了Spring Session(分布式Session共享)实现示例,文章内容详细,需要的朋友可以参考下
    2023-01-01
  • Java动态代理之拦截器的应用

    Java动态代理之拦截器的应用

    今天小编就为大家分享一篇关于Java动态代理之拦截器的应用,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • java面向对象设计原则之开闭原则示例解析

    java面向对象设计原则之开闭原则示例解析

    这篇文章主要介绍了java面向对象设计原则之开闭原则的示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2021-10-10
  • IDEA使用技巧之如何将本地项目和git远程项目关联

    IDEA使用技巧之如何将本地项目和git远程项目关联

    这篇文章主要介绍了IDEA使用技巧之如何将本地项目和git远程项目关联问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Java微信公众平台开发(8) 多媒体消息回复

    Java微信公众平台开发(8) 多媒体消息回复

    这篇文章主要为大家详细介绍了Java微信公众平台开发第八步,微信多媒体消息回复,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • Spring配置数据源的三种方式(小结)

    Spring配置数据源的三种方式(小结)

    本文主要介绍了Spring配置数据源的三种方式,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Java核心库实现简单的AOP

    Java核心库实现简单的AOP

    这篇文章主要介绍了如何用Java核心库实现简单的AOP,帮助大家为了更好的理解和学习AOP的思想,感兴趣的朋友可以了解下
    2020-08-08
  • Java中IO的NIO通道解析

    Java中IO的NIO通道解析

    这篇文章主要介绍了Java中IO的NIO通道解析,NIO 提供了与传统 BIO 模型中的 Socket 和 ServerSocket 相对应的 SocketChannel 和 ServerSocketChannel 两种不同的套接字通道实现,需要的朋友可以参考下
    2024-01-01
  • Java Spring详解如何配置数据源注解开发以及整合Junit

    Java Spring详解如何配置数据源注解开发以及整合Junit

    Spring 是目前主流的 Java Web 开发框架,是 Java 世界最为成功的框架。该框架是一个轻量级的开源框架,具有很高的凝聚力和吸引力,本篇文章带你了解如何配置数据源、注解开发以及整合Junit
    2021-10-10

最新评论