Зачем нужны и чем отличаются методы encodeURL() и encodeRedirectURL()
Оба метода интерфейса HttpServletResponse добавляют jsessionid к URL, если клиент не поддерживает cookies. Разница в контексте использования: encodeURL() — для ссылок в HTML, encodeRedirectURL() — для URL, передаваемых в sendRedirect().
| Метод | Когда использовать | Пример |
|---|---|---|
encodeURL(url) |
HTML-ссылки и формы | <a href="<%= response.encodeURL("/page") %>"> |
encodeRedirectURL(url) |
Перед вызовом sendRedirect() |
response.sendRedirect(response.encodeRedirectURL("/page")) |
Оба метода проверяют, нужно ли добавлять jsessionid: если клиент поддерживает cookies, URL возвращается без изменений. Разница в реализации может касаться правил формирования URL — encodeRedirectURL() учитывает, что URL может указывать на другой хост.
В современных приложениях на Spring MVC эти методы вызываются фреймворком автоматически и явное использование не требуется.
На собеседовании: важно знать назначение, но упомянуть, что в 2026 году URL rewriting практически не используется — cookies или JWT-токены решают задачу управления сессией.