【问题标题】:Where is the HttpSession data stored?HttpSession 数据存储在哪里?
【发布时间】:2011-12-14 16:36:25
【问题描述】:

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

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

如果不在数据库中,当多个客户端同时处理同一个会话数据时,是否存在并发问题?

【问题讨论】:

    标签: session servlets store httpsession in-memory-database


    【解决方案1】:

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

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

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

    【讨论】: