Estoy redirigiendo errores 404 a un servlet a través de lo siguiente en mi web.xml.web.xml 404 redirigir a servlet, cómo obtener el URI original?
<error-page>
<error-code>404</error-code>
<location>/notFound.do</location>
</error-page>
me gustaría que entrar cuando la solicitud estaba tratando de ir, pero ahora no recibo desde el encabezado de referencia: request.getHeader ("árbitro")
que muestra 'nulo' si acabo de golpear cualquier página aleatoria que no exista.
Y request.getRequestURL()/request.getRequestURI() ambos solo muestran la información final del servlet de aterrizaje (es decir,/notFound).
¿Alguna manera de obtener la URL de página "incorrecta" que se solicitó?
parece que el servlet-api.jar (que proporciona javax.servlet.RequestDispatcher) en mi instalación de Tomcat 7.0.19 no tiene ninguno de esos campos estáticos; solo los métodos 'forward' e 'include'. Pero puedo hacer que funcione si solo pongo el hilo directamente. Por ejemplo, los siguientes trabajos. request.getAttribute ("javax.servlet.forward.request_uri") Gracias por su ayuda! –
Definitivamente está presente allí (haga clic en los enlaces en mi respuesta para ver los javadocs). Este problema sugiere que ha configurado su IDE para tratar su proyecto como un proyecto de Servlet 2.4 o anterior, o que está confiando en su classpath compiletime en un archivo 'servlet-api.jar' de versiones anteriores y antiguas que se encuentra en otro lugar. ¿Estás usando Eclipse? Si es así, lea esto: http://stackoverflow.com/questions/4076601/how-do-i-import-the-javax-servlet-api-in-my-eclipse-project/4076706#4076706 – BalusC
Weird. Abrí el servlet-api.jar y eché un vistazo al código de bytes RequestDispatcher.class, y veo FORWARD_REQUEST_URI allí (así como las otras constantes). Pero abrir la declaración dentro de Eclipse solo muestra los dos métodos. Ambos apuntan al mismo contenedor en el disco ... –