会话获取布尔值的属性

use*_*094 1 session jsp servlets

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

session.setAttribute("sess_login",true);
Run Code Online (Sandbox Code Playgroud)

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

boolean login=((Boolean) session.getAttribute("sess_login")).booleanValue();
Run Code Online (Sandbox Code Playgroud)

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

谁能解释我背后的原因?

Ali*_*.Kh 6

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

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

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

if(session().getAttribute("status") != null){
    boolean value = (Boolean) req.getSession().getAttribute("status");
}
Run Code Online (Sandbox Code Playgroud)