【问题标题】:Session management with Tomcat and cookies [duplicate]使用 Tomcat 和 cookie 进行会话管理 [重复]
【发布时间】:2011-12-02 15:36:05
【问题描述】:

我很难概念化 Tomcat 如何在幕后处理 cookie 和会话管理。

Tomcat 何时何地发布 cookie 来管理 HttpSession?根据This question / answer,会话是从对getSession() 的初始调用创建的。

如果我运行Filter 并调用getSession(),是否会自动将必要的cookie(假设我已将web.xml 配置为使用cookie)附加到ServletResponse?如果没有,我该怎么做?我没有运行任何jsp。

【问题讨论】:

    标签: java jakarta-ee tomcat servlets session-cookies


    【解决方案1】:

    Java Servlet 在后台为您透明地管理 cookie 和状态。 Tomcat 是运行 Java Servlet 的 Web 服务器。

    Web 服务器管理 cookie 的方式是直接在 HTTP 请求中发送,我不是 100% 确定协议文本,但我相信这只是 Tomcat 会发送“SET COOKIE:...”发送到浏览器的实际 HTTP。

    这里要注意的重要一点是 Tomcat 和 java Servlet 规范是耦合的——Tomcat 托管 Servlet,并提供封装 HTTP 通信基本方面的接口实现:例如,这是它的 Cookie 接口----@ 987654321@.

    一般来说,这不应该是您在编写 Web 应用程序时最关心的问题,除非您正在做一些花哨的事情。 Servlet api 应该通过让您访问允许您设置/获取特定于您处理的客户端的对象的 Session API 来抽象这一点。

    【讨论】:

    • web服务器如何发送HttpRequest中的cookie?不是应该在HttpResponse 中发送吗?此外,这个答案没有回答我关于 Tomcat 如何或何时添加 cookie 的问题。例如,如果您从 Tomcat 服务器请求 .html 页面,默认情况下它不会向您发出会话 cookie,但是在请求 jsp 时会发出。
    最近更新 更多