Как проверить, существует ли сессия или нет?

Я создаю использование сессии

HttpSession session = request.getSession();

Прежде, чем создать сессию я хочу проверить, существует ли она или нет. Как я сделал бы это?

20
задан yatskevich 19 August 2012 в 16:04
поделиться

3 ответа

HttpSession session = request.getSession (true); if (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

Ура, Йорген

4
ответ дан 29 November 2019 в 22:39
поделиться

Существует функция request.getSession(boolean create)

Параметры:
create - true для создания новой сессии для этого запроса, если необходимо; false для возврата null, если текущей сессии нет

Таким образом, вы можете просто передать false, чтобы сказать getSession вернуть null, если сессии не существует.

22
ответ дан 29 November 2019 в 22:39
поделиться

Если вы хотите проверить это перед созданием , сделайте так:

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.
}

Это сохраняет строку и логическое значение . request.getSession () делает то же самое, что и request.getSession (true) .

36
ответ дан 29 November 2019 в 22:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: