Java : Un système de cache pour vos JSP

Vous avez fait une super page JSP, avec des super requêtes dans votre base de données, tout est complètement dynamique, et vous êtes super fier du résultat. Seul "petit" problème, impossible d'utiliser votre script en production, ça ne tient pas la charge ! Avec un utilisateur ça va à peut près, la page met quelques secondes à s'exécuter, mais dès qu'il y a trois personnes c'est la bérésina, tout est par terre plus rien ne répond ...

Bien sur pas question de supprimer des fonctionnalités, mais que faire ?

Pas de panique, j'ai votre solution, un système de cache qui va éviter à votre page de s'exécuter à chaque fois ! Son nom ? OScache !

OSCache est développé par OpenSymphony, un projet Open Source qui cherche à fournir des composants J2EE à la fois simples à mettre en oeuvre et robustes.

Mais revenons à nos moutons :

Votre page JSP, que peut on faire pour elle ? Et bien commençons par installer OSCache. C'est très facile, il suffit de copier les fichiers dans votre répertoire WEB-INF comme cela :

$WEB_APPLICATION\WEB-INF\lib\oscache.jar
$WEB_APPLICATION\WEB-INF\classes\oscache.properties
$WEB_APPLICATION\WEB-INF\classes\taglib.tld

Puis il faut modifier le Web.xml de votre application, en ajoutant :

<taglib>
<taglib-uri>oscache</taglib-uri>
<taglib-location>/WEB-INF/classes/taglib.tld</taglib-location>
</taglib>

Et voilà, vous êtes prêt à utiliser le système de cache. maintenant, reprennez votre code, dans votre JSP, et identifiez le passage à mettre en cache, celui qui ne sera exécuté qu'une fois, ensuite il suffit de rajouter les TAGS OSCache autour de votre code pour que celui ci soit mis en cache, de la façon suivante :

cache - le tag principal pour utiliser le cache
usecached - un tag à utilisez à l'intérieur de "cache" pour forcer l'utilisation de version cachée de la page.
flush - pour vider le(s) cache(s).

Ce qui donne, avec un exemple concret :

<cache:cache>
... votre code dans la jsp ...
</cache:cache>

Cela va mettre en cache votre code en utilisant l'URL comme clé (ce qui veux aussi dire que cela doit être le seul TAG cache de la page).

Ensuite, vous avez des tas d'options à votre disposition pour pouvoir régler tout cela comme vous voulez, la clef (le nom) du cache, le temps de mise en mémoire, si c'est un cache pour la session ou l'application ...etc ...etc. Pour voir toutes les options consultez la documentation.

Bref, vous avez maintenant à votre disposition un système de cache fiable pour pallier à certaines portions de code trop "gourmandes" ou bien pour augmenter les performances de votre application.

Haut de page