Обработка ошибок JSP / Servlet HTTP 404 - PullRequest
4 голосов
/ 26 июля 2010

Я бы хотел обработать ошибки 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? Или как мне написать сервлет, который перехватывает все запросы, которые явно не обрабатываются другими сервлетами?

1 Ответ

9 голосов
/ 26 июля 2010

Хранится как атрибут запроса с ключом 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...