Bonjour,
Soit une webapp accessible à l'adresse http://serveur:8080/appli/
Afin de pouvoir personnaliser l'interface tout en conservant une URL simple et attractive, je souhaiterais distinguer mes clients en incluant leur nom directement dans l'URL. Exemples :
http://serveur:8080/appli/client1/
http://serveur:8080/appli/client2/
etc...
Bien entendu l'application derrière est identique, et donc /client1/login.do et /client2/login.do appellent la même action.
Seulement voilà, je ne suis pas parvenu à le faire fonctionner, et j'espère que vous pourrez m'y aider.
J'utilise Tomcat 5.5 et j'aimerais pouvoir me passer de httpd (mod-rewrite constitue sans doute une solution mais je préfèrerais gérer ça directement sous Tomcat). Dupliquer la webapp pour chaque client n'est pas envisageable (pour des questions de ressources, mais aussi parce que la liste des clients est dynamique et stockée en base).
J'ai essayé de modifier le mapping de l'ActionServlet de Struts, mais cela ne fonctionne pas. Avec <url-pattern>*.do</url-pattern> (par défaut) il m'envoie une erreur 404 quand je tape par exemple http://serveur:8080/appli/client1/login.do
J'ai aussi essayé, sans succès, <url-pattern>/*/*.do</url-pattern> (là il me dit carrément que le mapping est incorrect).
J'ai ensuite cherché à inverser les deux, pour construire une URL du type http://serveur:8080/appli/login.do/client1/ , ce qui constitue une URL moins "jolie" mais encore acceptable par rapport à ce que je veux faire. Je m'attendais à ce que la partie de l'URL après le .do soit transmis comme paramètre de la requête. Un peu comme ce que permet de faire l'option MultiViews sous httpd, mais sous Tomcat. Mais là aussi, échec (404).
De plus, il me reste le problème du mapping des autres types d'objets (jsp, images, etc...) sous ces mêmes répertoires "virtuels" (faut-il pour cela modifier le mapping des servlets default et jsp ? Si oui, peut-on le faire dans le web.xml de l'application afin que tout soit déployé dans le WAR final, ou faut-il impérativement modifier la configuration de Tomcat elle-même ?).
Toute piste serait la bienvenue (de même qu'un "c'est purement et simplement impossible" bien argumenté, si c'est effectivement le cas).
Merci de votre aide.
Partager