SóProvas


ID
1822582
Banca
FGV
Órgão
TJ-PI
Ano
2015
Provas
Disciplina
Programação
Assuntos

Com relação ao desenvolvimento JAVA para Web, os métodos sendRedirect da classe HttpServletResponse e forward da classe RequestDispatcher, sabe-se que:

Alternativas
Comentários
  • Em Java, existe um recurso para uma página (JSP) ou componente (servlet) no lado servidor encaminhar ou delegar o processamento de uma requisição para outro componente. Este recurso é denominado forward.

    O encaminhamento via forward para um novo componente [B] ocorre no lado servidor e é, portanto, alheio ao cliente web (navegador) que fez a requisição. Assim, para o cliente, é como se a resposta estivesse vindo do componente que recebeu originalmente a requisição [A]. Vide figura a seguir.

    Este comportamento é diferente do redirecionamento (redirect), em que o componente inicial servidor [A] apenas informa ao cliente que deve solicitar nova requisição a outro componente [B]. No caso do redirect, ocorrem efetivamente duas requisições e o cliente participa desse encaminhamento. Vide figura da seção anterior.

    Fonte: http://www.mhavila.com.br/topicos/web/http_mime.html#redirect

  • De forma simples de entender:

    O método SendRedirect devolve a solicitação para o solicitante(cliente/brownser) com uma nova URL. É como se pedíssemos que o cliente ligasse para outra pessoa. O brownser tem que fazer uma no chamada para antender o usuário. Portanto a URL muda.

    O método foward é como se pedíssemos que um colega de trabalho resolvesse o problema, é resolvido dentro de "casa" (no servidor). Por exemplo, encaminhando para o JSP resolver. A URL se manté inalterada.

  • Método forward():

    • O método forward () funciona no lado do servidor.
    • Ele envia os mesmos objetos de solicitação e resposta para outro servlet.
    • Ele pode funcionar APENAS no servidor.

    Exemplo: request.getRequestDispacher ("servlet2"). Forward (request, response);

    Método sendRedirect():

    • Normalmente o método sendRedirect () funciona no lado do cliente.
    • PODE ser usado dentro e fora do servidor.
    • Sempre envia uma nova solicitação.

    Exemplo: response.sendRedirect ("servlet2");