web项目中自定义了一个错误页面,例如对404错误进行显示的页面,假设为404.jsp,我们在编写404.jsp页面的时候需要获取当前地址栏的url,也就是确定是哪个页面没有找到。我们会发现调用request.getRequestURL()等方法都是无效的,因为它们返回的都是404.jsp这个页面的路径。
因此我们就要想其他的办法,首先我们在404.jsp中把当前请求的所有http头(getHeaderNames)打印出来,发现没有我们想要的信息;接着我把当前请求对象的所有attributes(getAttributeNames)打印出来就找到了解决的办法了。
String uri = (String)request.getAttribute("javax.servlet.forward.request_uri");
于是uri变量就是你当前正在访问的页面,而该页面是找不到的。