2012-02-01 80 views
4

在Servlets中,我们可以使用会话跟踪功能。所以我想问问会议是维护到客户端还是在服务器端。servlets中的会话在哪里维护?

如果它在客户方又在哪里?
我可以在客户端HTTPSession上创建会话吗?

我发现一篇文章,告诉那对客户方和服务器端的会话可以保持。

回答

4

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

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

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

它还可以通过其他方式来完成:

URL重写 - 应用/服务器应该追加会话ID在所有的URL /链接。当从客户端调用这些会话时,会话将与URL一起进入服务器。

隐藏的表单域 - 的形式可含有与会话ID作为字段值隐藏的输入类型。在发布表单时,会话标识随表单数据一起提供。

+0

谢谢..如果我们从客户端删除cookie,然后会话获取销毁在服务器端维护。我是吗? – user460920 2012-02-01 07:37:51

+0

是的,它会在超时值后被破坏。因为,cookie在客户端被删除,客户端将不能再发送cookie到服务器,所以,在服务器上创建的会话不再可访问。 – 2012-02-01 07:59:09

+0

相似的http://stackoverflow.com/questions/9032330/whowebserver-or-developer-takes-care-of-maintaining-one-http-session-per-brows/9032483#9032483 – 2012-02-01 07:59:52

3

会话驻留在服务器端上的客户端,我们有饼干(或JSESSIONID或者隐藏表单域)到request与服务器的会话


它是如何maps地图

当您提交第一次请求(从时间开始),服务器为您提供一个cookie,其中包含响应时您的浏览器接受该cookie,它包含到期日期,内容(某些字符串)和域名,现在再次发送请求时到服务器您的浏览器将添加cooki E对于在报头域,以便当服务器收到请求它认为从报头中的cookie,并在服务器上的内容用的sessionId映射


FYI

您也可以在其他应用程序会话(例如对等应用)

+0

OK thanks..can请您简要解释说,这是从通客户端饼干在服务器端的会话被发现..? – user460920 2012-02-01 04:05:51

+0

抱歉没有得到您的意见...您也可以在其他应用程序中使用会话(例如对等应用程序)? – user460920 2012-02-01 04:10:31

+0

当然增加的细节破败 – 2012-02-01 04:11:49