365bet最稳定网址-365bet官网注册开户-77365bet体育在线投注

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

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()

相关推荐