在我的servlet,JSP应用程序中,我使用了一个会话变量来存储登录状态,无论用户是否登录系统。值是布尔值。
session.setAttribute("sess_login",true);
现在,当我在注销后在登录页面中检查此值时,我在下面的行中得到NullPointer异常。
boolean login=((Boolean) session.getAttribute("sess_login")).booleanValue();
但如果我将一个字符串值存储在会话变量中,这可以正常工作。
任何人都能解释一下背后的原因吗?
答案 0 :(得分:5)
我测试了你的代码,它运行正常。我认为你在测试中犯了一些错误。
在您的代码中,如果sess_login
属性在会话对象中不存在,则NullPointerException
会抛出(我认为这是您的问题)。
为了防止抛出异常,最好使用以下代码:
if(session().getAttribute("status") != null){
boolean value = (Boolean) req.getSession().getAttribute("status");
}