How to check if a session is invalid

前端 未结 3 1890
天命终不由人
天命终不由人 2020-12-13 04:39

How to check if a session is invalid or not? There is no method in the API.

Is it the same as isNew()? And what is the difference if not?

相关标签:
3条回答
  • 2020-12-13 04:54

    If you want to know whether it valid based on a request:

    request.isRequestedSessionIdValid()
    
      or
    
    HttpSession sess = request.getSession(false);
    if (sess != null) {
       // it's valid
    }
    

    If you have stored a reference to the session and need to validate I would

    try {
      long sd = session.getCreationTime();
    } catch (IllegalStateException ise) {
      // it's invalid
    }
    
    0 讨论(0)
  • 2020-12-13 04:59

    isNew() is true only if this session wasn't yet accepted by client (i.e. it was just created, and JSESSIONID wasn't sent yet, or if it was sent, client didn't send it back, so server doesn't know about it and created another session)

    0 讨论(0)
  • 2020-12-13 05:14

    For all intents and purposes, yes. However, it will throw an IllegalStateException if called on a session invalidated in the same request-response cycle.

    0 讨论(0)
提交回复
热议问题