Comment mapper une servlet sur / (et non pas sur /*) ?

Comment mapper une servlet sur / (et non pas sur /*) ? - Java - Programmation

Marsh Posté le 03-01-2003 à 17:37:39    

:hello: Bonjour tout le monde
 
Pour planter le décor, je suis en train de me faire la main sur les servlets et consors (JSP et beans). Le point est que j'ai une application fonctionnelle :o basée sur le schéma classique :
On attaque (en HTTP-GET) une servlet qui se charge d'aiguiller la requête, pour finir sur une JSP qui utilise un bean dans le but d'afficher un calendrier (qui actuellement n'a de "calendrier" que le nom :D).
 
Le noeud de la question est le suivant : souhaitant un contrôle plus fin, j'aimerais mapper la servlet de contrôle sur / (pour un accès de type http://bidon/taist/) sans que cela vienne interférer sur l'accès aux autres fichiers (par exemple des images dans /pub/gfx/ donc sur http://bidon/taist/pub/gfx/).
 
J'ai essayé de bidouiller (c'est bien le mot) avec le welcome-file-list du web.xml de manière suivante :
 

<servlet-mapping>
  <servlet-name>MainServlet</servlet-name>  
  <url-pattern>/index</url-pattern>  
</servlet-mapping>
(...)
<welcome-file-list>
  <welcome-file>index</welcome-file>  
</welcome-file-list>


Mais sans résultats concluants :( (cela affiche le contenu du dossier)
 
J'imagine que la solution est toute conne, à l'instar des petits soucis que j'ai rencontré jusqu'à présent, mais je n'ai rien trouvé à la fois sur le web, ni dans ce forum. :( Tant que ce post ne termine pas dans le topic "hall of shame" :o ...
 
(edit)
L'autre solution que j'utilisais jusqu'alors, est une redirection en HTTP menée par index.jsp vers l'URI sur laquelle la servlet est mappée, mais bon cela reste du bidouillage.


Message édité par Polio le 03-01-2003 à 17:41:32
Reply

Marsh Posté le 03-01-2003 à 17:37:39   

Reply

Marsh Posté le 03-01-2003 à 19:13:51    

pourtant d'après moi ta config est bonne et ca devrait bien faire ce que tu veux ... :heink:

Reply

Marsh Posté le 03-01-2003 à 19:25:01    

Au cas où d'autres personnes se poseraient la même question, j'ai une solution (assez barbare, mais bon là on ne fait pas du PHP). En observant attentivement le web.xml de tomcat, j'ai pu remarquer que le contenu statique était traité par une servlet, la même celle qui affiche le contenu des dossiers (la servlet par défaut mappée justement en /).
 
La solution consiste donc à s'inspirer de la servlet DefaultServlet (le fichier java se trouve dans les sources de tomcat), plus précisement de sa façon de manipulet des objets statiques.
 
La prochaine fois j'attendrais d'être vraiment bloqué avant de demander de l'aide :D  

Reply

Marsh Posté le 03-01-2003 à 19:27:25    

benou a écrit :

pourtant d'après moi ta config est bonne et ca devrait bien faire ce que tu veux ... :heink:  


 
En réalité les objets statiques sous tomcat sont manipulés par la servlet default mappée en / dans le web.xml de base.
 
Le web.xml de mon contexte remplace la servlet par défaut de tomcat par la mienne qui ne sait pas (encore) manipuler les objets statiques.

Reply

Marsh Posté le 04-01-2003 à 00:59:44    

que veux tu dire par objet statiques ? je comprend plus là ...  :heink:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed