Когда вы используете тег jsp: forward, он перенаправляет объект request на URL, указанный тегом. Вы фактически пересылаете объект запроса.
Когда вы используете метод sendRedirect () объекта response , вы просто отправляете абсолютный URL-адрес обратно в веб-браузер клиента. Другими словами, ответ становится перенаправлением на заданный URL, который затем вызывает браузер клиента.
Если данные являются частью запроса, они теряются; так что если вы пытаетесь перенаправить, прежде чем установить атрибут имени пользователя сеанса, это произойдет.
Если вы действительно проигрываете сессию, это может указывать на несколько вещей:
1) Если новый URL не находится в том же домене, куки не будут отправлены.
2) Если новый URL находится за пределами пути cookie, файл cookie не будет отправлен.
3) В браузере не разрешено использование файлов cookie. Чтобы это имело место, вам пришлось бы кодировать URL-адреса при использовании jsp: forward, поэтому я был бы удивлен, если это так.
В любом из этих случаев будет создан новый сеанс и будет создан новый файл cookie с указанием пути нового домена и URL-адреса.