Vous n'êtes pas connecté. Connexion
|
|
Séance 3 : étude d'un framework Ajax (Dojo) et client RESTFULDe $1IntroductionDans cette séance vous allez vous familiariser avec le framework javascript Dojo, regarder quelques exemples simples, puis vous allez étudier deux exemples de clients utilisant Dojo et dialoguant avec les web services REST développés lors des précédents TPs. Pour des démos et des infos sur les autres framework Ajax/Javascript, vous pouvez consulter la page du cours de l'an dernier. Travail à effectuerEtudier deux exemples de clients Dojo sur le web service (maintenant RESTFUL) des bookmarksNous avons modifié le projet donné lors du TP1 pour que le serveur embarqué Grizzly puisse dorénavant servir convenablement des ressources statiques (pages html, javascript, etc), ce qui n'était pas le cas avant (les pages contenant des images par exemple, ne chargeaient pas les images, les en-têtes HTTP de réponses n'étaient pas complets). Le nouveau programme principal (dans TestGrizzly.java) créée une instance du serveur puis lui ajoute deux "adapters" :
Regardez le fichier TestGrizzly.java : // Le serveur écoute sur le port 9998 et cherche les ressources statiques dans le répertoire res GrizzlyWebServer ws = new GrizzlyWebServer(9998, "res"); // Premier adapter pour les web services Jersey (rest services) ServletAdapter jerseyAdapter = new ServletAdapter(); // Package qui contient les classes des web services jerseyAdapter.addInitParameter("com.sun.jersey.config.property.packages", "bmserv.resources"); jerseyAdapter.setContextPath("/"); jerseyAdapter.setServletInstance(new ServletContainer()); ws.addGrizzlyAdapter(jerseyAdapter, new String[]{"/"}); // Second adpater pour les ressources statiques et les servlets normales accessible sours /res/home.html etc ws.addGrizzlyAdapter(new GrizzlyAdapter() { public void service(GrizzlyRequest request, GrizzlyResponse response) { try { setHandleStaticResources(true); // Ce message s'affiche si la ressource statique n'existe pas response.getWriter().println("Le serveur ne trouve pas la ressource demandee, peut-etre que vous venez de lancer le serveur, attendez 3 secondes et faites reload !"); } catch (IOException ex) { Logger.getLogger(TestGrizzly.class.getName()).log(Level.SEVERE, null, ex); } } }, new String[]{"/res"}); ... ws.start(); Exécutez le projet, allez sur la page d'accueil, vous devriez voir en bas de la page deux liens pour tester deux clients Dojo : l'un très simple qui se contente de faire un GET sur la liste des utilisateurs pour les afficher dans un widget de type Grid de dojo. Cet exemple utilise le support du MVC de Dojo : on demande avec un XhRGet la ressource située sur /usr/all et on indique qu'on souhaite avoir la resource au format application/json (voir la ligne "header" de la requête), on indique aussi que la réponse va être interprétée par Dojo en Json (la ligne "handleAs"). Ensuite on récupère l'objet Json dans la fonction qui traite la réponse et on associe ce modèle à la Grid qui est une vue sur ce modèle. Regardez aussi le fichier UserResource.java pour voir comment est traité l'envoi en Json :
|
Powered by MindTouch Deki Open Source Edition v.8.08 |