Як отримати URL сторінки в JSP

Завдання Отримати URL поточної сторінки за допомогою JSP

Рішення Для того, щоб отримати URL потрібно спочатку отримати посилання на поточний об'єкт HTTP запиту (javax.servlet.http.HttpServletRequest). Після того як буде отримано об'єкт запиту, у нього слід викликати методgetRequestURL(), який поверне URL-запиту.

Якщо ми користуємося скриптлетами, то в JSP є неявний об'єкт запитуrequest. Виведення інформації здійснюється через інший неявний JSP об'єктout, який відповідає типу javax.servlet.jsp.JspWriter і служить для запису даних у відповідь сервера

Якщо ми хочемо отримати та відобразити інформацію з помою мовою виразів JSP (JSP EL ), то в ній відсутній у неявному вигляді об'єкт запиту (request), натомість є об'єкт контексту сторінкиpageContext, який надає доступ до всіх необхідних об'єктів сервлету (request, response, session тощо)

При використанні мови виразів JSP дані відразу пишуться у вихідний потік відповіді сервера

Слід зазначити, що отримане значення відображатиме саме URL поточної сторінки JSP, наприклад

Таким чином, якщо використовується будь-який web-фремворк (Struts, SpringMVC і т.д.), то цей URL може не відповідати URL, введеному користувачем у браузері, т.к. фрейморки зазвичай здійснюють диспетчеризацію та перенаправлення запитів усередині додатка на відповідні сторінки. У цьому випадку отримання URL необхідно здійснювати в коді класів-контролерів даного фреймворку або встановити на вхідні запити сервлет-фільтр та визначати URL у ньому: