request.getHeader("user-agent");这一方法得到的结果如何来获取浏...

最近把火狐浏览器的版本升级到了4.0.1这个版本,发现之前用到的下面这段代码解决不了获取浏览器和操作系统。

先看原码:

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

StringTokenizer st = new StringTokenizer(agent, ";");

st.nextToken();

String userBrowser = st.nextToken();// 得到用户的浏览器名

String userOS = st.nextToken();// 得到用户的操作系统名

看了下StringTokenizer类作用是字符串分隔解析类型,因此把不同的浏览器得到值进行了一下对比,结果如下:

浏览器名版本号请求头的值    
IE5 Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.1; SV1)    
IE66.0.2900.5512Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)    
IE7 Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1)    
IE88.0.6001.18702Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1)    
IE99.0.8112.16421Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)    
TT浏览器4.8Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; TencentTraveler 4.0)    
世界之窗3.4.0.5Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; TheWorld)    
       
火狐4.0.1Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1    
       
谷歌10.0.648.204Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16    
谷歌11.0.696.60Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.60 Safari/534.24    
       
Safari5.0.5Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1    
       
360极速版4.0.3.416Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.237 Safari/534.10    
       
Opera11.01Opera/9.80 (Windows NT 5.1; U; Edition IBIS; zh-cn) Presto/2.7.62 Version/11.01    

 

发现上面的方法只能针对IE内核的浏览器才有效,谷歌、火狐、safari、opera这类浏览器要如何做去条件判断呢?而且浏览器的不同版这样的请求头也是存在差异的,应该怎么来样来处理这样的问题?求高人指点?先谢谢了。

转载于:https://my.oschina.net/t150ckh/blog/16536

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值