request.getSession().setAttribute()可能会出现空指针异常
时间: 2024-06-01 09:08:46 浏览: 164
是的,request.getSession().setAttribute()方法可能会出现空指针异常。这个方法会先获取当前请求的Session对象,如果Session对象不存在,则会返回null,接着调用setAttribute()方法就会抛出空指针异常。
为了避免这种情况,我们在调用setAttribute()方法之前应该先判断Session对象是否存在,可以使用request.getSession(false)方法来判断。如果该方法返回null,则说明Session对象不存在,此时我们不应该调用setAttribute()方法。如果该方法返回不为null的Session对象,则可以安全地调用setAttribute()方法。
相关问题
request.getSession().setAttribute("username", username); request.getSession().setAttribute("cx", utype); request.getSession().setAttribute("login", utype);
这段代码的作用是在用户登录成功后,将用户的用户名、用户类型和登录状态保存到 Session 中。通过 getSession() 方法获取 HttpSession 对象,再调用 setAttribute() 方法将对应的值保存到 Session 中。这样在用户在整个会话期间访问系统时,可以通过 getSession() 方法获取到 Session 对象,并从中获取用户的相关信息,方便后续的业务操作。
if(tokenEntity != null) { request.getSession().setAttribute("userId", tokenEntity.getUserid()); request.getSession().setAttribute("role", tokenEntity.getRole()); request.getSession().setAttribute("tableName", tokenEntity.getTablename()); request.getSession().setAttribute("username", tokenEntity.getUsername()); return true; }
这段代码用于将获取的TokenEntity信息存储到HTTP会话(Session)中,以便后续的请求可以获取用户信息。具体来说,它首先判断变量tokenEntity是否为空,如果不为空,则将TokenEntity中的userid、role、tablename、username等字段取出来,并将它们存储到HTTP会话中的相应属性中。
通过将用户信息存储到HTTP会话中,后续的请求就可以通过获取HTTP会话中的相应属性来获取用户信息,从而判断请求是否合法。
最后,返回true,表示当前请求已经通过身份认证,可以继续处理。
阅读全文