获取导致 404 的请求页面的 URL

发布于 2024-10-16 19:13:57 字数 377 浏览 1 评论 0原文

如何获取导致 404 错误的请求页面的 URL?

例如,我输入 I go to http://example.com/path/does /not/exist/index.jsp 我已经有一个自定义 404 页面,但我将如何检索上述 URL,以便我可以使用类似于“The url http://example.com/path/does/not/exist/index.jsp 不存在”?

How would I get the URL of the page that was requested that caused the 404 error?

For example, I type I go to http://example.com/path/does/not/exist/index.jsp
I already have a custom 404 page but how would I go about retrieving the URL mentioned above so that I can display it with a message similar to "The url http://example.com/path/does/not/exist/index.jsp does not exist"?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

酸甜透明夹心 2024-10-23 19:13:57

如果使用forward跳转到错误页面,可以通过

request.getAttribute("javax.servlet.forward.request_uri")

或者通过EL获取原始请求URL

${requestScope['javax.servlet.forward.request_uri']}

If forward was used to go to the error page, you can obtain the original request URL by

request.getAttribute("javax.servlet.forward.request_uri")

or by EL

${requestScope['javax.servlet.forward.request_uri']}
疏忽 2024-10-23 19:13:57

我使用的是 JDK 8 和 GlassFish 4,并且

request.getAttribute("javax.servlet.forward.request_uri")

总是返回 null。最终起作用的是

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

我不确定为什么属性名称不同,但如果我列出的名称不适用于您的设置,这是我用来查找它的代码...

    Enumeration<String> names = request.getAttributeNames();

    while(names.hasMoreElements()){
        String name = names.nextElement();
        Object attr = request.getAttribute(name);

        System.out.println("Req:  "+name + " : "+attr);
    }

I'm using JDK 8 and GlassFish 4, and

request.getAttribute("javax.servlet.forward.request_uri")

always returned null for me. What eventually did work was

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

I'm not sure why the attribute name is different, but in case the name I listed doesn't work on your setup, here's the code I used to find it...

    Enumeration<String> names = request.getAttributeNames();

    while(names.hasMoreElements()){
        String name = names.nextElement();
        Object attr = request.getAttribute(name);

        System.out.println("Req:  "+name + " : "+attr);
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文