何时/什么条件JSESSIONID
被建造?
是每个域吗?例如,如果我有一个 Tomcat 应用程序服务器,并且我部署了多个 Web 应用程序,则会有不同的JSESSIONID
是根据上下文(Web 应用程序)创建的,还是在 Web 应用程序之间共享(只要它们属于同一域)?
JSESSIONID cookie 在创建会话时创建/发送。当您的代码调用时会创建会话request.getSession()
or request.getSession(true)
首次。如果您只想获取会话,但如果会话不存在则不想创建它,请使用request.getSession(false)
-- 这将返回一个会话或null
。在这种情况下,不会创建新会话,并且不会发送 JSESSIONID cookie。 (这也意味着会话不一定是在第一次请求时创建的...您和您的代码尽在掌控when会话已创建)
会话是针对每个上下文的:
SRV.7.3 会话范围
HttpSession 对象的作用域必须为
应用程序(或 servlet 上下文)
等级。底层机制,例如
作为用于建立的cookie
会话,不同的会话可以是相同的
上下文,但是引用的对象,
包括其中的属性
对象,绝不能在之间共享
容器的上下文。
(Servlet 2.4 规范 http://jcp.org/aboutJava/communityprocess/final/jsr154/index.html)
更新:如果还没有会话,则每次调用 JSP 页面都会隐式创建一个新会话。这可以通过以下命令关闭session='false'
page 指令,在这种情况下,会话变量在 JSP 页面上根本不可用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)