request.getSession(boolean create)的正确使用姿势

javax.servlet.http.HttpServletRequest 中有一个创建session会话的方法


/**
 * 如果create设置true,返回当前的HttpSession,如果没有会话,创建一个新的会话
 * 如果create设置false,如果当前有会话那就返回,如果没有会话,就返回null
 */
public HttpSession getSession(boolean create);

/**
 * 等同于getSession(true);
 */
public HttpSession getSession();

使用要点:

1、创建会话场景

这种逻辑放在登陆、授权业务中,用户登陆成功之后,自然而然的需要保持用户当前的访问会话。

此时使用getSession(true),或者getSession(),然后session可以放入具体的attribute,更详细描述当前用户会话信息。

2、查找当前会话

如果我们当前逻辑需要查找会话,如果会话为空,直接抛出会话不存在,权限不足的信息。

这时使用getSession(false),即查找当前的会话,没有会话就是返回为空。避免了使用getSession()又会创建一次多余的没有经过授权的会话。

使用getSession(false)得到当前session之后,再进一步获取当前的attribute,做下一步业务处理。

全文完。

原文地址:https://www.cnblogs.com/conge/p/5439871.html