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