Maison  >  Article  >  interface Web  >  La différence entre le transfert et la redirection dans le développement Web

La différence entre le transfert et la redirection dans le développement Web

little bottle
little bottleavant
2019-04-29 11:55:374018parcourir

Lors du développement Web, les sauts sont les plus courants. Aujourd'hui, je vais apprendre deux types de sauts. Les amis intéressés peuvent y jeter un œil.

Le premier est request.getRequestDispatcher().forward(request, réponse) :

1 Il appartient au transfert, aussi Le saut de serveur équivaut à un appel de méthode. Lors de l'exécution du fichier courant, il bascule vers le fichier cible. Les deux fichiers (fichier courant et fichier cible) appartiennent à la même requête. Vous pouvez l'utiliser pour transmettre certaines données ou informations de session, request.setAttribute() et request.getAttribute().

2. Après deux exécutions, la barre d'adresse reste inchangée et est toujours l'adresse du fichier en cours.

3. Vous ne pouvez pas rediriger vers des pages et des sites Web en dehors de cette application Web, la vitesse de redirection doit donc être rapide.

4. Le "/" contenu dans l'URL représente le chemin de l'application (projet).

La seconde est réponse.sendRedirect() :

1 C'est une redirection et un saut client, ce qui équivaut à un client. Après avoir envoyé une requête au serveur, le serveur renvoie une réponse. Après avoir reçu la réponse, le client envoie une autre requête au serveur. Il y a 2 requêtes au total. Les pages avant et arrière ne partagent pas de requête et ne peuvent pas être lues. request.setAttribute() avant la redirection. Définissez la valeur de la propriété.

2. Après deux exécutions, la barre d'adresse passe à l'adresse du fichier cible.

3. Vous pouvez rediriger vers des pages et des sites Web en dehors de cette application Web, la vitesse de redirection est donc relativement lente.

4. Le "/" contenu dans l'URL représente le chemin d'accès au répertoire racine.

Application spéciale : lors de la modification, de la suppression ou de l'ajout de données, Response.sendRedirect() doit être utilisé. Si request.getRequestDispatcher().forward(request, response) est utilisé, la barre d'adresse avant et après l'opération ne changera pas. Il s'agit toujours du contrôleur modifié. Si la page actuelle est actualisée à ce moment, elle sera renvoyée. Une demande est faite pour modifier les données, c'est pourquoi certaines personnes ajoutent une donnée après avoir actualisé la page.

Comment transmettre des données de la deuxième manière :

1. Vous pouvez choisir la session, mais elle doit être dans la seconde. file Supprimer ;

2. Vous pouvez apporter des paramètres dans l'URL demandée, tels que "add.htm?id=122"

Comment choisir la redirection Ou le transmettre ? Généralement, le transfert est plus rapide et permet de conserver l'objet dans la demande, c'est donc le premier choix. Toutefois, étant donné qu'après le transfert, l'URL dans le navigateur pointe toujours vers la page d'accueil, si la page actuelle est rechargée à ce moment-là, la page d'accueil sera à nouveau appelée. Si vous ne souhaitez pas que cela se produise, choisissez le transfert.

Tutoriels associés : Tutoriel vidéo front-end

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer