A linguagem de programação Java é amplamente utilizado para a programação no ambientes de servidores desktop, móvel e . Quando um usuário envia os dados de uma forma ou de cliques no link para um endereço da Web , os programadores Java podem usar a classe Servlet para determinar como o aplicativo do lado do servidor responde a esse pedido. Um Servlet pode fornecer respostas através de redirecionamento e encaminhamento . É importante que os programadores Java para entender a semelhança e diferenças entre os dois métodos , e para saber qual usar dependendo de suas necessidades . Similaridade
Tanto o encaminhamento e redirecionamento oferece uma forma que permite a um Java Servlet para transferir o processamento de dados do usuário para outro controlador de dentro de uma aplicação web. No padrão Model-View -Controller , que é comumente usado para aplicações Web Java , um controlador pode interagir com outros controladores e gerencia as interações entre os pontos de vista e os modelos . Normalmente, um controlador é outro Java Servlet, mas também pode ser uma página JSP.
Diferenças
A ação de encaminhamento é realizado no lado do servidor e é transparente para o navegador da Web no lado do cliente . Isto significa que a URL na barra de endereços do browser não vai mudar quando ocorre encaminhamento. Em contraste , a ação redirecionar é feito no lado do cliente. Redirect acontece em duas etapas, uma vez que o servidor tem para instruir o browser no lado do cliente para buscar um outro endereço que está redirecionando para . Como resultado, a URL na barra de endereços vai mudar após o redirecionamento . Além disso , o encaminhamento não pode ser feito para uma outra URL localizado fora do aplicativo da Web , enquanto o redirecionamento pode ser feito para sites localizados em qualquer lugar.
Usos
Forwarding utiliza o classe RequestDispatcher que é obtido a partir do método do servlet " getServletContext ( ) " . Para encaminhar , o método " forward () " do " . Classe RequestDispatcher é chamado Por exemplo, o código a seguir irá encaminhar a resposta a uma outra página chamada result.jsp :
Cordas destino =" /WEB -INF /pages /result.jsp ";
RequestDispatcher rd = getServletContext () getRequestDispatcher ( destino ); .
rd.forward (request, response) ;
Redirecionando usa o " sendRedirect ) ( " método do objeto de resposta, que é obtido a partir da classe Servlet atual Por exemplo, o código a seguir irá redirecionar a resposta a uma outra página chamada destination.jsp : .
Cordas destino = "/jsp /destination.jsp ";
response.sendRedirect ( response.encodeRedirectURL ( destino) );
Considerações
A operação de redirecionamento é um pouco mais lento do que encaminhamento porque o browser precisa realizar duas operações para buscar o endereço de antes e depois do redirecionamento . Além disso, todos os objetos transmitidos no âmbito do pedido original ainda estão disponíveis durante o encaminhamento , mas serão perdidos durante o redirecionamento . Como tal , redirecionando deve ser utilizado quando o navegador é permitido para recarregar o endereço resultante após o redirecionamento . Em outros casos , o encaminhamento deve ser usado.