request.getSession().getId()vs request.getRequestedSessionId()

srh*_*srh 1 java servlets java-ee httpsession

request.getSession().getId()和之间有什么区别request.getRequestedSessionId()?他们两个都返回相同的东西,即会话ID吗?

谢谢

pab*_*han 10

request.getRequestedSessionId()将返回客户端指定的会话ID(可能是在cookie中).request.getSession().getId()将返回服务器的会话ID(如果会话不存在,request.getSession()将创建它).

重要的区别在于您不能依赖返回的值request.getRequestedSessionId(),因为它可能无效.从文档:

返回客户端指定的会话ID.这可能与此请求的当前有效会话的ID不同.如果客户端未指定会话ID,则此方法返回null.