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

3
在tomcat的配置中,会话cookie的名称从JSESSIONID更改为其他值。我该如何在servlet中检索此cookie的名称或cookie对象?祝好!

你为什么需要那个? - Thilo
为什么不使用实际的Servlet API? - Elliott Frisch
Webapp中有一些第三方代码会覆盖会话cookie,我正在尝试理解它是如何找到当前会话cookie名称的。 - serg.nechaev
1个回答

3

5
需要翻译的内容:一个需要注意的是,SessionCookieConfig#getName() 方法只会返回在 web.xml 的 <cookie-config> 元素中设置的名称。如果没有显式设置,则使用默认值(JSESSIONID)用于 cookie,但让人困惑的是,getName() 方法将返回 null,而不是 "JSESSIONID"。我已经在 Tomcat 8.5 和 9 上进行了测试。因此,如果您的代码需要知道会话 cookie 的名称,仅依赖 SessionCookieConfig#getName 是不够的,您必须添加逻辑以防它返回 null,并且我还没有找到给出默认值的常量,所以您需要硬编码。 - Marcus Junius Brutus
1
+1 给马库斯·尤尼乌斯·布鲁图斯。他是对的(在我的经验中,使用Tomcat 8.5),如果应用程序的web.xml中没有设置cookie名称,则SessionCookieConfig#getName()返回null。看起来像这样:<session-config>...<cookie-config><name>NAMEHERE</name>...</cookie-config>...</session-config> - DWR

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接