博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaWeb中通过从request请求中获取浏览器类型、系统信息、客户端ip等信息
阅读量:2382 次
发布时间:2019-05-10

本文共 1953 字,大约阅读时间需要 6 分钟。

JavaWeb中通过从request请求中获取浏览器、系统信息、终端ip等信息 

一、使用UserAgentUtils.jar包

UserAgentUtils-1.20.jar下载地址:

UserAgentUtils-1.20源码source下载:

二、使用UserAgentUtils来获取客户端请求的信息:浏览器类型、操作系统类型、客户端IP

1、pom.xml 设置:

<!-- 请求头参数分析包 -->

<dependency>
<groupId>eu.bitwalker</groupId>
<artifactId>UserAgentUtils</artifactId>
<version>1.20</version>
</dependency>   

2、Java代码:

/**

*
* @Description TODO  
* @param request
* @return SearchLog
* @Date
*/
private SearchLog initSearchLog(HttpServletRequest request) {
// userAgent中有很多获取请求信息的方法
UserAgent userAgent = UserAgent.parseUserAgentString(request.getHeader("User-Agent"));
SearchLog searchLog = new SearchLog();
searchLog.setSearchExpression(getParam("searchExpression", request));
searchLog.setUserId(SessionUtil.getUserId());
searchLog.setUsername(SessionUtil.getCurrentUserName());
// searchLog.setSearchTime(new DateTime().toString("yyyy-MM-dd HH:mm:ss"));
searchLog.setSearchTime(new Date());

// 获取客户端请求的浏览器类型
searchLog.setBrowserType(userAgent.getBrowser().toString());
String s = request.getParameter("searchChannel");
searchLog.setSearchChannel(request.getParameter("searchChannel"));
// 获得终端设备的IP地址 
searchLog.setTerminalIp(request.getRemoteAddr());
return searchLog;
}

===============================================================

request.getMethod():获得客户端向服务器端传送数据的方法有GET、POST、PUT等类型  

  
request.getRequestURI():获得发出请求字符串的客户端地址  
  
request.getServletPath():获得客户端所请求的脚本文件的文件路径  
  
request.getServerName():获得服务器的名字  
  
request.getServerPort():获得服务器的端口号  
  
request.getRemoteAddr():获得客户端的IP地址  
  
request.getRemoteHost():获得客户端电脑的名字,件=b网V@V中2UZQXdL管n育=?o8g1Spm;理@c)A8网B垠4G+)j网P育若失败,则返回客户端电脑的IP地址  
  
request.getProtocol():  
  
request.getHeaderNames():返回所有request header的名字,结果集是一个Enumeration(枚举)类的实例  
  
request.getHeaders(String name):返回指定名字的request header的所有值,结果集是一个Enumeration(枚举)类的实例  

(陆续完善中~~~)

---------------------------------------------------------------------------------------------------------------------------------------

感谢阅读,你若觉得文章对你有帮助,打赏一下我会更有动力哦~谢谢~

你可能感兴趣的文章
JAVA并发编程实战
查看>>
RabbitMQ实战++高效部署分布式消息队列
查看>>
微服务设计
查看>>
Spring Cloud微服务实战
查看>>
C++ static 语义
查看>>
C++ static 语义
查看>>
Linux Cgroups概述
查看>>
centos7 硬盘性能测试
查看>>
cgroup使用--cpu资源限制
查看>>
cgroup使用--memory资源限制
查看>>
Redis 单机环境搭建
查看>>
elasticsearch 单机环境搭建
查看>>
spark 独立模式部署
查看>>
Redis 基础命令 --- String篇
查看>>
Redis 基础命令 --- Hash篇
查看>>
Redis 基础命令 --- List篇
查看>>
Redis 基础命令 --- Set篇
查看>>
Redis数据库篇 -- 生存时间
查看>>
面向对象设计基本原则
查看>>
Redis数据库篇 -- 事务
查看>>