JSP/Servlet HTTP 404错误处理

Pin*_*ink 4 html jsp http-status-code-404

我想在我的网络应用中处理HTML 404错误.

我可以这样写:

    <error-page>
  <error-code>404</error-code>
  <location>/view/error404.jsp</location>
 </error-page>
Run Code Online (Sandbox Code Playgroud)

这很好用,但我想记录用户输入的每个无效网址.当我在error404.jsp中使用scriptlet时,如下所示:

 <% 
     System.out.println(request.getRequestURL());
   %>
Run Code Online (Sandbox Code Playgroud)

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

我该如何获取无效的网址?或者我应该如何编写一个servlet来捕获其他servlet未明确处理的所有请求?

Bal*_*usC 9

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

<p>URL: ${requestScope['javax.servlet.forward.request_uri']}</p>
Run Code Online (Sandbox Code Playgroud)

或者,如果您仍然使用已经在十年前升级的旧版JSP 1.x,那么请执行以下操作:

<p>URL: <%= request.getAttribute("javax.servlet.forward.request_uri"); %></p>
Run Code Online (Sandbox Code Playgroud)