[Java] Comment obtenir l'URL de la source de transition

introduction

Notez comment obtenir l'URL de la source de transition. Cette fois, lors de la création de la fonction de connexion, si la connexion était réussie, je l'ai utilisée pour passer à la page qui était ouverte avant la connexion (la page où le bouton de connexion a été enfoncé).

Le flux est le suivant.

La page qui était ouverte avant la connexion (jsp) ↓ Login.java (** Obtenez l'URL de la page qui était ouverte avant la connexion **, passez au formulaire de connexion) ↓ login.jsp (formulaire de connexion) ↓ LoginCheck.java (Déterminez si vous pouvez vous connecter, ** Extrayez l'URL de la page qui était ouverte avant la connexion **) ↓ Page qui était ouverte avant la connexion (retournez sur cette page si la connexion est réussie)

Comment avoir

En conclusion, utilisez la ** méthode getHeader ** pour obtenir le ** Referer ** de l'en-tête de la requête.

    //Obtenez l'URL de la source de transition des informations d'en-tête de la demande
    request.getHeader("REFERER");

Cette fois, nous utiliserons une session pour conserver l'URL acquise, et si la connexion réussit, nous la récupérerons et effectuerons la transition.

Login.java


   //Acquiert l'URL de la source de transition des informations d'en-tête de la demande et la stocke dans la session
   session.setAttribute("referer", request.getHeader("REFERER"));
   request.getRequestDispatcher("/login.jsp").forward(request, response);

LoginCheck.java


   //Une fois la connexion réussie, extrayez l'URL source de la transition de la session et de la transition
   String url = (String)session.getAttribute("referer");
   request.getRequestDispatcher(response.encodeURL(url).substring(29)).forward(request, response);

Là où c'était difficile

Lorsque j'ai essayé de passer de LoginCheck.java à la page avant la connexion, j'ai eu une erreur HTTP 404 et j'ai eu du mal. La raison en est que l'URL obtenue par le référent est l'URL entière, donc j'essayais de transmettre en spécifiant des parties inutiles. La solution de contournement est simple, utilisez simplement ** sous-chaîne pour découper les parties requises et c'est OK **.

Par exemple

http://localhost:8080/sample/top.jsp

Puisque vous n'avez pas besoin de la partie " http: // localhost: 8080 / sample ", vous pouvez couper uniquement /top.jsp en donnant ** substring (29) ** à l'URL.

Recommended Posts

[Java] Comment obtenir l'URL de la source de transition
[Rails] Comment obtenir l'URL de la source de transition et la rediriger
[Java] Comment obtenir l'URL redirigée finale
[Java] Comment obtenir la valeur maximale de HashMap
Source utilisée pour obtenir l'URL de la source de redirection en Java
[Java] Comment obtenir le répertoire actuel
Comment obtenir la date avec Java
Comment obtenir la longueur d'un fichier audio avec Java
Comment obtenir le jour d'aujourd'hui
[Java] Mémo sur la façon d'écrire la source
[Java] Comment accéder au début d'une chaîne spécifique à l'aide de la classe String
Comment obtenir le chemin absolu d'un répertoire s'exécutant en Java
Obtenez l'URL de la destination de la redirection HTTP en Java
Comment écrire Scala du point de vue de Java
À partir d'avril 2018 Comment installer Java 8 sur Mac
[Android] Comment obtenir la langue de réglage du terminal
[Rails] Comment obtenir le contenu des paramètres forts
[Swift] Comment obtenir l'ID de document Firebase
[Java] Comment obtenir facilement la plus longue chaîne de caractères d'ArrayList à l'aide de stream
Comment utiliser HttpClient de Java (Get)
Comment obtenir le nom d'une classe / méthode exécutée en Java
Une version Java non prise en charge Comment se débarrasser des erreurs
Accédez à l'abréviation à partir de 5 exemples de listes Java en italique
Comment obtenir les informations les plus longues de Twitter à partir du 12/12/2016
Comment dériver le dernier jour du mois en Java
[jsoup] Comment obtenir la totalité de la documentation
Comment obtenir le nom de classe de l'argument de LoggerFactory.getLogger lors de l'utilisation de SLF4J en Java
Obtenez le résultat de POST en Java
[Java] Comment utiliser la classe File
[Swift5] Comment obtenir un tableau et un ensemble de différences entre les tableaux
[Java] Obtenez le jour d'un jour spécifique
[java] Résumé de la gestion des caractères
[Java] Comment utiliser la méthode toString ()
Etudier comment utiliser le constructeur (java)
[Traitement × Java] Comment utiliser la boucle
Comment déterminer le nombre de parallèles
[Java] Comment régler la date sur 00:00:00
Comment obtenir le contenu de la carte à l'aide du mémorandum d'instructions
Comment obtenir l'identifiant de la clé PRIMAY incrémentée automatiquement dans MyBatis
Obtenez l'URL publique du fichier privé de Flickr en Java
[Java] [Maven3] Résumé de l'utilisation de Maven3
[Traitement × Java] Comment utiliser la classe
Comment trier une liste de SelectItems
Sortie du livre "Introduction à Java"
[Traitement × Java] Comment utiliser la fonction
[Java] Comment utiliser la classe Calendar
[Java] Comment convertir du type String en type Path et obtenir le chemin
Comment vérifier le contenu de la chaîne de caractères java de longueur fixe
Comment incrémenter la valeur de Map sur une ligne en Java
Comment changer l'affichage du menu d'en-tête pour chaque page de transition
[Java] [ibatis] Comment obtenir des enregistrements de relation 1 à N avec List <Map <>>
Comment savoir quelle version Java d'un fichier de classe a été compilée
Comment trouver le nombre total de pages lors de la pagination en Java
Comment contraindre l'action de la destination de transition lorsqu'elle n'est pas connectée