Rechercher dans les publications Rechercher:

Imprimer cet article

Rechercher dans les publications Auteur : Yoann Hébert [Netapsys]
Site Web :
Netapsys

Yoann Hébert est diplômé de l’INT (Institut National des Télécommunications). Il débute sa carrière aux Etats-Unis, chez Bell Atlantic, où il intervient pour des clients tels qu’ABN AMRO ou American Express. De retour en France, il intervient en tant que consultant indépendant et prend notamment en charge la réalisation de l’Espace Entreprise France du groupe BNP Paribas. Début 2004, il fonde la société Netapsys Conseil qu’il dirige depuis. Il est également membre du JCP (Java Community Process).

Articles de l'auteur :
URL Rewriting en Java
Pharming : encore plus dangereux que le phishing !
Noms de domaine, redirections et référencement
Le serveur DNS : la clé de voute d’Internet
URL Rewriting en Java

URL Rewriting en Java

Mise en oeuvre de l’URL Rewriting dans une application Java J2EE

27 novembre 2006, par Yoann Hébert [Netapsys]

La technique de l’URL rewriting (ou réécriture d’URL) permet une manipulation de l’URL « à la volée », lors de son appel par l’utilisateur. Les usages sont multiples : optimisation du référencement, simplification d’URL, gestion de la session, ...

Cela permet de transformer une URL du type

http://www.netapsys.fr/news/showarticle.do ?id=15

en

http://www.netapsys.fr/url_rewriting_java.html

L’adresse est ainsi plus facile à retenir pour un internaute mais également pour les moteurs de recherche. Nombres d’entre eux ne prennent effectivement pas en compte les pages dynamiques composées de paramètres mais ils apportent par contre une importance significative aux mots clés présents dans l’URL. Cette technique permet également de s’affranchir de l’implémentation technique du site et de conserver le référencement en cas de modification de son architecture.

Le monde Apache dispose d’un module puissant pour gérer ces manipulations : mod_rewrite.

URL Rewrite Filter

Il est également aisé de le mettre en oeuvre sur une application Java J2EE. Le principe consiste à utiliser un filtre (javax.servlet.Filter) qui intercepte chaque appel au serveur web, manipule l’URL demandée pour la faire correspondre à l’URL connue par le serveur, et relance finalement le cycle de vie initial de la requête.

Il existe des filtres open source qu’il suffit d’intégrer à votre application J2EE. « URL Rewrite Filter » est par exemple disponible sous License GPL. Il est disponible à l’adresse http://tuckey.org/urlrewrite/.

Sa mise en oeuvre n’impacte en rien l’application dans laquelle il s’intègre et se fait en quelques étapes :

1. Import de la librairie dans l’application : « urlrewrite-2.6.0.jar » dans le dossier « WEB-INF\lib »

2. Paramétrage du filtre dans le fichier « web.xml » :

<filter> <filter-name>UrlRewriteFilter</filter-name> <filter-class> org.tuckey.web.filters.urlrewrite.UrlRewriteFilter </filter-class> </filter> <filter-mapping> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

3. Ajout du fichier de configuration du filtre (« urlrewrite.xml ») dans le dossier « WEB-INF ». L’emplacement et le nom de ce fichier peuvent être modifiés à l’aide de l’instruction suivante dans le paramétrage du filtre (fichier « web.xml ») :

<init-param> <param-name>confPath</param-name> <param-value>/WEB-INF/urlrewrite.xml</param-value> </init-param>

4. Paramétrage des règles de réécriture d’url dans le fichier de paramétrage « urlrewrite.xml » : < ?xml version="1.0" encoding="utf-8" ?>

< !DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN" "http://tuckey.org/res/dtds/urlrewrite2.6.dtd">

<urlrewrite> <rule> <from>^/news/showarticle.do ?id=15</from> <to>/url_rewriting_java.html</to> </rule>

<rule> <from>^/societe.html</from> <to type="forward">/quisommesnous/index.html</to> </rule>

<rule> <from>^/offre.html</from> <to type="forward">/notreoffre/index.html</to> </rule>

</urlrewrite>

Dans cet exemple, la première règle indique au filtre que lorsque l’URL demandée commence par « ^/news/showarticle.do ?id=15 » (tag <from>), il doit transmettre la requête au serveur sur l’URL « /url_rewriting_java.html » (tag <to>).

Tout comme mod_rewrite, URL Rewrite Filter offre des fonctionnalités très poussées :
- règles complexes basées sur des expressions régulières ;
- gestion des wildcard ;
- gestion des conditions dynamiques basées sur la date, les paramètres de la requête, des attributs de session, ...
- réécriture des URLs générées par un appel à la méthode response.encodeURL() ;
- appel direct d’une méthode ;
- mécanisme de génération de la documentation associée au fichier de paramétrage « urlrewrite.xml ». Il est également possible de le faire évoluer et de s’affranchir du fichier de paramétrage en s’appuyant sur une configuration en base de données. Il est alors envisageable de permettre à un utilisateur de gérer dynamiquement les règles, en fonction des pages créées, par exemple dans une application de gestion de contenu.

Pour en savoir plus :
- Téléchargement de l’URL Rewrite Filter : http://tuckey.org/urlrewrite/#download
- Documentation complète de l’URL Rewrite Filter : http://tuckey.org/urlrewrite/manual/3.0/
- Netapsys : http://www.netapsys.fr / contact@netapsys.fr