2015-04-17 1 views

ответ

5

Разница:

При использовании request.setAttribute, вы храните что-то для того же запроса объекта. Этот атрибут можно использовать позже, когда вы переходите от текущего сервлета/jsp к другому сервлету/jsp.

Когда вы используете request.getSession().setAttribute(), вы храните что-то для этого конкретную сессию пользователя. Вы можете использовать этот атрибут всякий раз, когда хотите, если сеанс пользователя не истек.

Где они хранятся и в каком формате:

Контейнер сервлетов будет управлять, где хранить значения. И значения всегда сохраняются как String.

Пример:

Допустим, что есть HTML страница для ввода студентов знаков, который отправляется в какой-то сервлет X, и вы хотите использовать эти значения в сервлет Y. Таким образом, вы установите значения метки в атрибут запроса сервлета X, а затем перенаправить на сервлет Y и использовать эти переменные.

Но предположим, что у вас несколько страниц ui, и когда пользователь выходит из системы, вы хотите предупредить его с его именем. Итак, что вы можете сделать, это сохранить его имя в request.getSession().setAttribute() и на странице выхода из системы вы можете получить значение, сохраненное в сеансе для предупреждения.

+0

спасибо :) но где они будут храниться и в каком формате? –

+1

@AravindRam см. Мой обновленный ответ – Abubakkar

+0

Метод request.setAttribute() сохраняет атрибуты как часть тела запроса или они будут храниться на сервере? –

Смежные вопросы