解析http user-agent信息,使用uasparser-0.6.1.jar和jregex-1.2_01.jar兩個包
1 import cz.mallat.uasparser.OnlineUpdater; 2 import cz.mallat.uasparser.UASparser; 3 import cz.mallat.uasparser.UserAgentInfo; 4 5 6 import java.io.IOException; 7 8 /** 9 * Created by Edward on 2016/7/1. 10 */ 11 public class UserAgentUtil { 12 13 static UASparser uasParser = null; 14 15 // 初始化uasParser對象 16 static { 17 try { 18 uasParser = new UASparser(OnlineUpdater.getVendoredInputStream()); 19 } catch (IOException e) { 20 e.printStackTrace(); 21 } 22 } 23 24 public static void main(String[] args) 25 { 26 String str = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.130 Safari/537.36"; 27 System.out.println(str); 28 try { 29 UserAgentInfo userAgentInfo = UserAgentUtil.uasParser.parse(str); 30 System.out.println("操作系統名稱:"+userAgentInfo.getOsFamily());// 31 System.out.println("操作系統:"+userAgentInfo.getOsName());// 32 System.out.println("浏覽器名稱:"+userAgentInfo.getUaFamily());// 33 System.out.println("浏覽器版本:"+userAgentInfo.getBrowserVersionInfo());// 34 System.out.println("設備類型:"+userAgentInfo.getDeviceType()); 35 System.out.println("浏覽器:"+userAgentInfo.getUaName()); 36 System.out.println("類型:"+userAgentInfo.getType()); 37 38 } catch (IOException e) { 39 e.printStackTrace(); 40 } 41 } 42 }
運行結果:
User-Agent信息通過浏覽器自帶工具可查看:
如下使用的是chrome浏覽器
程序中static塊,在初始化的時候被執行,初始化情況如下:
1.當創建某個類的新實例時;
2.當調用某個類的靜態方法時;
3.當使用某個類或接口的靜態字段時;
4.當調用Java API中的某些反射方法時,比如類Class中的方法,或者java.lang.reflect中的類的方法時;
5.當初始化某個子類時;
6.當虛擬機啟動某個被標明為啟動類的類(main方法);