`
lyjilu
  • 浏览: 175763 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

java获取浏览器类型及版本

阅读更多
public Map<String,String> getUserAgent(HttpServletRequest req){
		Map<String,String> Sys= new HashMap<String, String>();
		String ua = req.getHeader("User-Agent").toLowerCase();
		String s;
		String msieP = "msie ([\\d.]+)";
		String firefoxP = "firefox\\/([\\d.]+)";
		String chromeP = "chrome\\/([\\d.]+)";
		String operaP = "opera.([\\d.]+)/)";
		String safariP = "version\\/([\\d.]+).*safari";
		
		Pattern pattern = Pattern.compile(msieP);
		Matcher mat = pattern.matcher(ua);
		if(mat.find()){
			s=mat.group();
			Sys.put("type", "ie");
			Sys.put("version", s.split(" ")[1]);
			return Sys;
		}
		pattern = Pattern.compile(firefoxP);
		mat=pattern.matcher(ua);
		if(mat.find()){
			s=mat.group();
			System.out.println(s);
			Sys.put("type", "firefox");
			Sys.put("version", s.split("/")[1]);
			return Sys;
		}
		pattern = Pattern.compile(chromeP);
		mat=pattern.matcher(ua);
		if(mat.find()){
			s=mat.group();
			Sys.put("type", "chrome");
			Sys.put("version", s.split("/")[1]);
			return Sys;
		} 
		pattern = Pattern.compile(operaP);
		mat=pattern.matcher(ua);
		if(mat.find()){
			s=mat.group();
			Sys.put("type", "opera");
			Sys.put("version", s.split("\\.")[1]);
			return Sys;
		} 
		pattern = Pattern.compile(safariP);
		mat=pattern.matcher(ua);
		if(mat.find()){
			s=mat.group();
			Sys.put("type", "safari");
			Sys.put("version", s.split("/")[1].split(".")[0]);
			return Sys;
		} 
		return Sys;
	}

 

网上找的一段js获取,原理都是一样,通过浏览器的 User-Agent 获得,可以自由扩展:

/**
 * 获取浏览器类型及 版本
 * @returns 返回对象,两属性,type:表示浏览器类型,version:表示版本 {___anonymous25556_25557} 
 */
function getUserAgent(){
	var Sys={};
	var ua=navigator.userAgent.toLowerCase();
	var s;
	(s=ua.match(/msie ([\d.]+)/))?(Sys['type']='ie',Sys['version']=s[1]):
	(s=ua.match(/firefox\/([\d.]+)/))?(Sys['type']='firefox',Sys['version']=s[1]):
	(s=ua.match(/chrome\/([\d.]+)/))?(Sys['type']='chrome',Sys['version']=s[1]):
	(s=ua.match(/opera.([\d.]+)/))?(Sys['type']='opera',Sys['version']=s[1]):
	(s=ua.match(/version\/([\d.]+).*safari/))?(Sys['type']='safari',Sys['version']=s[1]):0;
	return Sys;
}

 

分享到:
评论
5 楼 endual 2015-02-03  
lyjilu 写道
endual 写道
lyjilu 写道
endual 写道
不科学的,恩多基于同一种内容的浏览器判断会有问题,不够严谨。

那没办法,不然就只有通过浏览器中嵌入js办法获取,但那样影响页面太多了


不是的。
根据代码是判断某一个浏览器的规则,那么我测试了下,发现如果基于同一种内核的浏览器可能或出现错误,例如QQ浏览器解析出来成了Chrome浏览器。

我的意思是,现在浏览器这么多,copy代码的同学们还是要根据实际情况,稍微改改的,
特别是规则的写法要针对某一个浏览器来写。

你是解决不了的,比如360高速模式用的UserAgent 和谷歌浏览器的一模一样,否则就是和IE一模一样,如果用这种方式你怎么改都判断不了的!


就是这个道理。
4 楼 lyjilu 2015-02-03  
endual 写道
lyjilu 写道
endual 写道
不科学的,恩多基于同一种内容的浏览器判断会有问题,不够严谨。

那没办法,不然就只有通过浏览器中嵌入js办法获取,但那样影响页面太多了


不是的。
根据代码是判断某一个浏览器的规则,那么我测试了下,发现如果基于同一种内核的浏览器可能或出现错误,例如QQ浏览器解析出来成了Chrome浏览器。

我的意思是,现在浏览器这么多,copy代码的同学们还是要根据实际情况,稍微改改的,
特别是规则的写法要针对某一个浏览器来写。

你是解决不了的,比如360高速模式用的UserAgent 和谷歌浏览器的一模一样,否则就是和IE一模一样,如果用这种方式你怎么改都判断不了的!
3 楼 endual 2015-02-02  
lyjilu 写道
endual 写道
不科学的,恩多基于同一种内容的浏览器判断会有问题,不够严谨。

那没办法,不然就只有通过浏览器中嵌入js办法获取,但那样影响页面太多了


不是的。
根据代码是判断某一个浏览器的规则,那么我测试了下,发现如果基于同一种内核的浏览器可能或出现错误,例如QQ浏览器解析出来成了Chrome浏览器。

我的意思是,现在浏览器这么多,copy代码的同学们还是要根据实际情况,稍微改改的,
特别是规则的写法要针对某一个浏览器来写。
2 楼 lyjilu 2015-02-01  
endual 写道
不科学的,恩多基于同一种内容的浏览器判断会有问题,不够严谨。

那没办法,不然就只有通过浏览器中嵌入js办法获取,但那样影响页面太多了
1 楼 endual 2015-01-31  
不科学的,恩多基于同一种内容的浏览器判断会有问题,不够严谨。

相关推荐

    判断浏览器版本及类型

    通过JavaScript可以实现对浏览器类型及版本的判断。 #### 1.2 实现原理 此段代码通过读取`navigator.userAgent`属性来获取浏览器信息,并通过正则表达式匹配来判断浏览器类型和版本。具体来说: - **`navigator....

    JS判断打开网页的浏览器类型与版本

    JavaScript 判断打开网页的浏览器类型与版本 在 JavaScript 中判断浏览器的类型和版本是一个非常重要的知识点,特别是在开发 web 应用程序时,需要根据不同的浏览器和版本进行不同的操作。下面我们将详细介绍 ...

    Java实现判断浏览器版本与类型简单代码示例

    Java实现判断浏览器版本与类型简单代码示例 在Web开发中,判断浏览器版本和类型是非常重要的,以便能够提供更好的用户体验。今天,我们将介绍如何使用Java来实现判断浏览器版本和类型的简单代码示例。 首先,让...

    超漂亮的纯JAVA浏览器

    由于是纯Java实现,这意味着它并不依赖于用户计算机上已安装的特定浏览器版本,而是自带有独立的渲染引擎。 在描述中提到的“内嵌火狐核心浏览器”,意味着这款JAVA浏览器采用了Mozilla Firefox的Gecko渲染引擎。...

    Java-Swing嵌入浏览器(本地浏览器和webkit浏览器-火狐内核)

    你可以指定浏览器的类型,例如选择使用WebKit引擎。 3. **设置浏览器容器**:将`Browser`实例放入Swing的容器,如`JPanel`或`JSplitPane`,以在Swing应用中显示。 4. **加载网页**:调用`Browser`对象的`setUrl()`...

    获取系统IP地址浏览器java

    在Java编程语言中,获取系统IP地址是一项常见的任务,尤其在开发网络应用或者与浏览器交互时更为重要。本文将深入探讨如何在Java中获取本地主机的IP地址,并结合浏览器环境进行详细阐述。 首先,让我们理解IP地址的...

    java网页浏览器课程设计

    在本“Java网页浏览器课程设计”项目中,我们将探讨如何使用Java编程语言构建一个基本的Web浏览器。这个项目不仅提供了一种实践Java技术的方式,也是理解网络通信和用户界面设计的良好起点。以下是一些关键的知识点...

    获取当前浏览器的类型及乱码问题

    ### 获取当前浏览器的类型及乱码问题 在Web开发中,了解用户使用的浏览器类型对于提供兼容性和优化用户体验至关重要。此外,处理中文等非ASCII字符集时可能会遇到乱码问题,这对提升网站的国际化水平提出了挑战。 ...

    java 打开浏览器

    在Java编程中,有时我们需要实现一个功能,即通过程序来打开本地计算机的默认浏览器来访问特定的URL。这个任务可以通过使用Java的`java.awt.Desktop`类来完成,该类提供了一种与操作系统进行交互的方法,包括打开...

    java 数据库浏览器

    JDBC是Java平台中的一个重要组件,由Sun Microsystems(现已被Oracle收购)制定并维护,为Java程序员提供了一种标准的方式来访问不同类型的数据库系统。 在这款数据库浏览器中,你可以执行SQL查询、浏览数据表、...

    java内嵌浏览器jxbrowser使用教程

    Java内嵌浏览器JxBrowser是一款强大的工具,它允许开发者在Java应用程序中集成Web浏览器功能,其内核基于Chromium,因此能良好地兼容大部分基于现代Web标准的前端框架,如React、Vue、Angular等。本教程将深入讲解...

    JAVA 制作HTML浏览器

    在Java编程领域,制作一个HTML浏览器是一项挑战性的任务,它涉及到对网络协议的理解、解析HTML文档、渲染页面以及处理用户交互等多个方面的知识。这个项目可以帮助开发者深入理解Web工作原理,并提升其Java技能。 ...

    Java做的浏览器小程序

    Java编程语言以其强大的功能和广泛的应用领域而闻名,它可以用于创建各种类型的应用程序,包括桌面应用、移动应用、服务器端应用以及我们今天讨论的主题——浏览器小程序。这些小程序通常是在Java环境中运行,提供一...

    UserAgent返回浏览器版本和操作系统版本工具类

    `User-Agent`是一个包含用户浏览器类型、版本、操作系统、设备等详细信息的字符串,通常由浏览器发送到服务器。 描述中提到的"通过request.getHeader("User-Agent")信息返回用户浏览器版本和使用操作系统版本",是...

    获取浏览器类型,屏幕分辨率,操作系统的JS代码

    用JavaiScript里的属性来获取浏览器的版本,屏幕的分辨率,操作系统。

    根据url获取网络图片通过浏览器下载的java解决方案

    解决chrome浏览器中点击链接,如果是浏览器可识别的文件类型,浏览器会自动打开而不是弹出下载框的方案

    根据User Agent String判断客户端平台及浏览器源程序[Java和PHP版]

    这个Java程序可能包含了分析UA字符串的类和方法,如`parseUserAgent()`,其中会细分出浏览器类型、版本、操作系统等信息。 PHP也是Web开发中常用的语言,它的实现方式可能包括使用内置的`$_SERVER['...

    运用java实现简单的浏览器功能

    在本文中,我们将深入探讨如何使用Java编程语言来实现一个简单的浏览器功能。Java以其跨平台性和丰富的类库,成为开发这种应用的理想选择。NETBEANS是一个流行的集成开发环境(IDE),它提供了用户友好的界面和强大...

    java后台调用HttpURLConnection类模拟浏览器请求实例(可用于接口调用)

    在Java编程中,有时我们需要模拟浏览器发送HTTP请求,例如调用外部接口或API。`HttpURLConnection`是Java标准库提供的一种轻量级的HTTP客户端,它允许我们在后台代码中发送GET和POST请求。本篇文章将深入讲解如何...

    JAVA文件夹浏览器

    在IT行业中,开发一个“JAVA文件夹浏览器”是一项常见的任务,尤其对于那些使用Eclipse集成开发环境的开发者来说。这个项目旨在实现一个功能完善的文件系统浏览工具,允许用户在Eclipse环境中遍历文件夹结构,并能...

Global site tag (gtag.js) - Google Analytics