Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Добавление параметров в request (в Filter'e ). send Redirect обратно браузру для перепосылки.


Автор: LjaO 8.9.2009, 14:58
Доброго дня. Предо мною стоит следующая задача .. пускай кому-то она покажеться глупой - но это временное решиние необходимо как можно скорее.

С браузера приходит Request. Ловим его в фильтре. При выполнеии некого условия необходимо:
1. Добавить "get" параметр в запрос (необходмо наличие параметра в url )
2. Послать ответ обратно на браузер для перепосылки. - важно что бы параметр по прежнему присуствовал в url


Проблемы возникли уже на этапе добовления параметров в request. request.getParameterMap().put("server", "2") или request.setAttribute("server", "2") не срабатывают.
Для послылки ответа обратно на браузер использую resopnse.sendRedirect("туда-то") - так же не отрабатывает как хотелось бы.

Может я использую не те методы.
У кого есть какие мысли ?

Автор: COVD 8.9.2009, 16:20
Код

response.sendRedirect("http://www.yourserver.com/?server=2");
return;

что тут может не сработать?

Автор: LjaO 8.9.2009, 16:20
Код

response.sendRedirect("куда то" );

 Работает ! Не знаю в чём была проблема  - но сейчас всё работает просто fine!
Остлся вопрос про параметры.

Автор: COVD 8.9.2009, 17:31
Вы можете добавить параметры только в url редиректа, после знака вопроса ...?par=value&par2=value2&...

Автор: LjaO 9.9.2009, 16:01
кому интерестно - при попытке добавить параметр  : getParamertMap().put("SOME_KEY", "VALUE");
tomcat сыпет ошибку 
Код

EVERE: Servlet.service() for servlet default threw exception
java.lang.IllegalStateException: No modifications are allowed to a locked ParameterMap
    at org.apache.catalina.util.ParameterMap.put(ParameterMap.java:166)
 

Автор: LjaO 10.9.2009, 10:40
Вот результат что я получил :
1. Как сделать redirect обратно браузеру для перепосылки запроса?
 * метод который можно использовать - HttpServletResponse.sendRedirect(uri). Как видим это метод HttpServletResponse, как следствие все параметры, которые были в Request, будут потеряны. 
2. Как добавить "Get" параметры при редиректе
 * Наверно самый просто способ это через url. Например sendRedirect(url + "?param1=1&param2=2");

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)