我在Servlets中学习会话并做一些代码。我看到了这个:
我使用URL映射调用了Servlet。那就是:
http://localhost:8080/ServletSessionProject/SessionLearningPath
servlet代码非常简单:
HttpSession session = request.getSession();
现在,通过这个简单的代码(我使用doGet()
),然后我在chrome中打开了cookie,如下所示:
chrome://settings/cookies
我能够看到一个cookie集。
我很困惑。在我的代码中,我只是简单地调用了request.getSession()
。为什么这个简单的语句在浏览器中设置cookie?我确信之前没有cookie。
这怎么可能?
答案 0 :(得分:2)
是。会话在cookie中设置。 JSESSIONID
Web应用程序使用cookie跟踪用户会话,但这不是唯一的方法。
当用户没有与Web应用程序进行会话并且调用request.getSessin();
时,Servlet api会创建一个新会话和一个会话ID。此会话ID用于唯一地表示和跟踪用户会话。此会话ID在响应中作为设置cookie请求发送。这就是为什么你在一个请求周期后看到cookie。
答案 1 :(得分:1)
返回与此请求关联的当前会话,或者是否 请求没有会话,创建一个。
会话创建将在HTTP响应消息上设置 session cookie 。这是创建cookie并将其传输到浏览器的“神奇”。