Jakarta ee request.getSession(false)的作用是什么?

Jakarta ee request.getSession(false)的作用是什么?,jakarta-ee,grails,Jakarta Ee,Grails,我目前正在Grails in Action book中,作者正在TagLib类下编写一个名为loginToggle的自定义标记 我不太明白什么是请求。getSession(false)是用于 def loginToggle = { out << "<div style='margin: 15px 0 40px;'>" if (request.getSession(false) && session.user){ out &l

我目前正在Grails in Action book中,作者正在TagLib类下编写一个名为loginToggle的自定义标记

我不太明白什么是
请求。getSession(false)
是用于

def loginToggle = {
    out << "<div style='margin: 15px 0 40px;'>"
    if (request.getSession(false) && session.user){
        out << "<span style='float:left; margin-left: 15px'>"
        out << "Welcome ${session.user}."
        out << "</span><span style='float:right;margin-right:15px'>"
        out << "<a href='${createLink(controller:'brewUser', action:'logout')}'>"
        out << "Logout </a></span>"
    } 
    else{
        out << "<span style='float:right;margin-right:10px'>"
        out << "<a href='${createLink(controller:'brewUser', action:'login')}'>"
        out << "Login </a></span>"
    }
    out << "</div><br/>"
}
def登录切换={

out以上代码的意思是,如果有一个会话(但不创建会话)并且包含一个用户

检查文档:

返回与此请求关联的当前HttpSession,或者,如果没有当前会话且create为true,则返回新会话

如果create为false且请求没有有效的HttpSession,则此方法返回null。

若要确保会话得到正确维护,必须在提交响应之前调用此方法。如果容器使用cookie来维护会话完整性,并且在提交响应时被要求创建新会话,则会引发IllegalStateException

参数:
create
-如果需要,则为true可为此请求创建新会话;如果没有当前会话,则为false可返回null

返回: 与此请求关联的HttpSession,如果create为false且请求没有有效会话,则为null

另见:
getSession()


上面的代码意味着,如果有一个会话(但不创建会话)并且包含一个用户

检查文档:

返回与此请求关联的当前HttpSession,或者,如果没有当前会话且create为true,则返回新会话

如果create为false且请求没有有效的HttpSession,则此方法返回null。

若要确保会话得到正确维护,必须在提交响应之前调用此方法。如果容器使用cookie来维护会话完整性,并且在提交响应时被要求创建新会话,则会引发IllegalStateException

参数:
create
-如果需要,则为true可为此请求创建新会话;如果没有当前会话,则为false可返回null

返回: 与此请求关联的HttpSession,如果create为false且请求没有有效会话,则为null

另见:
getSession()


我可以不简单地将其保留为if(session.user)吗?这很可能会创建一个新会话。这取决于您的站点,但通常最好尽可能远离状态。我可以不简单地保留为if(session.user)吗?这很可能会创建一个新会话。这取决于您的站点,但通常最好尽可能远离状态。