今天一大早来,发现日志文件大小暴增,艰难的打开一部分查看之后发现,一直在报空指针的错误,所以检查了下代码,发现String ua = ((HttpServletRequest) request).getHeader(“user-agent”).toLowerCase();这段话一直报错,马上就反应过来((HttpServletRequest) request).getHeader(“user-agent”)没有取到值!!!
因为之前一直是好的,突然出现这种问题有点不知所措,理论上”user-agent”在request的header中一定是存在的,他的内容是当前请求浏览器的类型版本等相关信息,可是什么原因导致他为null了呢?是在服务器层次被过滤掉了?
目前不得而知,因为使用的阿里云的服务器,而且这个也不是我们维护的,真心不知道他们做了什么事情导致的这个问题。。。。
如果知道原因之后,会在过来更新上,现在只是想说下,大家在写这种代码的时候千万不要理所当然的认为”user-agent”一定有值,万一他没值,那么程序是不是就挂了呢?
所以将上面的代码分成了两部分,做了一下判空,代码如下:
String ua = ((HttpServletRequest) request).getHeader("user-agent");
if(ua != null){
ua = ua.toLowerCase();
}
希望知道可能是什么原因导致这个问题的大拿们,分享下!!谢谢!!