DWR Jean-Jacques LE COZ
Introduction
Projet DWR Framework AJAX Projet Open Source commencé en 2004 Licence GPL (Apache Software License v2) Sponsorisé par la société TIBCO Chef de projet: Joe Walker
Caractéristiques Librairie Java et JavaScript Pour développer des applications web Ajax Masque le protocole de bas niveau lié à la méthode XMLHttpRequest Framework pour JAVA uniquement « Easy AJAX for Java »
Originalité Permet à du code JavaScript dans le navigateur D'utiliser des méthodes de classes POJO qui s'exécutent côté serveur Comme si elles étaient côté navigateur Le qualificatif de DWR est « Direct Remoting »
Intérêt Sans DWR il faut créer un ensemble de servlets pour répondre aux requêtes Ajax Ou de classes actions Il faut gérer les URI de ces ressources Il faut développer le code Ajax avec le langage JavaScript Méthode XMLHttpRequest Grande facilité avec DWR
Comment fonctionne DWR ?
Architecture
DWR: 2 grandes parties Un environnement d'exécution DWR composé de: Une servlet qui traite les requêtes DWR et qui envoie les réponses au navigateur org.directwebremoting.servlet.DwrServlet Cette servlet délègue les appels aux classes déclarées dans le fichier dwr.xml Un générateur de JavaScript qui masque la complexité de XMLHttpRequest
Fonctionnement Génération dynamique d'une classe JavaScript côté client à partir des classes POJO Le code JavaScript ressemble à du code RPC/RMI La classe JavaScript générée gère les détails de communication entre le serveur et le navigateur Gestion de la communication asynchrone Conversion des paramètres et valeurs retournées entre le client et le serveur
Développement DWR
Étapes 1.Copier le fichier dwr.jar dans WEB-INF/lib 2.Éditer le fichier web.xml et configurer le mapping de la servlet DWR 3.Créer le fichier dwr.xml pour déclarer les classes et leurs méthodes AJAX 4. Écrire le code javaScript à l'aide de la librairie util.js 5.Construire l'archive WAR et déployer
Exemple de web.xml dwr-invoker org.directwebremoting.servlet.DwrServlet debug true dwr-invoker /dwr/*
Exemple de dwr.xml
Exemple de javaScript (1) Simple Text Generation Demo <!-- Le code javaScript ci-dessous est généré par le framework DWR...
Exemple de javaScript (2)... Nom: function update() { var nom = dwr.util.getValue("lenom"); Toto.direBonjour(nom, loadinfo); } function loadinfo(data) { dwr.util.addOptions("reponse", data); }...
Exemple de classe « AJAX » package ressources; public class MaClasseAJAX { public MaClasseAJAX() { super(); } public String[ ] direBonjour(String nom) { String textes[] = new String[4]; textes[0]="DURAND"; textes[1]="ABEL"; textes[2]="DUPONT"; textes[3]=nom; return textes; }
Ressources Bibliographie Professional Ajax - Nicholas C. Zakas, Jeremy McPeak, Joe Fawcett Web