getSession()、getSession(false)、getRequestedSessionId()的区别

做java项目中有的时候需要通过cookie-session的方式来通信,cookie有个JSESSIONID的参数值,JESSIONID对应服务器中的session,session中保存了用户的各种信息和状态,通过cookie-session来实现登录状态的。


JSESSIONID

问题就是,当用户登录后,需要将JSESSIONID返回给前端,下次请求将会带着cookie信息发送请求。可是,怎么获取session id呢。
在HttpServletRequest对象有两种方式来获取id

1.HttpServletRequest.getSession().getId()

先通过HttpServletRequest获取HttpSession对象,然后再获取id

        HttpSession session = request.getSession(true);
        String sessionId = session.getId();

getSession()与getSession(true)相同,与getSession(false)区别是:
getSession(true)会先判断当前请求是否有session,没有就创建一个新的
getSession(true)当前请求不存在session时,就返回null
如果想要获取请求中的用户信息,就用getSession(true)。
如果想要返回当前请求后生成sessionId,就用getSession(false)。

2.HttpServletREquest.getRequestedSessionId()

        String sessionId = request.getRequestedSessionId();

getRequestedSessionId()是获取请求中预期的sessionId,也就是通过cookie中JESSIONID信息来获取session。
如果想要获取请求中cookie信息,就用getRequestSessionId()

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 目录Cookie机制什么是CookieCookie的不可跨域名性Unicode编码:保存中文BASE64编码:保存...
    Tomatoro阅读 17,092评论 7 186
  • 分布式Session的几种实现方式 1.基于数据库的Session共享 2.基于NFS共享文件系统 3.基于mem...
    王帅199207阅读 2,404评论 0 3
  • 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Se...
    chinariver阅读 5,815评论 1 49
  • 摇着时光的小桨 你划入我梦的湖面 湖面的微风,吹拂着你的长发 如一朵云彩,掠过我的天空 此刻,我一定是微笑着的 恰...
    冷冬年阅读 3,861评论 110 143
  • 你站成一轮弯月 月被一字吃掉 孤独被占领 你却数着明天 跨过日的那一天 于是就没有了心思 那年那月那日 在秋的怀里...
    田萍阅读 207评论 0 2

友情链接更多精彩内容