【问题标题】:session get attribute of a boolean value会话获取布尔值的属性
【发布时间】:2014-12-27 07:53:24
【问题描述】:

在我的 servlet、JSP 应用程序中,我使用了一个会话变量来存储用户是否登录系统的登录状态。该值为布尔值。

session.setAttribute("sess_login",true);

现在,当我在注销后在登录页面中检查此值时,我在下一行收到 NullPointer 异常。

boolean login=((Boolean) session.getAttribute("sess_login")).booleanValue();

但是如果我在会话变量中存储一个字符串值,这会很好。

谁能解释一下背后的原因?

【问题讨论】:

  • 这里代码的相关部分是您在注销时如何清除此属性。请出示。
  • "但是如果我在会话变量中存储一个字符串值,这会很好。"如果会话变量中有字符串,您可以发布您的代码吗??

标签: jsp session servlets


【解决方案1】:

我测试了您的代码,它工作正常。我认为您在测试中犯了一些错误。

在您的代码中,如果会话对象中不存在sess_login 属性,则会抛出NullPointerException(我认为这是您的问题)。

为了防止抛出异常最好使用以下代码:

if(session().getAttribute("status") != null){
    boolean value = (Boolean) req.getSession().getAttribute("status");
}

【讨论】:

  • boolean value = req.getSession().getAttribute("status") == Boolean.TRUE 怎么样?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-05
  • 2020-06-25
  • 2016-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-02
相关资源
最近更新 更多