2010-12-08 4 views
0

Je suis confronté à une tâche pour ajouter une application jar dépendante à une existante. L'existant n'utilise pas beaucoup d'avantages locales, et ainsi de suite, mais mon nouveau ... Devrais-Filtres dans tomcat

So like I have now : localhost:8080/old-app 
I want to have also : localhost:8080/[en|fr|...]/new-module 

Quelqu'un pourrait me montrer la direction, beacuse même si je pense que je reçois l'idée de filtres, filtre-mapping, je n'arrive pas à le résoudre.

EDIT: Je voudrais garder l'ancien et avoir accès au nouveau.

Merci,

Cordialement, P.

+0

voulez-vous rediriger automatiquement de/old-app à/new-app? Ou vous voulez rendre l'ancienne application disponible sur un nouveau modèle d'URL? – JoseK

+0

J'ai peur que cette question n'ait aucun sens pour moi, pouvez-vous élaborer? –

Répondre

1

Si vous ne voulez pas le nom des applications comme racine de contexte par exemple localhost: 8080/appname mais sous/directement vous devez le mettre dans le dossier tomcat/webapps/ROOT. Pour obtenir le fonctionnement des applications d'URL plus sophistiqués ont un oeil à http://ocpsoft.com/prettyfaces/

+0

PrettyFaces est uniquement pour les webapps JSF. Où avez-vous lu que OP utilise JSF? – BalusC

3

Déployer new-module comme ROOT.war (ou un ensemble path dans /META-INF/context.xml à /). Utilisez Tuckey's URLRewriteFilter pour réécrire des URL spécifiques et transformer la partie de langue en un paramètre de requête afin qu'il soit disponible par request.getParameter(). C'est très semblable à mod_rewrite d'Apache HTTPD.

Une alternative à URLRewriteFilter consiste à concevoir un filtre personnalisé qui ressemble à ce qui suit dans la méthode doFilter().

String uri = request.getRequestURI(); 
if (uri.matches("^/\\w{2}(/.*)?$")) { 
    request.setAttribute("language", uri.substring(1, 3)); 
    request.getRequestDispatcher(uri.substring(3)).forward(request, response); 
} else { 
    chain.doFilter(request, response); 
} 

Plan sur une url-pattern de /*. La langue sera disponible par request.getAttribute("language") sur la ressource transférée.