Séance 3 : étude d'un framework Ajax (Dojo) et client RESTFUL

De $1

Version de 22:17, 26 Avr 2024

cette version.

Revenir à liste des archives.

Voir la version actuelle

Introduction

Dans 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.

Support de cours

Travail à effectuer

Etudes de quelques exemples simples faits en Dojo

Etudier deux exemples de clients Dojo sur le web service (maintenant RESTFUL) des bookmarks

Nous 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" :

  • un pour des servlets jersey (comprendre : pour les web services REST utilisant la librairie Jersey, les web services étant en réalité transformés en Servlets par Jersey), mappé sur "/", on accèdera donc toujours aux web services comme dans le TP1, par exemple par http://localhost:9998/user/all
  • un pour des servlets standards et des ressources classiques (pages html, images, css, javascript etc), mappé sur le répertoire "res" et sur l'URi http://localhost:9998/res, pour voir la page d'accueil on utilisera : http://localhost:9998/res/home.html
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();

 

Travail à rendre