这是我的情况,我有一个网站,我只是使用 Apache HTTPD 加载,然后向仅返回 JSON 数据的 servlet 发出 Ajax POST 请求。然后使用该 JSON 数据更新表等。
现在我想将用户逻辑添加到我的站点,并为单个用户提出的请求维护 servlet 会话。
我知道 servlet 需要返回第一次调用 request.getSession() 生成的会话 id,以便客户端可以将此 sessionid 添加到未来的 Ajax 请求中,以便 servlet 知道要使用内存中的哪个会话。
我还了解可以将此会话 ID 返回给客户端的两种方式是使用 cookie (JESSIONID) 或 URL 重写。
如果我不能使用 URL 重写,因为我只是返回 JSON 数据,那么 cookie 是我将会话 ID 发送回客户端的唯一方法吗?
另外,作为一个附带问题,目前我注意到我的任何来自 servlet 的 HTTP 响应中都没有 JSESSIONID cookie。有人向我建议,这是 Tomcat7 中的新功能,我必须在全局 context.xml 中激活它们。这是否意味着默认情况下即使您调用 request.getSession() 也没有会话处理?