request.getSession() 和 request.getSession(true) 之间的区别

2022-09-01 03:25:35

我了解 和 之间的区别。但是,看起来非常相似!request.getSession(true)request.getSession(false)request.getSession()request.getSession(true)

两者“返回与此请求关联的当前会话”,但不同之处在于:

request.getSession():

“或者,如果请求没有会话,则创建一个会话"

request.getSession(true):

“如果没有当前会话,则返回新会话"

我不明白它们之间的区别,是不是(如果不存在)它们创建了一个新会话,但第一个会话没有返回它,但第二个会话返回了?

资料来源:http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html

编辑:

有人将我的问题标记为重复,即使它不是。我会解释为什么。

我已经明确要求&和NOT之间的区别&!我已经再次明确表示,我已经理解了b / w和.request.getSession()request.getSession(true)request.getSession(true)request.getSession(false)..(true)..(false)

该问题链接为关于b / w和not差异的可能重复的问题..(true)..(false)..(true) & ..()


答案 1

request.getSession()将返回当前会话。如果当前会话不存在,则它将创建一个新会话

request.getSession(true)将返回当前会话。如果当前会话不存在,则它将创建一个新会话

所以基本上两种方法之间没有区别。

request.getSession(false)如果当前会话存在,将返回当前会话。否则,它不会创建新会话


答案 2

request.getSession()只是一种方便的方法。它的作用与 完全相同。request.getSession(true)


推荐