1. Зачем использовать перезапись URL?
Начнем с принципа сессии, почему мы можем получить вещи в сессии? Если файл cookie не отключен, после создания сеанса значение идентификатора сеанса будет передано клиенту через ответ и сохранено в файле cookie. Когда вы отправляете запрошенную страницу, передаете идентификатор сеанса на сервер через протокол http, в это время сервер знает, что сеанс был создан.
В общем: Уровень сеанса сеанса реализуется через идентификатор сеанса в файле cookie.
Что делать, если клиент отключает файлы cookie? ! В настоящее время необходимо использовать технологию перезаписи URL.
2. Проявления перезаписи URL:
Форма 1 это:
http://...../xxx;jsessionid = ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764
Форма 2 это:
http://...../xxx?jsessionid=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764
Они не имеют значения. ;jsessionid подставляется автоматически.
3. Java-код:
response.encodeURL("logoutServlet"); Используется для перезаписи гиперссылки и представления формы действия.
response.encodeRedirectURL("logoutServlet"); Используется для перезаписи метода response.sendRedirect().
Объяснение; После перезаписи он автоматически определит, отключил ли клиент файлы cookie, и если он отключен, он автоматически добавит идентификатор сеанса к URL-адресу. Если он не отключен, он не будет содержать идентификатор сеанса.