Я думаю, что ваша проблема скорее связана с доступностью переданного запроса параметров (не атрибутов, как упоминают другие). В этом случае не имеет значения, используете ли вы переадресацию или перенаправление. Но если вы используете переадресацию на другой Servlet
, то будет вызван соответствующий метод, связанный с начальным запросом, полученным с помощью HttpServletRequest#getMethod()
. Если это POST, то будет вызвано doPost()
. Вы все еще можете получить доступ к дополнительным параметрам в строке запроса обычным способом: HttpServletRequest.getParameter()
.
Так что в сервлете 1, в основном, следующее:
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
request.getRequestDispatcher("servlet2?foo=bar").forward(request, response);
}
в основном может быть обработан сервлетом 2 следующим образом:
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
String foo = request.getParameter("foo"); // Returns "bar".
}