2016-04-26 166 views
-1

所以,我看到了有關如何通過添加在web.xml中有以下重定向404名錯誤的請求自定義JSP頁面的多個線程:將404錯誤重定向到Servlet而不是JSP頁面?

<error-page> 
    <error-code>404</error-code> 
    <location>/404page.jsp</location> 
</error-page> 

這種方法的問題在於,URL顯示在以下頁面這種結構:

www.mydomain.com/404page.jsp 

.JSP部分燒傷我出去,因爲所有其他網頁都通過Servlet的映射,因此的.jsp是不是在它們可見。

如何將用戶重定向到Servlet而不是404page.jsp JSP頁面?這樣的網址是:

www.mydomain.com/404 

這可能嗎?如果沒有,隱藏URL的.jsp部分的方法是什麼?

+0

你試圖把/404? – Bax

+0

這個問題很奇怪。通常,錯誤頁面的URL不會顯示在瀏覽器的地址欄中,因爲它默認由** forward **而不是重定向顯示。此外,錯誤頁面應放置在'/ WEB-INF'文件夾中,以防止最終用戶直接訪問(和書籤/共享/索引)它們。我建議你退後一步,調查爲什麼在你的情況下,他們的行爲就好像他們被重定向一樣。這首先是錯誤的。 – BalusC

回答

1

您可以創建一個404Handler Servlet和映射它像下面

<servlet-mapping> 
     <servlet-name>404Handler</servlet-name> 
     <url-pattern>/404</url-pattern> 
</servlet-mapping> 
<error-page> 
    <error-code>404</error-code> 
    <location>/404</location> 
</error-page> 
+0

什麼是'404'?那是Servlet的名字嗎? – Dinuka

+1

404Handler是Servlet的名稱。/404是指向它的網址。 – Sanj

+0

它的工作表示感謝! :)但是,當我輸入錯誤的URL時,我的404不會被調用。它仍然顯示一個基於瀏覽器的錯誤,說'錯誤404'。爲什麼它沒有檢測到404錯誤? – Dinuka

相關問題