10
我通過web.xml中的以下內容將404錯誤重定向到servlet。web.xml 404重定向到servlet,如何獲取原始URI?
<error-page>
<error-code>404</error-code>
<location>/notFound.do</location>
</error-page>
我想記錄在請求試圖去,但我沒有從指引頭得到它:request.getHeader(「引薦」)
這顯示「空」如果我只是打任何舊的隨機不存在的頁面。
而request.getRequestURL()/ request.getRequestURI()都只顯示最終的登陸servlet信息(即,/ notFound)。
任何獲取請求的「不良」網頁網址的方法?
看來servlet的api.jar文件中(它提供javax.servlet.RequestDispatcher)我的Tomcat 7.0.19安裝沒有任何這些靜態字段;只有'前進'和'包含'的方法。 但我可以得到它的工作,如果我只是直接把字符串。例如,下面的工作。 (「javax.servlet.forward.request_uri」) 感謝您的幫助! –
它肯定存在於那裏(點擊我答案中的鏈接查看javadocs)。這個問題表明你已經將IDE配置爲將項目視爲一個Servlet 2.4項目或更早版本,或者你將編譯時類路徑依賴於放置在別處的寬鬆且舊版本的'servlet-api.jar'文件。你在使用Eclipse嗎?如果是這樣,請閱讀此:http://stackoverflow.com/questions/4076601/how-do-i-import-the-javax-servlet-api-in-my-eclipse-project/4076706#4076706 – BalusC
奇怪。我彈出打開servlet-api.jar並查看RequestDispatcher.class字節碼,並在那裏看到FORWARD_REQUEST_URI(以及其他常量)。但是在Eclipse中打開聲明只會顯示兩種方法。它們都指向磁盤上的相同jar ... –