request.getHeader("User-Agent")抛出npe

use*_*423 1 java java-ee

我想确认request.getHeader("User-Agent")是否可以抛出空指针异常,如果是,那么在它抛出NPE的情况下是什么情况.

<% if (request.getHeader("User-Agent").toLowerCase().indexOf("msie") != -1) { %>
Run Code Online (Sandbox Code Playgroud)

提前致谢

ese*_*sej 11

没有,

request.getHeader("User-Agent")
Run Code Online (Sandbox Code Playgroud)

永远不应该扔一个NPE,它可能会返回,null在这种情况下你的代码将通过一个NPE.

(我假设请求是一个HTTPServletRequest或类似的实例)


Tom*_*icz 5

request.getHeader("User-Agent")null如果User-Agent客户端未发送标头,则可能会返回(并且不是必需的).将您的代码更改为:

String userAgent = request.getHeader("User-Agent");
if (userAgent != null && userAgent.toLowerCase().indexOf("msie") != -1)
Run Code Online (Sandbox Code Playgroud)