在什么条件下创建 JSESSIONID?
何时/创建时的条件是什么?JSESSIONID
它是按域划分的吗?例如,如果我有一个 Tomcat 应用程序服务器,并且我部署了多个 Web 应用程序,那么是为每个上下文(Web 应用程序)创建一个不同的应用程序,还是只要它们是同一个域,它就会在 Web 应用程序之间共享?JSESSIONID
何时/创建时的条件是什么?JSESSIONID
它是按域划分的吗?例如,如果我有一个 Tomcat 应用程序服务器,并且我部署了多个 Web 应用程序,那么是为每个上下文(Web 应用程序)创建一个不同的应用程序,还是只要它们是同一个域,它就会在 Web 应用程序之间共享?JSESSIONID
JSESSIONID cookie 是在创建会话时创建/发送的。会话是在代码调用时或首次调用时创建的。如果您只想获取会话,但如果它不存在,则不创建它,请使用 -- 这将返回一个会话或 .在这种情况下,不会创建新会话,也不会发送 JSESSIONID cookie(这也意味着会话不一定是在第一次请求时创建的...创建会话时,您和您的代码处于控制之中)request.getSession()
request.getSession(true)
request.getSession(false)
null
会话是按上下文划分的:
SRV.7.3 会话范围
HttpSession 对象的作用域必须在应用程序(或 servlet 上下文)级别。对于不同的上下文,底层机制(如用于建立会话的 Cookie)可以是相同的,但容器绝不能在上下文之间共享引用的对象(包括该对象中的属性)。
更新:如果还没有会话,则每次调用 JSP 页都会隐式创建一个新会话。这可以通过 page 指令关闭,在这种情况下,会话变量在 JSP 页面上根本不可用。session='false'
以下是有关 Cookie 的另一个来源的一些信息:JSESSIONID
我只是在调试一些在tomcat服务器上运行的Java代码。我没有在代码中的任何位置显式调用,但我注意到仍在设置cookie。request.getSession()
JSESSIONID
最后,我看了一下生成的 Java 代码,这些代码对应于 Tomcat 下工作目录中的 JSP。
看来,无论你喜欢与否,如果你从 servlet 调用 JSP,就会被创建出来!JSESSIONID
已添加:我刚刚通过添加以下JSP指令发现:
<%@ page session="false" %>
您可以禁用 由 JSP 设置。JSESSIONID