request.getSession()是否将cookie设置到浏览器中?

时间:2015-04-27 21:16:25

标签: java servlets cookies session-cookies

我在Servlets中学习会话并做一些代码。我看到了这个:

我使用URL映射调用了Servlet。那就是:

http://localhost:8080/ServletSessionProject/SessionLearningPath

servlet代码非常简单:

HttpSession session = request.getSession();

现在,通过这个简单的代码(我使用doGet()),然后我在chrome中打开了cookie,如下所示:

chrome://settings/cookies

我能够看到一个cookie集。

我很困惑。在我的代码中,我只是简单地调用了request.getSession()。为什么这个简单的语句在浏览器中设置cookie?我确信之前没有cookie。

这怎么可能?

2 个答案:

答案 0 :(得分:2)

是。会话在cookie中设置。 JSESSIONID

Web应用程序使用cookie跟踪用户会话,但这不是唯一的方法。 当用户没有与Web应用程序进行会话并且调用request.getSessin();时,Servlet api会创建一个新会话和一个会话ID。此会话ID用于唯一地表示和跟踪用户会话。此会话ID在响应中作为设置cookie请求发送。这就是为什么你在一个请求周期后看到cookie。

答案 1 :(得分:1)

请参阅:request.getSession()

  

返回与此请求关联的当前会话,或者是否   请求没有会话,创建一个。

会话创建将在HTTP响应消息上设置 session cookie 。这是创建cookie并将其传输到浏览器的“神奇”。