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));
}
}