HttpServletRequest request
= ServletActionContext
.getRequest();
System
.out
.println("浏览器基本信息:"+request
.getHeader("user-agent"));
System
.out
.println("客户端系统名称:"+System
.getProperty("os.name"));
System
.out
.println("客户端系统版本:"+System
.getProperty("os.version"));
System
.out
.println("客户端操作系统位数:"+System
.getProperty("os.arch"));
System
.out
.println("HTTP协议版本:"+request
.getProtocol());
System
.out
.println("请求编码格式:"+request
.getCharacterEncoding());
System
.out
.println("Accept:"+request
.getHeader("Accept"));
System
.out
.println("Accept-语言:"+request
.getHeader("Accept-Language"));
System
.out
.println("Accept-编码:"+request
.getHeader("Accept-Encoding"));
System
.out
.println("Connection:"+request
.getHeader("Connection"));
System
.out
.println("Cookie:"+request
.getHeader("Cookie"));
System
.out
.println("客户端发出请求时的完整URL"+request
.getRequestURL());
System
.out
.println("请求行中的资源名部分"+request
.getRequestURI());
System
.out
.println("请求行中的参数部分"+request
.getRemoteAddr());
System
.out
.println("客户机所使用的网络端口号"+request
.getRemotePort());
System
.out
.println("WEB服务器的IP地址"+request
.getLocalAddr());
System
.out
.println("WEB服务器的主机名"+request
.getLocalName());
System
.out
.println("客户机请求方式"+request
.getMethod());
System
.out
.println("请求的文件的路径"+request
.getServerName());
System
.out
.println("请求体的数据流"+request
.getReader());
BufferedReader br
=request
.getReader();
String res
= "";
while ((res
= br
.readLine()) != null
) {
System
.out
.println("request body:" + res
);
}
System
.out
.println("请求所使用的协议名称"+request
.getProtocol());
System
.out
.println("请求中所有参数的名字"+request
.getParameterNames());
Enumeration enumNames
= request
.getParameterNames();
while (enumNames
.hasMoreElements()) {
String key
= (String
) enumNames
.nextElement();
System
.out
.println("参数名称:"+key
);
}
使用工具类
导入maven依赖
<!-- https
://mvnrepository
.com
/artifact
/nl
.bitwalker
/UserAgentUtils
-->
<dependency>
<groupId>nl
.bitwalker
</groupId
>
<artifactId>UserAgentUtils
</artifactId
>
<version>1.2.4</version
>
</dependency
>
用法
package com
.ninesword
.nsclick
.utils
;
import javax
.servlet
.http
.HttpServletRequest
;
import org
.apache
.commons
.lang3
.StringUtils
;
import org
.slf4j
.Logger
;
import org
.slf4j
.LoggerFactory
;
import eu
.bitwalker
.useragentutils
.Browser
;
import eu
.bitwalker
.useragentutils
.OperatingSystem
;
import eu
.bitwalker
.useragentutils
.UserAgent
;
/
public class UserAgentUtils {
private static Logger logger
= LoggerFactory
.getLogger(UserAgentUtils
.class);
public static String
getUserAgent(HttpServletRequest request
) {
String userAgent
=request
.getHeader("User-Agent");
return userAgent
;
}
public static String
getOsVersion(HttpServletRequest request
) {
String userAgent
= getUserAgent(request
);
return getOsVersion(userAgent
);
}
public static String
getOsVersion(String userAgent
) {
String osVersion
= "";
if(StringUtils
.isBlank(userAgent
))
return osVersion
;
String
[] strArr
= userAgent
.substring(userAgent
.indexOf("(")+1,
userAgent
.indexOf(")")).split(";");
if(null
== strArr
|| strArr
.length
== 0)
return osVersion
;
osVersion
= strArr
[1];
logger
.info("osVersion is:{}", osVersion
);
return osVersion
;
}
private static OperatingSystem
getOperatingSystem(String userAgent
) {
UserAgent agent
= UserAgent
.parseUserAgentString(userAgent
);
OperatingSystem operatingSystem
= agent
.getOperatingSystem();
return operatingSystem
;
}
public static String
getOs(HttpServletRequest request
) {
String userAgent
= getUserAgent(request
);
return getOs(userAgent
);
}
public static String
getOs(String userAgent
) {
OperatingSystem operatingSystem
= getOperatingSystem(userAgent
);
String os
= operatingSystem
.getGroup().getName();
logger
.info("os is:{}", os
);
return os
;
}
public static String
getDevicetype(HttpServletRequest request
) {
String userAgent
= getUserAgent(request
);
return getDevicetype(userAgent
);
}
public static String
getDevicetype(String userAgent
) {
OperatingSystem operatingSystem
= getOperatingSystem(userAgent
);
String deviceType
= operatingSystem
.getDeviceType().toString();
logger
.info("deviceType is:{}", deviceType
);
return deviceType
;
}
public static String
getOsName(HttpServletRequest request
) {
String userAgent
= getUserAgent(request
);
return getOsName(userAgent
);
}
public static String
getOsName(String userAgent
) {
OperatingSystem operatingSystem
= getOperatingSystem(userAgent
);
String osName
= operatingSystem
.getName();
logger
.info("osName is:{}", osName
);
return osName
;
}
public static String
getDeviceManufacturer(HttpServletRequest request
) {
String userAgent
= getUserAgent(request
);
return getDeviceManufacturer(userAgent
);
}
public static String
getDeviceManufacturer(String userAgent
) {
OperatingSystem operatingSystem
= getOperatingSystem(userAgent
);
String deviceManufacturer
= operatingSystem
.getManufacturer().toString();
logger
.info("deviceManufacturer is:{}", deviceManufacturer
);
return deviceManufacturer
;
}
public static Browser
getBrowser(String agent
) {
UserAgent userAgent
= UserAgent
.parseUserAgentString(agent
);
Browser browser
= userAgent
.getBrowser();
return browser
;
}
public static String
getBorderName(HttpServletRequest request
) {
String userAgent
= getUserAgent(request
);
return getBorderName(userAgent
);
}
public static String
getBorderName(String userAgent
) {
Browser browser
= getBrowser(userAgent
);
String borderName
= browser
.getName();
logger
.info("borderName is:{}", borderName
);
return borderName
;
}
public static String
getBorderType(HttpServletRequest request
) {
String userAgent
= getUserAgent(request
);
return getBorderType(userAgent
);
}
public static String
getBorderType(String userAgent
) {
Browser browser
= getBrowser(userAgent
);
String borderType
= browser
.getBrowserType().getName();
logger
.info("borderType is:{}", borderType
);
return borderType
;
}
public static String
getBorderGroup(HttpServletRequest request
) {
String userAgent
= getUserAgent(request
);
return getBorderGroup(userAgent
);
}
public static String
getBorderGroup(String userAgent
) {
Browser browser
= getBrowser(userAgent
);
String browerGroup
= browser
.getGroup().getName();
logger
.info("browerGroup is:{}", browerGroup
);
return browerGroup
;
}
public static String
getBrowserManufacturer(HttpServletRequest request
) {
String userAgent
= getUserAgent(request
);
return getBrowserManufacturer(userAgent
);
}
public static String
getBrowserManufacturer(String userAgent
) {
Browser browser
= getBrowser(userAgent
);
String browserManufacturer
= browser
.getManufacturer().getName();
logger
.info("browserManufacturer is:{}", browserManufacturer
);
return browserManufacturer
;
}
public static String
getBorderRenderingEngine(HttpServletRequest request
) {
String userAgent
= getUserAgent(request
);
return getBorderRenderingEngine(userAgent
);
}
public static String
getBorderRenderingEngine(String userAgent
) {
Browser browser
= getBrowser(userAgent
);
String renderingEngine
= browser
.getRenderingEngine().name();
logger
.info("renderingEngine is:{}", renderingEngine
);
return renderingEngine
;
}
public static String
getBrowserVersion(HttpServletRequest request
) {
String userAgent
= getUserAgent(request
);
return getBrowserVersion(userAgent
);
}
public static String
getBrowserVersion(String userAgent
) {
Browser browser
= getBrowser(userAgent
);
String borderVersion
= browser
.getVersion( userAgent
).toString();
return borderVersion
;
}
public static void main(String
[] args
) {
String winUserAgent
= "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36";
System
.out
.println("浏览器组:"+getBorderGroup(winUserAgent
));
System
.out
.println("浏览器名字:"+getBorderName(winUserAgent
));
System
.out
.println("浏览器类型"+getBorderType(winUserAgent
));
System
.out
.println("浏览器生产商:"+getBrowserManufacturer(winUserAgent
));
System
.out
.println("浏览器版本:"+getBrowserVersion(winUserAgent
));
System
.out
.println("设备生产厂商:"+getDeviceManufacturer(winUserAgent
));
System
.out
.println("设备类型:"+getDevicetype(winUserAgent
));
System
.out
.println("设备操作系统:"+getOs(winUserAgent
));
System
.out
.println("操作系统的名字:"+getOsName(winUserAgent
));
System
.out
.println("操作系统的版本号:"+getOsVersion(winUserAgent
));
System
.out
.println("操作系统浏览器的渲染引擎:"+getBorderRenderingEngine(winUserAgent
));
}
}