Как получить URL предыдущей страницы из запроса в сервлете после dispatcher.forward (запрос, ответ) - PullRequest
12 голосов
/ 21 декабря 2011

Я использую сервлет, который перенаправляет меня с помощью

dispatcher.forward(request, response);

в конце.Но после этого я хочу получить страницу (путь), с которой меня перенаправили, чтобы использовать ее в следующей команде сервлета (чтобы перейти на предыдущую страницу).Как я мог получить это?Или предыдущий URL не содержится в параметрах запроса, и я должен добавить его сам?Буду очень признателен за вашу помощь.

Ответы [ 4 ]

19 голосов
/ 18 января 2013

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

SEE: Ссылка на ответ форума

12 голосов
/ 21 декабря 2011

Попробуйте использовать

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

См
http://www.caucho.com/resin-3.0/webapp/faq.xtp

0 голосов
/ 22 сентября 2016

Любой метод будет возвращать исходный 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 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);
    }
}

Затем вы можете получить его везде в своем коде с помощью объекта ServletRequest с помощью:

request.getAttribute("OriginURL").toString();
0 голосов
/ 21 декабря 2011

вы можете сохранить это url в HttpSession и получить его в следующем сервлете, когда вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...