/**
*
* @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
分享到:
相关推荐
`request.getHeader("user-agent")`是Java Web开发中获取客户端浏览器信息的常用方法。通过解析返回的User-Agent字符串,开发者可以了解到用户的浏览器类型、版本、操作系统等关键信息,从而进行更精确的用户行为...
Okhttp提供了一个灵活的机制来customized请求头信息,我们可以通过Interceptor来实现对User-Agent删除等操作。同时,我们也可以使用Okhttp提供的其他机制,例如addHeader、removeHeader等,来实现对请求头的控制。 ...
- `request.getHeader("User-Agent")`: 获取客户端浏览器信息。 - `request.getHeader("Connection")`: 获取客户端希望使用的连接类型。 - `request.getHeader("Cookie")`: 获取客户端发送的Cookie。 #### 四、...
这可以通过调用`request.getHeader("User-Agent")`方法来实现: ```java String agent = request.getHeader("User-Agent"); ``` ##### 2. 解析User-Agent字符串 由于User-Agent字符串中包含了丰富的信息,因此...
为了获取客户端的浏览器版本,我们可以使用 `request.getHeader("User-Agent")` 方法。`User-Agent` 头信息是浏览器在发送请求时添加的,用于标识浏览器的类型和版本。 我们可以使用以下代码来获取客户端的浏览器...
描述中提到的"通过request.getHeader("User-Agent")信息返回用户浏览器版本和使用操作系统版本",是Java Web应用中常见的做法。在Servlet或者Filter中,我们可以从`HttpServletRequest`对象的`getHeader()`方法中...
通过`request.getHeader("user-agent")`可以获取到这一信息。 #### 示例代码: ```java String agent = request.getHeader("user-agent"); System.out.println(agent); ``` ### 二、解析User-Agent User-Agent...
获取客户端IP地址、浏览器版本和操作系统信息在...在获取浏览器版本和操作系统信息时,我们可以使用`request.getHeader("User-Agent")`方法来获取相关信息,并使用字符串分割方法来提取出浏览器的名称和操作系统信息。
1. **正确处理`User-Agent`字符串**:由于`User-Agent`字符串格式多样且复杂,建议使用成熟的第三方库如`User-Agent-Analyzer`等来解析,以提高准确性和鲁棒性。 2. **安全性考虑**:`User-Agent`字符串可以被篡改...
这段代码首先通过`request.getHeader("User-Agent")`获取客户端的User-Agent信息,然后根据User-Agent字符串中的关键词判断浏览器类型,并设置相应的文件名编码方式。 #### 结论 通过以上分析可以看出,在Java Web...
这里,我们使用`request.getHeader("User-Agent")`获取User-Agent,然后将其转换为小写并检查是否包含"mobile"。 总的来说,这些方法都是基于User-Agent来判断用户设备,但需要注意的是,这种方法并不完全可靠,...
这段代码中,`doGet`方法接收HTTP请求,并通过`request.getHeader("User-Agent")`获取`User-Agent`字符串。然后,它调用`isMobileDevice`方法来判断该设备是否为移动设备。`isMobileDevice`方法检查`User-Agent`中...
通过`request.getHeader("user-agent")`可以获取到用户的浏览器信息。例如: ```java String agent = request.getHeader("user-agent"); System.out.println(agent); ``` 此行代码用于获取用户代理字符串,它包含...
String userAgent = request.getHeader("user-agent"); String host = request.getHeader("host"); String contentLength = request.getHeader("content-length"); String connection = request.getHeader(...
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(...
String userAgentString = request.getHeader("User-Agent"); UserAgent userAgent = UserAgent.parseUserAgentString(userAgentString); String browserFamily = userAgent.getUserAgentFamily(); String osFamily ...
UserAgent userAgent = UserAgent.parseUserAgentString(request.getHeader("User-Agent")); System.out.println(userAgent.getOperatingSystem().getName()); ``` 在上面的代码中,我们首先导入了`UserAgentUtils`...
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 ...