【问题标题】:How to check if session exists or not?如何检查会话是否存在?
【发布时间】:2011-02-18 13:58:08
【问题描述】:

我正在使用

创建会话
HttpSession session = request.getSession();

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

【问题讨论】:

    标签: java session servlets


    【解决方案1】:

    我想补充一点,如果您为每个连接到您网站的新用户创建一个新会话,那么您的性能将受到重创。使用 request.getSession(false) 检查用户是否有会话。使用此方法,如果您要根据用户是否经过身份验证来呈现视图,则无需创建新会话。

    【讨论】:

      【解决方案2】:
      if(null == session.getAttribute("name")){  
        // User is not logged in.  
      }else{  
        // User IS logged in.  
      }  
      

      【讨论】:

        【解决方案3】:

        如果你想在创建之前检查这个,那么这样做:

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

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

        HttpSession session = request.getSession();
        if (session.isNew()) {
            // Freshly created.
        } else {
            // Already created.
        }
        

        这节省了一行和一个booleanrequest.getSession()request.getSession(true) 的作用相同。

        【讨论】:

          【解决方案4】:

          有一个函数request.getSession(boolean create)

          参数:
          create - 如有必要,为该请求创建一个新会话;如果没有当前会话,则返回 null

          因此,您可以简单地通过 false 告诉 getSession 如果会话不存在则返回 null。

          【讨论】:

          • ...最好的解释恕我直言...指的是文档并保持专注。
          【解决方案5】:

          HttpSession 会话 = request.getSession(true); 如果 (session.isNew()) { ...做一点事 } 别的 { ……做点别的 }

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

          你当然也可以这样做:

          if(request.getSession(false) != null){
              HttpSession session = request.getSession();
          }
          

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

          干杯, 约根

          【讨论】:

          • 您必须将false 传递给第二个.getSession()
          猜你喜欢
          • 2012-10-18
          • 1970-01-01
          • 2011-12-29
          • 2018-04-04
          • 2013-02-26
          • 2013-05-22
          • 1970-01-01
          • 2012-10-03
          相关资源
          最近更新 更多