gpt4 book ai didi

java - HttpServletRequest#getHeader ("User-Agent") 返回空浏览器名称

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:35:52 28 4
gpt4 key购买 nike

我使用的是 Java 6。我对 JSP 和 Servlet 的了解非常少。

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

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

我还使用以下代码获取运行我的应用程序的机器的 IP 地址:

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

在这两种情况下 requestProviderProvider<HttpServletRequest> 类型的引用变量.我确信它永远不会 NULL .

现在的问题是有时我得到两个值 ( browserName and ipAdd) NULL。我有时会写,因为我没有测试用例。

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

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

是否有任何替代方法每次都获取 IP 地址和浏览器名称?

最佳答案

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

null 表示发送请求的人不包含 "User-Agent" header .

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

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

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

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

关于java - HttpServletRequest#getHeader ("User-Agent") 返回空浏览器名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17167491/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com