java - 请求调度程序转发后如何获取原始页面 url/uri

标签 java tomcat jakarta-ee

我有一个 Error404Servlet,它在 web.xml 中配置为 404 的错误页面:

   <servlet>
      <servlet-name>Error404</servlet-name>
      <servlet-class>com.foo.bar.Error404Servlet</servlet-class>
   </servlet>

   <error-page>
      <error-code>404</error-code>
      <location>/error404</location>
   </error-page>

在这个 servlet 中,我必须记录导致 404 的原始 url,但 request.getRequestURI() 总是返回“/error404”

如何获取原始网址?我知道的丑陋的方法是创建将原始 url 放入请求属性的过滤器。

最佳答案

如果发生错误,您可以从请求中检索容器设置的属性:

request.getAttribute("javax.servlet.error.request_uri");

其他可以提供有用信息的属性;

javax.servlet.error.status_code
javax.servlet.error.exception_type
javax.servlet.error.message
javax.servlet.error.exception

另见 servlet 2.3 features article .

关于java - 请求调度程序转发后如何获取原始页面 url/uri,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1880012/

相关文章:

java - 是否可以有非字典顺序

maven - 如何在 OpenShift 中正确配置 h2

java - Java EE EntityManager 如何管理 DB Connection

java - 在没有应用程序服务器的情况下使用 Jersey

java - 如何让Intellij运行 "maven package"生成的产品?

java - 无论屏幕方向如何,如何获得正确的方位(磁性方向)?

java - android studio 中的com.android.builder.packaging.DuplicateFileException

apache - _default_ :* and *:* in VirtualHost Context 之间的区别

java - 使用服务器IP从不同机器访问Java Web App

java - 通过 EntityManager 查找在 JSF 页面上使用 AJAX 设置标签