Como funciona o getRequestDispatcher com include

Senhores,

Tenho um sevlet que logo no inicio faz um getRequestDispatcher com include para outro servlet. Fiz isso porque preciso que após a execução do segundo servlet (o que foi chamado), o primeiro servlet volte a ser executado do ponto onde tinha parado, ou seja, do ponto que ele chamou o outro servlet.

Exemplo:

request.getRequestDispatcher("/TestSite").include(request, response);

Acontece que no segundo servlet pode existir uma condição que o obrigue a interromper o processamento e dar um sendRedirect para um JSP que informa o erro.

O problema é que o sendRedirect não está funcionando, ou seja, mesmo que o segundo servlet (que foi chamado pelo getRequestDispatcher com include) entre na condição de fazer o sendRedirect, o primeiro servlet, que é o chamador, acaba sendo executado.

Isto é normal? Quando se chama um servlet por getRequestDispatcher com include, o servlet chamador sempre será executado após o termino do outro servlet?

Abraços,

Isso mesmo. O include do requestDispacher executa o outro servlet( ou outro recurso) e sempre retorna para quem o chamou. Se este não é o processo que vc deseja utilize o forward se der, ou então o include estático com a diretiva <%@ include file="" %>

flw