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