`
songylwq
  • 浏览: 129778 次
  • 性别: Icon_minigender_1
  • 来自: 济南
文章分类
社区版块
存档分类
最新评论

java 通过request.getHeader("user-agent")解析浏览器

 
阅读更多
/**
 * 
 * @author cc
 * 20120307
 */
public class BrowseTool {
	private final static String IE9="MSIE 9.0";
	private final static String IE8="MSIE 8.0";
	private final static String IE7="MSIE 7.0";
	private final static String IE6="MSIE 6.0";
	private final static String MAXTHON="Maxthon";
	private final static String QQ="QQBrowser";
	private final static String GREEN="GreenBrowser";
	private final static String SE360="360SE";
	private final static String FIREFOX="Firefox";
	private final static String OPERA="Opera";
	private final static String CHROME="Chrome";
	private final static String SAFARI="Safari";
	private final static String OTHER="其它";
	
	
	public String checkBrowse(String userAgent){
		if(regex(OPERA, userAgent))return OPERA;
		if(regex(CHROME, userAgent))return CHROME;
		if(regex(FIREFOX, userAgent))return FIREFOX;
		if(regex(SAFARI, userAgent))return SAFARI;
		if(regex(SE360, userAgent))return SE360;
		if(regex(GREEN,userAgent))return GREEN;
		if(regex(QQ,userAgent))return QQ;
		if(regex(MAXTHON, userAgent))return MAXTHON;
		if(regex(IE9,userAgent))return IE9;
		if(regex(IE8,userAgent))return IE8;
		if(regex(IE7,userAgent))return IE7;
		if(regex(IE6,userAgent))return IE6;
		return OTHER;
	}
	public boolean regex(String regex,String str){
		Pattern p =Pattern.compile(regex,Pattern.MULTILINE);
		Matcher m=p.matcher(str);
		return m.find();
	}
	
	public static void main(String[] args) {
		String ie9    ="Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)";
		String ie8    ="Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322)";
		String ie7    ="Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322)";
		String ie6    ="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)";
		String aoyou  ="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; Maxthon 2.0)";
		String qq     ="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322) QQBrowser/6.8.10793.201";
		String green  ="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; GreenBrowser)";
		String se360  ="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; 360SE)";
		
		String chrome ="Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/534.11 (KHTML, like Gecko) Chrome/9.0.570.0 Safari/534.11";               
		String safari ="Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN) AppleWebKit/533.17.8 (KHTML, like Gecko) Version/5.0.1 Safari/533.17.8";
		String fireFox="Mozilla/5.0 (Windows NT 5.2; rv:7.0.1) Gecko/20100101 Firefox/7.0.1";
		String opera  ="Opera/9.80  (Windows NT 5.2; U; zh-cn) Presto/2.9.168 Version/11.51";
		String other  ="(Windows NT 5.2; U; zh-cn) Presto/2.9.168 Version/11.51";
		BrowseTool b=new BrowseTool();
		System.out.println(b.checkBrowse(ie9));
		System.out.println(b.checkBrowse(ie8));
		System.out.println(b.checkBrowse(ie7));
		System.out.println(b.checkBrowse(ie6));
		System.out.println(b.checkBrowse(aoyou));
		System.out.println(b.checkBrowse(qq));
		System.out.println(b.checkBrowse(green));
		System.out.println(b.checkBrowse(se360));
		System.out.println(b.checkBrowse(chrome));
		System.out.println(b.checkBrowse(safari));
		System.out.println(b.checkBrowse(fireFox));
		System.out.println(b.checkBrowse(opera));
		System.out.println(b.checkBrowse(other));
	}
	
}

引用页面:http://www.oschina.net/code/snippet_114195_9146

分享到:
评论

相关推荐

    java request.getHeader("user-agent")获取浏览器信息的方法

    `request.getHeader("user-agent")`是Java Web开发中获取客户端浏览器信息的常用方法。通过解析返回的User-Agent字符串,开发者可以了解到用户的浏览器类型、版本、操作系统等关键信息,从而进行更精确的用户行为...

    JSP获取HTTP header信息(request)例子

    - `request.getHeader("User-Agent")`: 获取客户端浏览器信息。 - `request.getHeader("Connection")`: 获取客户端希望使用的连接类型。 - `request.getHeader("Cookie")`: 获取客户端发送的Cookie。 #### 四、...

    JSP获取客户端的浏览器和操作系统信息.pdf

    这可以通过调用`request.getHeader("User-Agent")`方法来实现: ```java String agent = request.getHeader("User-Agent"); ``` ##### 2. 解析User-Agent字符串 由于User-Agent字符串中包含了丰富的信息,因此...

    JSP获取客户端IP地址-浏览器版本-操作系统[参考].pdf

    为了获取客户端的浏览器版本,我们可以使用 `request.getHeader("User-Agent")` 方法。`User-Agent` 头信息是浏览器在发送请求时添加的,用于标识浏览器的类型和版本。 我们可以使用以下代码来获取客户端的浏览器...

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

    描述中提到的"通过request.getHeader("User-Agent")信息返回用户浏览器版本和使用操作系统版本",是Java Web应用中常见的做法。在Servlet或者Filter中,我们可以从`HttpServletRequest`对象的`getHeader()`方法中...

    Java获取客户端信息代码

    通过`request.getHeader("user-agent")`可以获取到这一信息。 #### 示例代码: ```java String agent = request.getHeader("user-agent"); System.out.println(agent); ``` ### 二、解析User-Agent User-Agent...

    JSP获取客户端IP地址浏览器版本操作系统.pdf

    获取客户端IP地址、浏览器版本和操作系统信息在...在获取浏览器版本和操作系统信息时,我们可以使用`request.getHeader("User-Agent")`方法来获取相关信息,并使用字符串分割方法来提取出浏览器的名称和操作系统信息。

    JSP获取客户端的浏览器和操作系统信息

    1. **正确处理`User-Agent`字符串**:由于`User-Agent`字符串格式多样且复杂,建议使用成熟的第三方库如`User-Agent-Analyzer`等来解析,以提高准确性和鲁棒性。 2. **安全性考虑**:`User-Agent`字符串可以被篡改...

    java导出文件文件名处理

    这段代码首先通过`request.getHeader("User-Agent")`获取客户端的User-Agent信息,然后根据User-Agent字符串中的关键词判断浏览器类型,并设置相应的文件名编码方式。 #### 结论 通过以上分析可以看出,在Java Web...

    判断用户是否使用手机浏览器

    这里,我们使用`request.getHeader("User-Agent")`获取User-Agent,然后将其转换为小写并检查是否包含"mobile"。 总的来说,这些方法都是基于User-Agent来判断用户设备,但需要注意的是,这种方法并不完全可靠,...

    Java servlet判断是否是移动设备

    这段代码中,`doGet`方法接收HTTP请求,并通过`request.getHeader("User-Agent")`获取`User-Agent`字符串。然后,它调用`isMobileDevice`方法来判断该设备是否为移动设备。`isMobileDevice`方法检查`User-Agent`中...

    Java获取客户端代码大全

    通过`request.getHeader("user-agent")`可以获取到用户的浏览器信息。例如: ```java String agent = request.getHeader("user-agent"); System.out.println(agent); ``` 此行代码用于获取用户代理字符串,它包含...

    jsp编程中的小技巧(仅供参考)

    String userAgent = request.getHeader("user-agent"); String host = request.getHeader("host"); String contentLength = request.getHeader("content-length"); String connection = request.getHeader(...

    UserAgentUtils-1.13.jar

    UserAgent userAgent = UserAgent.parseUserAgentString(request.getHeader("User-Agent")); Browser browser = userAgent.getBrowser(); OperatingSystem os = userAgent.getOperatingSystem(); System.out....

    判断是否是手机

    - 在Java Servlet中,可以通过`HttpServletRequest`对象的`getHeader()`方法获取`User-Agent`。然后使用正则表达式或者预定义的设备模式匹配来识别设备类型。 ```java String userAgent = request.getHeader(...

    UserAgentUtils-1.20

    String userAgentString = request.getHeader("User-Agent"); UserAgent userAgent = UserAgent.parseUserAgentString(userAgentString); String browserFamily = userAgent.getUserAgentFamily(); String osFamily ...

    java-maven-UserAgentUtils-1.13-jar包依赖

    UserAgent userAgent = UserAgent.parseUserAgentString(request.getHeader("User-Agent")); System.out.println(userAgent.getOperatingSystem().getName()); ``` 在上面的代码中,我们首先导入了`UserAgentUtils`...

    java判断PC端,Andiro,IOS

    String userAgent = request.getHeader("user-agent").toLowerCase(); if (userAgent.indexOf("micromessenger") != -1) { // 微信客户端 } else if (userAgent.indexOf("android") != -1) { // 安卓客户端 } ...

    解决不同浏览器下载时中文名乱码问题

    1. **获取用户代理信息**:通过`HttpServletRequest`对象的`getHeader("User-Agent")`方法获取用户浏览器的类型。 2. **根据浏览器类型选择编码方式**: - **Firefox**:使用ISO-8859-1编码。 - **Internet ...

    案例111

    在Java Servlet中,同样可以通过`HttpServletRequest`对象的`getHeader(String name)`方法来获取这个头的值,传入"User-Agent"作为参数。用户代理字符串可以解析出丰富的信息,例如,"Mozilla/5.0 (Windows NT 10.0;...

Global site tag (gtag.js) - Google Analytics