Java 如何在servlet中获取会话cookie名称?

Java 如何在servlet中获取会话cookie名称?,java,tomcat,servlets,Java,Tomcat,Servlets,会话cookie名称已在tomcat配置中从JSESSIONID更改为其他名称。如何在servlet中检索此cookie或cookie对象的名称 欢迎使用Servlet API的第3版 您可以从中获取此对象。为什么需要它?为什么不使用实际的Servlet API?webapp中有一些第三方代码会覆盖会话cookie,我正在尝试了解它是如何找到当前会话cookie名称的。需要注意的是SessionCookieConfig#getName()将只返回web.xml的元素中设置的名称。如果未显式设置任

会话cookie名称已在tomcat配置中从JSESSIONID更改为其他名称。如何在servlet中检索此cookie或cookie对象的名称


欢迎使用Servlet API的第3版


您可以从中获取此对象。

为什么需要它?为什么不使用实际的Servlet API?webapp中有一些第三方代码会覆盖会话cookie,我正在尝试了解它是如何找到当前会话cookie名称的。需要注意的是
SessionCookieConfig#getName()
将只返回web.xml的
元素中设置的名称。如果未显式设置任何内容,则默认值(JSSessionID)将用于cookie,但令人困惑的是,
getName()
将返回null,而不是“JSSessionID”。我已经在Tomcat8.5和9上测试过了。因此,如果您的代码需要知道会话cookie的名称,那么仅依靠
SessionCookieConfig#getName
是不够的,您必须添加逻辑,以防它返回null,并且我还没有找到一个常量来为您提供默认值,因此您必须将+1硬编码到Marcus Junius Brutus。如果应用程序的
web.xml
中没有设置cookie名称,那么
SessionCookieConfig#getName()
返回
null
是正确的(IME,使用Tomcat 8.5)。看起来是这样的:
…名称在这里……