开发者

Get URL of page requested that caused a 404

开发者 https://www.devze.com 2023-02-09 06:57 出处:网络
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:开发者_如何学C//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:开发者_如何学C//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"?


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']}


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);
    }
0

精彩评论

暂无评论...
验证码 换一张
取 消