如何在dispatcher.forward(request,response)之后从servlet中的请求中获取上一页URL

发布于 2024-12-22 03:03:05 字数 208 浏览 0 评论 0原文

的帮助下重定向我

dispatcher.forward(request, response);

我正在使用 servlet,它最终在 。但在此之后,我想获取我被重定向的页面(路径),以便在下一个 servlet 命令中使用它(转到上一页)。我怎样才能得到它? 或者请求参数中没有包含之前的URL,我应该自己添加? 将非常感谢您的帮助。

I'm using the servlet which redirects me with the help of

dispatcher.forward(request, response);

in the end. But after this I want to get the page(path) from which I was redirected to use it in next servlet command(to go to previous page). How could I get it?
Or previous URL is not contained in request parameters and I should add it myself?
Will be very grateful for your help.

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

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

发布评论

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

评论(4

写给空气的情书 2024-12-29 03:03:05

String Referer = request.getHeader("Referer");
response.sendRedirect(referer);

参见:
论坛答案链接

String referer = request.getHeader("Referer");
response.sendRedirect(referer);

SEE:
Link to forum answer

淡紫姑娘! 2024-12-29 03:03:05

尝试使用

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

查看
https://tomcat.apache.org/tomcat-9.0- doc/servletapi/constant-values.html

如何获取客户端的url

Try using

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

See
https://tomcat.apache.org/tomcat-9.0-doc/servletapi/constant-values.html
and
How to get the url of the client

一杆小烟枪 2024-12-29 03:03:05

当你执行forward(..)时,任何方法都会返回源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>
...

然后在 CustomFilter 类中:

public class CustomFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {}

    @Override
    public void destroy() {}

    @Override
    public void doFilter(ServletRequest req, ServletResponse rsp,
            FilterChain chain) throws IOException, ServletException {
        req.setAttribute("OriginURL", req.getRequestURL().toString());
        chain.doFilter(req, rsp);
    }
}

然后,您可以使用 ServletRequest 对象在代码中的任何位置获取它:

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

Any method will return source URL when you do forward(..) so my solution is to define a filter to store the requestURL() in a request attribute to check later. To do this in your web.xml write:

...
<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>
...

Then in CustomFilter class:

public class CustomFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {}

    @Override
    public void destroy() {}

    @Override
    public void doFilter(ServletRequest req, ServletResponse rsp,
            FilterChain chain) throws IOException, ServletException {
        req.setAttribute("OriginURL", req.getRequestURL().toString());
        chain.doFilter(req, rsp);
    }
}

Then you can get it everywhere in your code with ServletRequest object with:

request.getAttribute("OriginURL").toString();
刘备忘录 2024-12-29 03:03:05

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

you can store that url in HttpSession and retrieve it in next servlet when you need.

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