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

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


一、使用UserAgentUtils.jar包

UserAgentUtils-1.20.jar下载地址:http://download.csdn.net/detail/chenchunlin526/9744244

UserAgentUtils-1.20源码source下载:http://download.csdn.net/detail/chenchunlin526/9744247


二、使用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(枚举)类的实例  



(陆续完善中~~~)

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

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


  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,您的问题是如何获取referer请求参数,以及如何通过request获取referer请求头实现防盗链。 首先,referer是HTTP请求的一个字段,用于表示当前请求是从哪个页面发起的。如果当前请求是从某个页面跳转过来的,则referer会包含跳转页面的URL,如果没有则为null。 如果您想要获取referer请求参数,可以使用Java的URL类来解析referer的URL,然后通过其getQuery方法获取请求参数。以下是一个简单的示例代码: ```java String referer = request.getHeader("referer"); if (referer != null) { URL url = new URL(referer); String query = url.getQuery(); // 处理请求参数 } ``` 另外,您提到了防盗链的问题。防盗链是指通过某些手段,禁止其他网站直接链接到您的资源,以保护资源的安全和版权。其一种常见的防盗链方式就是通过判断referer请求头来实现。 具体实现方式是在服务器端判断referer请求的URL是否属于当前网站的域名范围内,如果不属于则返回错误信息。 以下是一个简单的示例代码: ```java String referer = request.getHeader("referer"); if (referer != null && !referer.startsWith("http://www.yourdomain.com")) { // 不允许访问 response.setStatus(403); return; } // 允许访问 ``` 注意,这种方式虽然可以简单地防止盗链,但是referer请求头是可以伪造的,因此并不是绝对可靠的防盗链方式。需要根据具体情况进行综合考虑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值