方法一:利用UserAgentUtils-1.2.4.jar
方法二:利用利用原生API
大致代码如下:
导包:
<dependency>
<groupId>nl.bitwalker</groupId>
<artifactId>UserAgentUtils</artifactId>
<version>1.2.4</version>
</dependency>
Action:
package cn.tedu.web;
import javax.servlet.http.HttpServletRequest;
import nl.bitwalker.useragentutils.Browser;
import nl.bitwalker.useragentutils.OperatingSystem;
import nl.bitwalker.useragentutils.UserAgent;
import org.apache.struts2.ServletActionContext;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import cn.tedu.json.BaseAction;
//测试浏览器类型
@Controller
@Scope("prototype")
public class AgentAction extends BaseAction{
//利用包UserAgentUtils-1.2.4.jar
public String agent(){
//request为HttpServletRequest
HttpServletRequest req = ServletActionContext.getRequest();
//获取浏览器信息
String ua = req.getHeader("User-Agent");
//转成UserAgent对象
UserAgent userAgent = UserAgent.parseUserAgentString(ua);
//获取浏览器信息
Browser browser = userAgent.getBrowser();
//获取系统信息
OperatingSystem os = userAgent.getOperatingSystem();
//系统名称
String system = os.getName();
//浏览器名称
String browserName = browser.getName();
System.out.println("浏览器信息:" + ua);
System.out.println("UserAgent对象:" + userAgent);
System.out.println("浏览器信息:" + browser);
System.out.println("系统信息:" + os);
System.out.println("系统名称:" + system);
System.out.println("浏览器名称:" + browserName);
return NONE;
}
//利用原生API
public String aboriginal(){
//request为HttpServletRequest
HttpServletRequest req = ServletActionContext.getRequest();
//获取浏览器信息
String agent = req.getHeader("User-Agent");
System.out.println(agent);
return NONE;
}
}
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="test3" namespace="/" extends="struts-default">
<action name="wq1" class="agentAction" method="agent"></action>
<action name="wq2" class="agentAction" method="aboriginal"></action>
</package>
</struts>
web.xml文件与spring-web.xml省略,与博客其他文章中配置相同
浏览器输入以下两个网址即可:
http://localhost:8000/struts_test/wq1
http://localhost:8000/struts_test/wq2
因为没有配置result标签,所以显示空白网页,执行AgentAction类中的两个方法
在谷歌浏览器中测试以上两个URL结果如下:
浏览器信息:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36
UserAgent对象:WINDOWS-CHROME
浏览器信息:CHROME
系统信息:WINDOWS
系统名称:Windows
浏览器名称:Chrome
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36
在IE11浏览器中测试以上两个URL结果如下:
浏览器信息:Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
UserAgent对象:WINDOWS-MOZILLA
浏览器信息:MOZILLA
系统信息:WINDOWS
系统名称:Windows
浏览器名称:Mozilla
Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
在Edge浏览器中测试以上两个URL结果如下:
浏览器信息:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134
UserAgent对象:WINDOWS-CHROME
浏览器信息:CHROME
系统信息:WINDOWS
系统名称:Windows
浏览器名称:Chrome
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134