2015-04-27 2 views
1

Я изучал сессию в сервлетах и ​​делал некоторые вещи кода. Я видел это:Does request.getSession() установить cookie в браузер?

Я вызывал сервлет, используя сопоставление URL. То есть:

http://localhost:8080/ServletSessionProject/SessionLearningPath 

код сервлета очень прост:

HttpSession session = request.getSession(); 

Теперь, с помощью этого простого кода (я использовал doGet()), я затем открыл печенье в хроме, как это:

chrome://settings/cookies 

Был я был в состоянии увидеть набор печенья.

Я смущен. В моем коде я просто позвонил request.getSession(). Почему этот простой оператор устанавливает cookie в браузере? Я уверен, что печенья там не было.

Как это возможно?

ответ

2

Да. Сессия установлена ​​в файле cookie. JSESSIONID

Веб-приложение выполняет трассировку сессии пользователя с использованием файла cookie, но это не единственный метод. Когда пользователь не имеет сеанса с веб-приложением и вызывается request.getSessin();, Servlet api создает новый сеанс и идентификатор сеанса. Этот идентификатор сеанса используется для уникального представления и отслеживания сеанса пользователя. Этот идентификатор сеанса отправляется в ответе как заданный запрос cookie. Вот почему вы видите cookie после одного цикла запроса.

1

См: request.getSession()

Возвращает текущий сеанс, связанный с этим запросом, или если запрос не имеет сессии, создает один.

создание сессии будет установлен session cookie на сообщение ответа HTTP. Это «волшебство», которое создает cookie и передает его в браузер.

+2

Вы можете вызвать request.getSession (false), если вы не хотите запускать новый сеанс, если нет текущего сеанса – MTilsted

+0

request.getSession() возвращает текущий сеанс, как сказано в ioseb. Таким образом, он получает cookie, хранящийся в вашем браузере, все это происходит, если у вас уже есть активный сеанс. В противном случае, когда нет активного сеанса, request.getSession() создаст сеанс, поэтому он устанавливает сеанс ccokie в ответном сообщении HTTP и извините за мой плохой английский. –

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