使用Tomcat和cookie进行会话管理

Rya*_*yan 4 java tomcat servlets java-ee session-cookies

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

Tomcat何时何地发布cookie来管理HttpSession?根据这个问题/答案,会话是从最初的呼叫创建的getSession().

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

jay*_*100 5

Java Servlets为您提供透明的cookie管理和状态管理.Tomcat是Java Servlets在其中运行的Web服务器.

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

这里要注意的重要事项是Tomcat和java Servlet规范是耦合的 - Tomcat托管Servlets,并提供包含HTTP通信基本方面的接口实现:例如,这里是它的Cookie接口---- http:// tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/http/Cookie.html.

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

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