2011-02-09 2 views
6

Как получить URL-адрес запрашиваемой страницы, вызвавшей ошибку 404?Получить URL-адрес запрашиваемой страницы, вызвавшей 404

Например, я печатаю я хожу в http://example.com/path/does/not/exist/index.jsp У меня уже есть страница 404, но как бы я идти о получении URL-адреса упомянутого выше, так что я могу отобразить его с сообщением, подобным «URL-адрес http://example.com/path/does/not/exist/index.jsp не существует «?

+0

возможно дубликат [JSP/Servlet HTTP 404 обработки ошибок] (http://stackoverflow.com/questions/3336501/jsp-servlet-http-404-error-handling) – BalusC

ответ

9

Если вперед был использован для перехода на страницу ошибки, вы можете получить исходный запрос URL по

request.getAttribute("javax.servlet.forward.request_uri") 

или Эль

${requestScope['javax.servlet.forward.request_uri']} 
+0

Спасибо, но я ищу больше, как в примере, который я дал, без переадресации – alexcoco

+1

@alexcoco на странице с ошибкой получить этот атрибут – Bozho

+2

Действительно, '' соответствует определению, показанному вперед. – BalusC

0

Я использую JDK 8 и GlassFish 4, и

request.getAttribute("javax.servlet.forward.request_uri") 

всегда возвращенный null для меня. Что в конечном счете сделал работу был

request.getAttribute("javax.servlet.error.request_uri") 

Я не знаю, почему имя атрибута отличается, но в случае, если имя, которое я в списке не работает на вашей установке, вот код, который я использовал, чтобы найти его ...

Enumeration<String> names = request.getAttributeNames(); 

    while(names.hasMoreElements()){ 
     String name = names.nextElement(); 
     Object attr = request.getAttribute(name); 

     System.out.println("Req: "+name + " : "+attr); 
    } 
+0

Это был проект, над которым я работал много лет назад, но спасибо за обновление! – alexcoco

Смежные вопросы