我正在使用一个带有jsessionid的URL,例如。
http://localhost:8080/myservlet;jsessionid=123
然而,每当我在HttpServletRequest中读取会话ID时,它的值永远不是123,而是一个生成的会话ID,例如。B663A96D3FBC84B4A427C0810EAB9073。
为什么我的jsessionid被忽略了?
发布于 2011-09-12 15:17:01
这是因为您指定的会话ID在服务器内存中不存在任何具体的HttpSession
对象。换句话说,给定的会话ID是未知/无效的。您需要指定一个会话ID,该ID引用服务器内存中现有的有效HttpSession
对象。
假设您的确实在服务器内存中有一个ID为B663A96D3FBC84B4A427C0810EAB9073
的有效HttpSession
,那么下面的链接将起作用,并为最终用户提供对该HttpSession
的访问权限
http://localhost:8080/myservlet;jsessionid=B663A96D3FBC84B4A427C0810EAB9073
发布于 2011-09-12 14:33:09
我的猜测是,如今大多数应用程序服务器默认使用cookie进行会话跟踪,而不是URL重写。因此,如果您的请求在URL中同时包含会话cookie和JSESSIONID,它可能会使用cookie中的cookie。请查看应用程序服务器的文档,了解如何对其进行配置。
https://stackoverflow.com/questions/7389476
复制相似问题