OVH Cloud OVH Cloud

Rewriting en Java

1 réponse
Avatar
jfbermond
Bonjour.

J'essaye de mettre en place le rewriting d'url pour une application web
install=E9e sur Tomcat et utilisant Apache.
J'y arrive =E0 peu pr=E8s lorsque je pointe sur des pages JSP, par contre
=E7a ne marche pas du tout quand mon url est compos=E9e du nom de ma
servlet.

Ex : http://localhost/alias/maServlet?param1=3D1&param2=3D2....

J'ai la condition suivante qui fonctionne tres bien :

RewriteRule ^/truc/Accueil$ /Index.jsp [L]

donc si on tape http://localhost/truc/accueil on a bien la page
Index.jsp qui s'affiche.

Par contre la plupart de mes urls sont de la forme
/alias/maServlet?param=3D...

Donc je souhaiterai que mon url http://localhost/truc/accueil soit
traduite en http://localhost/alias/maServlet?param1=3D1&...


Merci d'avance, car l=E0 je s=E8che compl=E9tement.

1 réponse

Avatar
Trognon Patrice
wrote:

Bonjour.

J'essaye de mettre en place le rewriting d'url pour une application web
installée sur Tomcat et utilisant Apache.
J'y arrive à peu près lorsque je pointe sur des pages JSP, par contre
ça ne marche pas du tout quand mon url est composée du nom de ma
servlet.

Ex : http://localhost/alias/maServlet?param1=1&param2=2....

J'ai la condition suivante qui fonctionne tres bien :

RewriteRule ^/truc/Accueil$ /Index.jsp [L]

donc si on tape http://localhost/truc/accueil on a bien la page
Index.jsp qui s'affiche.

Par contre la plupart de mes urls sont de la forme
/alias/maServlet?param=...

Donc je souhaiterai que mon url http://localhost/truc/accueil soit
traduite en http://localhost/alias/maServlet?param1=1&...


Merci d'avance, car là je sèche complétement.



hi,

dans ta servlet voici quelques infos qui peuvent t'aider je pense

String scheme = request.getScheme() ;
String serverName = request.getServerName() ;
int port = request.getServerPort() ;
String contextPath = request.getContextPath() ;

En concatenant le tout tu vas récupérer ton http://localhost/truc
truc étant le nom de ta webapp.

Te reste a ajouter l'url ou tu veux forwarder.

Ensuite tu vas construire un objet URL de la facon suivante

java.net.URL abs = new java.net.URL( scheme, serverName, port, contextPath ) ;

Le abs.toString() va te retrouver ton url bien propre.

un petit coup de request.encodeURL si nécessaire.

Voila, je pense que ca peut rouler, maintenant faut tester et adapter
a ton besoin.



--
Cordialement,

Patrice Trognon
http://wwW.javadevel.com