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.
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)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           80426 次  |  
        
|   最近记录:  |