Сервлет RequestDispatcher # include и pathInfo - PullRequest
2 голосов
/ 02 ноября 2010

Я хочу включить вывод другого сервлета в текущий ответ.

Я могу позвонить

request.getRequestDispatcher("/new/url").include(request, response);

и он переходит к нужному сервлету, но request.getPathInfo(), request.getServletPath() и его друзья не получают новый URL (они все еще имеют старые значения), поэтому сервлет не работает.

Это должно быть так? И что я могу сделать, чтобы сделать эту работу?

1 Ответ

4 голосов
/ 02 ноября 2010

Да, это должно быть так (из javadoc, обратите внимание, что Адел Ансари процитировал javadoc для метода forward() вместо include()):

У объекта ServletResponse есть свои элементы пути, и параметры остаются неизменными от вызывающей стороны.

Однако включенный сервлет может обращаться к своей информации о пути в качестве атрибутов запроса со следующими именами:

javax.servlet.include.request_uri
javax.servlet.include.context_path
javax.servlet.include.servlet_path
javax.servlet.include.path_info
javax.servlet.include.query_string

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