Подтвердить что ты не робот

Разница между request.getSession(). GetId() и request.getSession(false)?

Что эти вызовы фактически означают с точки зрения сеанса?

System.out.println("print1: "+request.getSession().getId());
System.out.println("print2: "+request.getSession(false));

ВЫХОД

print1: D94146A347D95563186EB7525726336B
print2: [email protected]
4b9b3361

Ответ 1

HttpSession session = request.getSession(); Внутри метода службы мы запрашиваем сеанс, и каждая вещь автоматически появляется, например, создание объекта HttpSession. Нет необходимости генерировать уникальный идентификатор сеанса. Нет необходимости создавать новый объект Cookie. Все происходит автоматически за кулисами.

Как только вызов метода getSession() объекта запроса, новый объект сеанса создается контейнером и уникальный идентификатор сеанса, сгенерированный для поддержания сеанса. Этот идентификатор сеанса передается обратно в объект ответа, так что всякий раз, когда клиент делает любой запрос, он также должен прикреплять идентификатор сеанса с объектом requsest, чтобы контейнер мог идентифицировать сеанс.

request.getSession(false): этот метод проверяет, существовал ли сеанс для запроса или нет. Если он существует, он вернет уже существующий сеанс. Если сеанс еще не существует для этого запроса, этот метод возвращает NULL, это означает, что этот метод говорит, что запрос не имеет сеанса ранее.

Ответ 2

Короче говоря -

request.getSession().getId() - возвращает строку, содержащую уникальный идентификатор, назначенный этому сеансу. Идентификатор назначается контейнером сервлета и зависит от реализации.

request.getSession(false) - вернуть объект сеанса или null, если нет текущей сессии.

Ответ 3

Первая строка вернет "идентификатор сеанса" на сервере. Вторая строка вернет объект сеанса. Так что будет напечатано на system.out будет request.getSession(false).toString();

Реализация по умолчанию toString возвращает идентификатор объекта. Object id в терминах сеанса не совпадает с session id. Сеанс может быть сериализован и реплицирован по всему кластеру, поэтому каждый node кластера на каждой JVM может иметь собственный идентификатор объекта (но должен иметь тот же идентификатор сеанса).

Здесь вызывается вызов сеанса с булевым: http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getSession(boolean)

Ответ 4

    request.getSession()

Этот метод будет проверять существующий сеанс, если существует его возвращение, в противном случае создать новый сеанс для запроса.

    request.getSession().getId();

Это вернет уникальный идентификатор для этого сеанса.

    request.getSession(false);

Этот метод принимает логическое значение. Этот метод проверяет наличие существующего сеанса для этого пользователя (запроса); если он существует, он возвращает этот сеанс, иначе он возвращает null, то есть он не будет создавать новый сеанс.

Просто добавьте дополнительную информацию для сеанса.

    request.getSession(true);

Этот метод проверяет существующий текущий сеанс для этого пользователя (запроса), и если сеанс существует, он вернет этот сеанс или в противном случае он создаст новый сеанс для этого пользователя.

    request.getSession() works like request.getSession(true)

Ссылка: http://docs.oracle.com/javaee/1.4/api/javax/servlet/http/HttpServletRequest.html#getSession%28boolean%29

Ответ 5

request.getSession().getId()

Возвращает идентификатор сеанса.

Request.getsession(false) возвращает уже существующий объект сеанса. Он не вернет ничего, то есть вернет null, если сеанс не существует. Если с параметром true он создаст новый объект сеанса и вернет его, если сеанс не существует

Ответ 6

request.getSession().getId();

Вернет уникальный идентификатор строки, присвоенный уже запущенному сеансу. Генерация идентификатора зависит от конкретного поставщика, такого как apache, jboss и т.д.

request.getSession(false);

Он вернет объект сеанса, связанный с конкретным запросом, если объект сеанса связан с ним, он будет возвращен или он вернет null, если он не запущен сервером.

Ответ 7

request.getSession().getId();

это вернет идентификатор существующего сеанса.

Request.getsession(false) 

он вернет сеанс, если он существует, или он вернет null в противном случае.

и Request.getsession(false) означает: дать мне сеанс, если он существует, в противном случае не создавать новый экземпляр (и, таким образом, возвращать null).

Ответ 8

request.getSession().getId();

возвращает уникальный идентификатор, назначенный этому сеансу. И имеет тип возврата строки.

request.getSession(false)

возвращает объект HttpSession, если он уже существует, возвращает значение null.