7

HttpSession是建立在 cookie 和 url-rewriting 之上的高级接口,这意味着只有一个 session ID 存储在客户端,与之相关的数据存储在服务器端。

HttpSession数据实际存储在服务器端的什么位置?在JVM内存或其他地方?我可以更改存储它的位置,例如将它们保存到内存数据库中吗?

如果它不在数据库中,当许多客户端同时处理相同的会话数据时是否存在任何并发问题?

4

1 回答 1

7

存储会话数据的位置取决于服务器;我熟悉的那些允许对会话数据的存储位置(磁盘、数据库、内存……)进行某种级别的配置。

不同的客户端不应该处理相同的会话数据——会话数据是每个客户端的。也就是说,单个客户端(如 Web 浏览器)可能会打开多个窗口或选项卡,是的,这可能会导致问题。

由于会话数据在服务器之间共享,集群增加了一层复杂性/头痛。

于 2011-10-25T06:47:33.207 回答