Há uma diferença importante entre redirecionamento e encaminhamento: ao usar o encaminhamento, o contêiner JSP usará um método interno para chamar a página de destino, e a nova página continuará processando a mesma solicitação, e o navegador não saberá desse processo. Por outro lado, o método de redirecionamento significa que a primeira página notifica o navegador para enviar uma nova solicitação de página. Porque, ao usar o redirecionamento, o URL exibido no navegador se tornará o URL da nova página, e ao usar o encaminhamento, o URL permanecerá inalterado. Os redirecionamentos são mais lentos que os encaminhamentos porque o navegador precisa fazer uma nova solicitação. Ao mesmo tempo, como o método de redirecionamento gera uma nova solicitação, o objeto na solicitação não estará disponível após o redirecionamento.
Como escolher entre redirecionar ou encaminhar? Normalmente o encaminhamento é mais rápido e pode manter o objeto na solicitação, por isso é a primeira escolha. Porém, como após o encaminhamento, o URL no navegador ainda aponta para a página inicial, se a página atual for recarregada, a página inicial será chamada novamente. Se você não quiser que isso aconteça, escolha o encaminhamento.
A diferença entre encaminhamento e redirecionamento
Não use o escopo da sessão apenas para passar variáveis para a próxima página. Isso aumentará o escopo da variável sem motivo.
Redirecionamento: todas as variáveis armazenadas na solicitação anterior são inválidas e inserem um novo escopo de solicitação.
Encaminhamento: As variáveis armazenadas na solicitação anterior não se tornarão inválidas, assim como juntar duas páginas.