jsessionid被忽略了

时间:2011-09-12 14:29:43

标签: java servlets jsessionid

我正在使用带有jsessionid的网址,例如

http://localhost:8080/myservlet;jsessionid=123

然而,每当我在HttpServletRequest中读取会话ID时,该值永远不会是123,而是生成的会话ID,例如。 B663A96D3FBC84B4A427C0810EAB9073。

为什么我的jsessionid会被忽略?

2 个答案:

答案 0 :(得分:5)

那是因为你指定了一个会话ID,服务器内存中没有具体的HttpSession对象。换句话说,给定的会话ID是未知/无效的。您需要指定一个会话ID,该ID引用服务器内存中的有效和现有HttpSession对象。

假设您确实当前位于服务器内存中的ID为HttpSession的有效B663A96D3FBC84B4A427C0810EAB9073,则以下链接将起作用并使最终用户完全访问{{ 1}}:

  

http://localhost:8080/myservlet;jsessionid=B663A96D3FBC84B4A427C0810EAB9073

答案 1 :(得分:0)

我的猜测是,现在大多数应用服务器默认使用cookie进行会话跟踪,而不是URL重写。因此,如果您的请求在URL中同时包含会话cookie和JSESSIONID,它可能会使用cookie中的那个。查看appserver的文档,了解如何配置它。