加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – HttpServletRequest#getHeader(“User-Agent”)返回null

发布时间:2020-12-14 23:48:49 所属栏目:Java 来源:网络整理
导读:我正在使用 Java 6.我对JSP和Servlet的了解很少. 我正在使用以下代码来获取运行我的应用程序的浏览器名称: String browserName = requestProvider.get().getHeader("User-Agent"); 此外,我使用以下代码来获取运行我的应用程序的计算机的IP地址: String ipA
我正在使用 Java 6.我对JSP和Servlet的了解很少.

我正在使用以下代码来获取运行我的应用程序的浏览器名称:

String browserName = requestProvider.get().getHeader("User-Agent");

此外,我使用以下代码来获取运行我的应用程序的计算机的IP地址:

String ipAdd = requestProvider.get().getRemoteAddr();

在这两种情况下,requestProvider都是Provider< HttpServletRequest>类型的引用变量.而且我确信它永远不会是NULL.

现在问题是有时我得到两个值(browserName和ipAdd)为NULL.
我有时写过,因为我没有测试用例.

所以我的问题是,当这些值可以为NULL时,Java中的情况是什么?

编码时应该注意什么,以避免这个问题?

是否有任何其他方式来获取IP地址&浏览器名称每次?

解决方法

String browserName = requestProvider.get().getHeader(“User-Agent”);

null表示发送请求的人不包括“User-Agent” header.

String ipAdd = requestProvider.get().getRemoteAddr();

在正常情况下不太可能返回null,但有报告称它可能会在边缘情况下这样做,如after the response has already been sent.无论如何,“获取运行我的应用程序的机器的IP地址”听起来不像getRemoteAddr()是为了.它用于获取发送请求的最新客户端或代理的地址.

Is there any alternate way to get IP address & browser name every time?

不.您完全依赖HTTP客户端和/或任何干预代理的行为来获取此类信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读