Différence entre l'avant et la redirection

Différence entre l'avant et la redirection

Il existe plusieurs écrans et servlets qui forment ensemble une application Web basée sur Java. Un JSP passe le contrôle d'un servlet à un autre servlet ou JSP en utilisant deux méthodes - avant et rediriger. La méthode Forward transmet une demande d'un servlet à une autre ressource d'une application Web et cette ressource peut être un autre servlet, page JSP ou fichier HTML.

La méthode de redirection, en revanche, redirige la demande vers une autre application. Vous ne pouvez pas le faire avec une méthode avant. Si une redirection frappe une ressource différente dans la même application, il utilise une URL différente de l'URL de demande d'origine. Si vous ne souhaitez pas répondre à une demande, vous pouvez rediriger la demande vers une URL différente et le navigateur, puis envoie la nouvelle demande à l'URL fournie par vous. Ce message met en évidence quelques différences expliquant les deux méthodes en détail.

Qu'est-ce qui est en avant?

Dans les systèmes ou applications sur le Web, il est souvent nécessaire de transférer le contrôle entre différentes ressources ou JSP. Par exemple, si vous souhaitez passer une commande à partir d'un site de commerce électronique, vous devez vous inscrire avant de continuer. Si vous n'êtes pas encore inscrit auprès de leur système, le panier peut avoir besoin de transférer le contrôle au formulaire JSP qui est responsable du processus d'enregistrement. L'action avant est utilisée spécifiquement à cet effet. Il est utilisé pour transmettre la demande d'un JSP à une autre ou une autre ressource dans le même contexte.

Qu'est-ce que la redirection?

Cette méthode est également utilisée pour transmettre les demandes HTTP, mais contrairement à un avant, c'est un processus en deux étapes où la redirection se produit au côté du client vers une application complètement différente. La méthode de redirection redirige l'utilisateur vers une nouvelle URL. Le navigateur du client fait automatiquement la nouvelle demande sur l'URL spécifiée dans l'en-tête de redirection qui provient du serveur. Cela nécessite une communication aller-retour avec le client, donc il est relativement plus lent qu'un avant.

Différence entre l'avant et la redirection

Description de l'avant vs. Réorienter

La méthode Forward () est utilisée pour transmettre la demande d'un JSP à une autre ou d'un JSP à un servlet, ou d'un JSP à une autre ressource d'une application Web. Le contrôle est passé en interne par le conteneur et le navigateur / client n'est pas impliqué dans le processus. La méthode Forward est déclarée dans le requestdispatcher. La méthode SenDredirect () est déclarée dans HttpservletResponse et est utilisée pour rediriger la demande du client vers une URL différente qui est disponible sur un serveur ou un contexte différent. Avec une redirection, vous pouvez rediriger le navigateur vers une application complètement différente.

Implication du client dans l'avant vs. Réorienter

L'une des principales différences entre les deux méthodes est que le conteneur Web gère tous les processus en interne en cas d'avant () et que l'URL ne change pas dans le navigateur du client, de sorte que le client / le navigateur ne les laisse pas complètement ignorants que le L'action a déjà eu lieu. Dans le cas de SendreDirect (), la méthode définit les en-têtes et le contenu corporel appropriés pour rediriger la demande vers une URL différente et le navigateur s'occupe de l'envoi de la nouvelle demande à l'URL qui est visible au client à mesure que l'URL change dans le navigateur.

Contrôle de l'exécution

Lorsque la méthode Forward () est exécutée au moment de la demande, la demande actuelle est transmise à une autre page JSP et le traitement du JSP actuel est terminé. La demande peut être transmise à un servlet écrit dans le langage de programmation Java, ou à une page HTML statique. Une demande SenDredirect () indique simplement au navigateur d'aller à une URL différente, envoyant le contrôle d'exécution en dehors de l'application Web. Il utilise un processus en deux étapes pour instruire l'URL du navigateur pour faire une autre demande qui transfère le contrôle au client.

Vitesse

Un usine () fonctionne dans le serveur et exécute plus rapidement qu'un SendRirect (). Une redirection doit passer par le navigateur puis attendre que le navigateur fasse une nouvelle demande HTTP. Une redirection fait que le serveur envoie le code d'état de réponse HTTP 302 avec un en-tête d'emplacement contenant une nouvelle URL vers le navigateur, et après que le navigateur a reçu le code d'état 302, il fait une nouvelle demande à l'URL trouvée dans l'en-tête de localisation. Cela nécessite une communication aller-retour avec le client, ce qui le rend relativement plus lent qu'un avant ().

Avant vs. Redirection: graphique de comparaison

Résumé de l'avant vs. Réorienter

Apprendre la différence entre les méthodes avant et redirect est l'une des parties les plus importantes pour les développeurs Java. Bien qu'un contrôleur puisse effectuer une méthode avant ou une méthode de redirection à la fin du traitement d'une demande, il a son propre ensemble d'utilisations. La plupart du temps, vous utiliseriez une méthode avant () car elle est légèrement plus rapide qu'un SendreDirect (), ce qui nécessite en fait une communication aller-retour avec le client le rendant plus lent qu'un avant. Eh bien, avec une redirection, vous pouvez diriger le navigateur vers une autre application. Cela ne peut pas être fait avec un attaquant. En un mot, un avant fonctionne mieux lorsqu'un composant doit effectuer une logique métier et partager les résultats avec un autre composant, tandis qu'une redirection fonctionne mieux lorsque le client doit être redirigé d'une page vers une autre.