J'ai une application Web Java qui gère les données de nombreux clubs. Je voudrais que l'application affiche des informations de club en fonction de l'URL qui est tapée.Puis-je intercepter et modifier l'URL de requête d'un HTTPServletRequest dans un filtre Java Servlet?
Par exemple. Si vous entrez "localhost: 8080/MyApp/Club1" ... alors l'application devrait enlever la fin de l'URL de requst (Club1), faire une recherche dans la base de données pour le club, et l'ajouter à la session. Ensuite, toutes les demandes de base de données peuvent rechercher des données en fonction du club présent dans la session.
Si vous entrez « localhost: 8080/MyApp/Club2 », vous obtenez club enregistré dans la session, et toutes les demandes de base de données pour le club 2.
La façon dont je pensais que je peux faire est d'utiliser un filtre de servlet qui appelle HTTPServletRequest(). getRequestURL(), et supprime le nom du club de l'url de la requête, pour rechercher le club dans la base de données.
Mais alors je ne veux pas changer l'URL de la requête pour qu'elle soit http://localhost:8080/MyApp afin que l'application fonctionne normalement. Cependant, je ne pense pas que je suis capable de faire cela?
Quelqu'un at-il des idées sur la façon de le faire, ou s'il y a une meilleure approche?
Merci pour cela. Des idées sur la meilleure façon de le faire? –
Bien sûr, mais ces filtres font des choses comme la journalisation, l'ajout ou la modification de paramètres, et non la redirection vers des URL différentes. Je n'ai pas pu trouver un exemple de filtre qui a fait une telle chose. – duffymo
Merci. Il semble que je sois hors de la marque en utilisant des filtres, donc je devrais abandonner cette approche. Je ne suis toujours pas sûr de la meilleure façon de le faire. Je pense que le problème se résume à cela vraiment. Je sais que je peux easly charger les données du club si les types d'utilisateurs dans: localhost/myApp Club = myClub C'est juste un cas d'obtenir le paramètre de demande dès que la demande arrive, puis obtenir le club de la base de données. Je ne semble pas avoir trouvé un moyen de faire exactement la même chose, mais obtenir le nom du club à partir du chemin, plutôt que comme un paramètre de demande. –