Problemas com o sendRedirect

Bom Dia,

Pessoal, estou com problemas na chamada de um servlet através do sendRedirect.
Dentro de um servlet, estou redirecionando para um outro servlet. Há algum problema em utilizar o sendRedirect na chamada de um servlet?

A Aplicação não aceita nenhuma entrada via get, (no servlet) somente post. E após adicionar o sendRedirect, ele efetua a chamada do servlet pelo metodo get, sendo assim, ocorre um erro tratado pela aplicação.
Este problema passou a ocorrer após a alteração abaixo, por medidas de segurança:

Alterado de:
getServletConfig().getServletContext().getRequestDispatcher("/NomeServlet").forward(req, res);

Para:
res.sendRedirect(“NomeServlet”) ;

Obrigada.

Não entendi.
A sua aplicação só aceita chamadas via POST, porém o método sendRedirect realiza uma nova requisição GET.
Qual o problema que você está tendo exatamente?

Isso mesmo.

Então isso não é um ‘problema’ com o sendRedirect, é a característica dele e do protocolo HTTP.
Ele fará uma nova requisição GET, você deverá recebê-la e tratá-la como GET.

Porque foi feita essa alteração ? Com certeza ae que está o problema.
Na primeira é o Correto.

public void passarControle(HttpServletRequest request, HttpServletResponse response, String url) throws ServletException, IOException { final RequestDispatcher rd = this.getServletContext().getRequestDispatcher(url); rd.forward(request, response); }

Anteriormente funcionava porque o RequestDispatcher repassa a requisição de acordo com o request.
Se ele veio via GET, repassa como GET, se vier como POST repassa como POST.
No sendRedirect você devolve o response para o cliente, independente de como veio o request, e faz uma nova requisição GET para o servidor.

Se por alguma razão bizarra e desconhecida você não pode usar mais RequestDispatcher e nem capturar via doGet, então faz uma requisição POST dentro do servlet mesmo, via HttpClient.

Na primeira não ocorre o problema, mas não posso utilizá-lo por medidas de segurança.