2011-02-09 13 views
6

Jak uzyskać adres URL żądanej strony, która spowodowała błąd 404?Uzyskaj adres URL żądanej strony, która spowodowała 404

Na przykład, wpisz idę http://example.com/path/does/not/exist/index.jsp Mam już niestandardowe strony 404, ale jak pójdę o pobieraniu URL wspomniano powyżej, aby można było wyświetlić go z komunikatem podobnym do „Adres URL http://example.com/path/does/not/exist/index.jsp nie istnieje "?

+0

możliwe duplikat [JSP/Servlet HTTP 404 obsługi błędów] (http://stackoverflow.com/questions/3336501/jsp-servlet-http-404-error-handling) – BalusC

Odpowiedz

9

Jeśli użyto do przodu, aby przejść do strony błędu, można uzyskać oryginalną URL żądania przez

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

lub przez El

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

Dzięki ale szukam więcej jak na przykład, który podałem, bez przesyłania – alexcoco

+1

@alexcoco na stronie błędu uzyskaj ten atrybut – Bozho

+2

Rzeczywiście, '' jest z definicji pokazane przez naprzód. – BalusC

0

Używam JDK 8 i GlassFish 4, i

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

zawsze zwracana wartość null dla mnie. Co w końcu zadziałały był

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

Nie jestem pewien, dlaczego nazwa atrybutu jest inny, ale w przypadku, gdy nazwa wymieniłem nie działa od konfiguracji, oto kod użyłem go znaleźć ...

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

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

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

To było dla projektu, nad którym pracowałem wiele lat temu, ale dziękuję za aktualizację! – alexcoco

Powiązane problemy