Java 每个请求都有一个新的HttpSession?

Java 每个请求都有一个新的HttpSession?,java,jakarta-ee,httpsession,Java,Jakarta Ee,Httpsession,在使用servlet规范开发应用程序时,我一直认为为给定客户机的每个新请求创建的JSESSIONIDcookie是理所当然的。但是在仔细考虑之后,servlet容器只有在请求并在代码中创建会话之后才创建cookie头不是更符合逻辑吗?对于禁用Cookie的客户端,它是否会为每个请求创建一个新的HttpSession 如果问题仍然不清楚,请让我知道,以便我可以编辑它。TIA.默认情况下,Servlet容器不会创建新会话,除非Servlet实际显式创建它。仅仅因为在标头中填充了JSEESIONID并

在使用servlet规范开发应用程序时,我一直认为为给定客户机的每个新请求创建的
JSESSIONID
cookie是理所当然的。但是在仔细考虑之后,servlet容器只有在请求并在代码中创建会话之后才创建cookie头不是更符合逻辑吗?对于禁用Cookie的客户端,它是否会为每个请求创建一个新的
HttpSession


如果问题仍然不清楚,请让我知道,以便我可以编辑它。TIA.

默认情况下,Servlet容器不会创建新会话,除非Servlet实际显式创建它。仅仅因为在标头中填充了JSEESIONID并不意味着服务器上必须有seesion。JSP中有一个例外,默认情况下,如果没有会话,则会创建一个会话,除非

至于没有打开Cookie:

一个web容器可以使用多个 方法将会话与 用户,所有这些都涉及传递 客户端和服务器之间的标识符 服务器。标识符可以是 作为cookie在客户端上维护, 或者web组件可以包括 每个URL中的标识符 返回给客户

如果应用程序使用会话 对象,则必须确保该会话 通过使 每当 客户端关闭cookies。你这么做 通过调用响应的 所有URL上的encodeURL(URL)方法 由servlet返回。这种方法 在URL中包含会话ID 仅当Cookie被禁用时; 否则,它将返回URL 不变


这就引出了一个问题,如果容器无论如何都不打算创建新会话,那么提前生成JSSessionID的目的到底是什么?哦,好吧,我想我只需要为我的查询问一个新问题。谢谢你的帮助。