servlet中的会话是在哪里维护的?

时间:2012-02-01 03:58:50

标签: java session web-applications servlets

在Servlets中,我们可以使用会话跟踪功能。所以我想问一下会话是保留在客户端还是服务器端。

如果是在客户端,那么在哪里?
我可以在客户端HTTPSession上创建会话吗?

我发现一篇文章告诉我们可以维护客户端和服务器端的会话。

2 个答案:

答案 0 :(得分:4)

这是维护会话的服务器。服务器负责允许会话跟踪发生。客户无需担心明确发送任何信息。由于客户端可以发送保存在客户端上的Cookie以及每个请求,因此服务器可能会使用Cookie进行会话跟踪。

注意: Cookie 只是实现会话跟踪的方法之一。这也是最好的方式

因此,服务器使用Cookie作为处理会话跟踪的方法之一。

也可以通过其他方式完成:

网址重写 - 应用程序/服务器应在所有网址/链接中附加会话ID。当从客户端调用这些会话时,会话将与URL一起到达服务器。

隐藏表单字段 - 表单可能包含隐藏的输入类型,其会话ID为字段值。发布表单时,会话ID随表单数据一起提供。

答案 1 :(得分:3)

会话驻留在客户端的服务器端,我们有cookie(或jsessionId或隐藏的表单字段)来映射request与服务器的会话


如何映射

当您第一次提交请求时(从时间开始),服务器会为您提供一个cookie,其中包含您发送的响应,您的浏览器会接受包含有效期限,内容(某些字符串)和域名的Cookie现在,当您再次向服务器发送请求时,您的浏览器将在标头中添加该域的cookie,这样当服务器收到请求时,它会从标题中看到cookie并将该内容与服务器上的sessionId一起映射


<强> FYI

您还可以在其他应用程序中使用会话(例如,对等应用程序)

相关问题