我正在使用
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中的情况是什么?
编码时应该注意什么,以避免这个问题?
解决方法
@H_502_25@
String browserName = requestProvider.get().getHeader(“User-Agent”);
null表示发送请求的人不包括“User-Agent” header.
@H_502_25@String ipAdd = requestProvider.get().getRemoteAddr();
在正常情况下不太可能返回null,但有报告称它可能会在边缘情况下这样做,如after the response has already been sent.无论如何,“获取运行我的应用程序的机器的IP地址”听起来不像getRemoteAddr()是为了.它用于获取发送请求的最新客户端或代理的地址.
@H_502_25@Is there any alternate way to get IP address & browser name every time?
不.您完全依赖HTTP客户端和/或任何干预代理的行为来获取此类信息.