2010-07-26 133 views
4

我想在我的web应用程序中处理HTML 404错误。JSP/Servlet HTTP 404错误处理

我可以这样写:

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

这工作完全,但我要记录的无效的URL的用户类型。 当我在error404.jsp使用一个scriptlet这样的:

<% 
    System.out.println(request.getRequestURL()); 
    %> 

我总是得到:http://localhost:8080/webApp/view/error.jsp,因为用户会从无效的URL转发给我的error404.jsp。

我该如何得到无效的URL?或者,我应该如何编写一个servlet来捕获所有未由其他servlet明确处理的请求?

回答

9

它存储为请求属性与关键javax.servlet.forward.request_uri

<p>URL: ${requestScope['javax.servlet.forward.request_uri']}</p> 

或者,如果你还在其上已经升级在十多年前遗留JSP 1.x中,那么这样做:

<p>URL: <%= request.getAttribute("javax.servlet.forward.request_uri"); %></p> 
+0

很酷!谢谢! – Pink 2010-07-26 15:51:56

+0

不客气。 – BalusC 2010-07-26 16:27:01