session get属性为布尔值

时间:2014-12-27 07:53:25

标签: jsp session servlets

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

session.setAttribute("sess_login",true);

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

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

但如果我将一个字符串值存储在会话变量中,这可以正常工作。

任何人都能解释一下背后的原因吗?

1 个答案:

答案 0 :(得分:5)

我测试了你的代码,它运行正常。我认为你在测试中犯了一些错误。

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

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

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