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,做下一步业务处理。

 

 

全文完。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM