Servlets 如何在dispatcher.forward(请求、响应)之后从servlet中的请求获取上一页URL

Servlets 如何在dispatcher.forward(请求、响应)之后从servlet中的请求获取上一页URL,servlets,request,Servlets,Request,我正在使用servlet,它在 dispatcher.forward(request, response); 最后。但是在这之后,我想得到一个页面(路径),我从中被重定向到下一个servlet命令中使用它(转到上一个页面)。我怎么能得到它? 或者之前的URL不包含在请求参数中,我应该自己添加它? 非常感谢您的帮助。您可以将该url存储在HttpSession中,并在需要时在下一个servlet中检索它。尝试使用 request.getAttribute("javax.servlet.forwa

我正在使用servlet,它在

dispatcher.forward(request, response);
最后。但是在这之后,我想得到一个页面(路径),我从中被重定向到下一个servlet命令中使用它(转到上一个页面)。我怎么能得到它? 或者之前的URL不包含在请求参数中,我应该自己添加它?
非常感谢您的帮助。

您可以将该
url
存储在
HttpSession
中,并在需要时在下一个servlet中检索它。

尝试使用

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




字符串referer=request.getHeader(“referer”); response.sendRedirect(referer)

见:

当您转发(..)时,任何方法都会返回源URL,因此我的解决方案是定义一个过滤器,将requestURL()存储在请求属性中,以便稍后检查。要在web.xml中执行此操作,请编写:

...
<filter>
    <filter-name>MyFilter</filter-name>
    <filter-class>my.package.CustomFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>MyFilter</filter-name>
    <url-pattern>*</url-pattern>
</filter-mapping>
...
然后,您可以使用ServletRequest对象在代码中的任何地方获得它,方法是:

request.getAttribute("OriginURL").toString();

据我所知,这应该是一个很好的方式。请修复参考。链接当前已关闭。
request.getAttribute("OriginURL").toString();