Bonjour à tous,
Je suis en train de développer un réducteur d'URL.
Je voudrais mapper un servlet sur la racine de mon application pour rediriger l'utilisateur vers différentes pages.
Exemples :
- Si l'utilisateur arrive sur "localhost:8080/monAppli/", le servlet affiche simplement la page d’accueil du site.
- Si l'utilisateur arrive sur "localhost:8080/monAppli/f2gh3", le servlet fait appel à un service pour récupérer l'url longue associé puis redirige l'utilisateur vers cette URL.
Naivement, j'ai donc crée ce servlet et je l'ai mappé sur la racine de mon application.
Extrait de mon web.xml
Jusque là, cela marche mais un énorme problème apparaît :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <servlet> <servlet-name>IndexController</servlet-name> <servlet-class>fr.miniurl.controller.IndexController</servlet-class> </servlet> <servlet-mapping> <servlet-name>IndexController</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
Quand je veux accéder à la page d'accueil du site (Une JSP), lorsque la navigateur exécute les requêtes pour récupérer les fichiers statiques (JS, CSS, images), c'est mon servlet qui est mappé sur la racine qui répond aux requêtes ! Je récupère le contenu de ma JSP à la place de mes documents CSS ou JS.
Mes fichiers statiques sont dans le dossier "/static/{css,js,image}/...".
Ma question donc : Comment faire pour éviter que ce soit mon servlet qui contrôle ma racine qui réponde quand je veux récupérer un document statique ? Ou est-ce simplement mon architecture ou ma solution qui est mauvaise et qu'une autre méthode serait plus simple ?
Merci d'avance pour vos réponses !
Partager