Sto reindirizzando gli errori 404 a un servlet tramite il seguente nel mio web.xml.web.xml 404 reindirizzare a servlet, come ottenere l'URI originale?
<error-page>
<error-code>404</error-code>
<location>/notFound.do</location>
</error-page>
mi piacerebbe registrare in cui la richiesta è stata cercando di andare, ma non sto ricevendo dalla testata referrer: request.getHeader ("referer")
Ciò dimostra 'null' se ho appena colpito una vecchia pagina casuale inesistente.
E request.getRequestURL()/request.getRequestURI() mostra semplicemente le informazioni finali del servlet di destinazione (I.e.,/nonFound).
Un modo per ottenere l'URL di pagina "cattivo" richiesto?
Sembra che il servlet-api.jar (che fornisce javax.servlet.RequestDispatcher) in la mia installazione di Tomcat 7.0.19 non ha nessuno di quei campi statici; solo i metodi "avanti" e "includi". Ma posso farlo funzionare solo se inserisco direttamente la stringa. Ad esempio, i seguenti lavori. request.getAttribute ("javax.servlet.forward.request_uri") Grazie per il vostro aiuto! –
È sicuramente presente lì (fai clic sui collegamenti nella mia risposta per vedere i javadoc). Questo problema suggerisce che hai configurato il tuo IDE per trattare il tuo progetto come un progetto Servlet 2.4 o precedente, o che stai facendo affidamento sul tuo classpath compiletime su un file 'servlet-api.jar' con versione libera e vecchio che è collocato altrove. Stai usando Eclipse? In tal caso, leggi questo: http://stackoverflow.com/questions/4076601/how-do-i-import-the-javax-servlet-api-in-my-eclipse-project/4076706#4076706 – BalusC
Strano. Ho aperto il servlet-api.jar e ho dato un'occhiata al codice byte RequestDispatcher.class, e vedo FORWARD_REQUEST_URI lì (così come le altre costanti). Ma l'apertura della dichiarazione in Eclipse mostra solo i due metodi. Sono entrambi puntati allo stesso jar sul disco ... –