【问题标题】:jsp and .equals and .trim() null pointer exceptionjsp 和 .equals 和 .trim() 空指针异常
【发布时间】:2013-04-28 13:49:04
【问题描述】:

这可能是一个非常愚蠢的问题,我试图弄清楚为什么我得到一个空异常,请帮忙。

String username = (String)session.getAttribute("username");

if (!username.equals("ADMIN")) {
   request.setAttribute("Error", "You are not the admin");
   RequestDispatcher rd = request.getRequestDispatcher("LoginPage.jsp");
   rd.forward(request,response);
}

我试图让jsp检查用户名是否等于“ADMIN”,如果它不等于admin,那么它会给出一个错误,然后请求登录页面。

但是我得到了一个空指针异常:

if (!username.equals("ADMIN")) {

谢谢

【问题讨论】:

  • 看起来您在会话中没有名为 username 的属性。也许您将会话属性与请求参数混淆了。

标签: java jsp


【解决方案1】:

那是因为username 为空

最佳做法是说if (!"ADMIN".equals(username))

由于常量字符串“ADMIN”是一个非空值,在其上调用equals()不会导致任何错误并且是安全的

或在比较之前对username 进行空检查:

if (username != null && !username.equals("ADMIN"))

【讨论】:

    【解决方案2】:

    看起来username 为空,即未存储在会话中。如果使用 Eclipse 之类的 IDE,您可以在其中设置断点,将鼠标悬停在术语上,然后查看什么是 null。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-19
      • 1970-01-01
      • 2011-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多