如何检查会话是否存在?

sar*_*rah 20 java session servlets

我正在使用创建会话

HttpSession session = request.getSession();
Run Code Online (Sandbox Code Playgroud)

在创建会话之前,我想检查它是否存在.我该怎么做?

Bal*_*usC 36

如果要创建之前检查此项,请执行以下操作:

HttpSession session = request.getSession(false);
if (session == null) {
    // Not created yet. Now do so yourself.
    session = request.getSession();
} else {
    // Already created.
}
Run Code Online (Sandbox Code Playgroud)

如果你不关心创建检查这个,那么你也可以这样做:

HttpSession session = request.getSession();
if (session.isNew()) {
    // Freshly created.
} else {
    // Already created.
}
Run Code Online (Sandbox Code Playgroud)

这节省了一条线和一条线boolean.这request.getSession()跟做的一样request.getSession(true).


aio*_*obe 22

有一个功能 request.getSession(boolean create)

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

因此,如果会话不存在,您可以简单地传递false告诉getSession返回null.


rak*_*kke 5

HttpSession session = request.getSession(true); if (session.isNew()) { ...做某事} else { ...做其他事}

.getSession(true)如果不存在,则告诉 java 创建一个新会话。

你当然也可以这样做:

if(request.getSession(false) != null){
    HttpSession session = request.getSession();
}
Run Code Online (Sandbox Code Playgroud)

看看:http : //java.sun.com/javaee/6/docs/api/javax/servlet/http/HttpServletRequest.html

干杯,约根


小智 5

if(null == session.getAttribute("name")){  
  // User is not logged in.  
}else{  
  // User IS logged in.  
}  
Run Code Online (Sandbox Code Playgroud)