Обработка ошибок JSP/Servlet HTTP 404

Я хочу обрабатывать ошибки HTML 404 в своем веб-приложении.

Я могу написать это:

    <error-page>
  <error-code>404</error-code>
  <location>/view/error404.jsp</location>
 </error-page>

Это работает отлично, но я хочу регистрировать каждый из недействительных URL-адресов, которые вводят пользователи. Когда я использую скриптлет в error404.jsp следующим образом:

 <% 
     System.out.println(request.getRequestURL());
   %>

Я всегда получаю: http://localhost:8080/webApp/view/error.jsp, потому что пользователи будут перенаправлены на мой error404.jsp с недопустимого URL-адреса.

Как мне получить неверный URL? Или как мне написать сервлет, который перехватывает все запросы, которые явно не обрабатываются другими сервлетами?


person Pink    schedule 26.07.2010    source источник


Ответы (1)


Хранится как атрибут запроса с ключом javax.servlet.forward.request_uri:

<p>URL: ${requestScope['javax.servlet.forward.request_uri']}</p>

Или, если вы все еще используете устаревшую версию JSP 1.x, которая уже была обновлена ​​более десяти лет назад, сделайте следующее:

<p>URL: <%= request.getAttribute("javax.servlet.forward.request_uri"); %></p>
person BalusC    schedule 26.07.2010