2011-02-09 11 views
6

¿Cómo obtendré la URL de la página solicitada que causó el error 404?Obtener la URL de la página solicitada que causó un 404

Por ejemplo, yo tipo I ir a http://example.com/path/does/not/exist/index.jsp Ya tengo una página 404 personalizada pero ¿cómo hago para recuperar la URL mencionado anteriormente para que pueda visualizarlo con un mensaje similar a "No existe la url http://example.com/path/does/not/exist/index.jsp "¿?"

+0

posible duplicado de [/ servlet HTTP 404 manejo de errores JSP] (http://stackoverflow.com/questions/3336501/jsp-servlet-http-404-error-handling) – BalusC

Respuesta

9

Si se utilizó hacia adelante para ir a la página de error, se puede obtener el URL de la solicitud original de

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

o por EL

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

Gracias pero estoy buscando más para como el ejemplo que di, sin reenviar – alexcoco

+1

@alexcoco en la página de error obtener este atributo – Bozho

+2

De hecho, un '' es por definición mostrada por un delantero. – BalusC

0

estoy usando JDK 8 y GlassFish 4, y

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

siempre devuelto nulo para mí. Lo que finalmente hizo el trabajo era

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

No estoy seguro de por qué el nombre del atributo es diferente, pero en caso de que el nombre que se enumeran no funciona en su configuración, aquí está el código que solía encontrarlo ...

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

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

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

Esto fue para un proyecto en el que trabajé hace muchos años, ¡pero gracias por la actualización! – alexcoco

Cuestiones relacionadas