Les Framework Java DWR. Claude Duvallet 1/13. Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX



Documents pareils
Le moteur de workflow JBPM

Architecture Orientée Service, JSON et API REST

Alfstore workflow framework Spécification technique

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

TD 1 - Transmission en bande de passe

Environnements de Développement

4. SERVICES WEB REST 46

AngularJS pour une application d'entreprise

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

- Rapport de stage Étude de solutions pour l intégration de fonctionnalités

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

SITE WEB E-COMMERCE ET VENTE A DISTANCE

Devenez un véritable développeur web en 3 mois!

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Programmation Web. Madalina Croitoru IUT Montpellier

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

Compte Rendu d intégration d application

LEA.C5. Développement de sites Web transactionnels

les techniques d'extraction, les formulaires et intégration dans un site WEB

Le stockage local de données en HTML5

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

7 villa de la citadelle Né le 13 mai Arcueil Nationalité : Française. Développeur Web JEE COMPÉTENCES

Rafraichissement conditionné d'une page en.net

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

Introduction à la plateforme J2EE

Architectures Web Services RESTful

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

A DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Bien architecturer une application REST

Créer une connexion entre Sage CRM et Sage Etendue pour émettre directement des devis et commandes

25 septembre Migration des accès au Registre national en protocole X.25 vers le protocole TCP/IP, pour les utilisateurs du Registre national

CQP Développeur Nouvelles Technologies (DNT)

Développement d'un logiciel VoIP BlackBerry

[APPLICATON REPARTIE DE VENTE AUX ENCHERES]

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Urbanisation des Systèmes d'information

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. A308, Université de Paris 13

Architectures n-tiers Intergiciels à objets et services web

Projet Java EE Approfondi

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Web Tier : déploiement de servlets

ASP.NET MVC 4 Développement d'applications Web en C# - Concepts et bonnes pratiques

Micro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance

Création d un service web avec NetBeans 5.5 et SJAS 9

LICENCE PROFESSIONNELLE

Petite définition : Présentation :

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Vulnérabilités et sécurisation des applications Web

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

Formation en Logiciels Libres. Fiche d inscription

Messagerie asynchrone et Services Web

Le scan de vulnérabilité

DOM - Document Object Model

Authentification et contrôle d'accès dans les applications web

Création d une application JEE

arcopole Studio Annexe 7 Architectures Site du programme arcopole :

.ARCHITECTURE ET FONCTIONNEMENT

Quel ENT pour Paris 5?

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Mise en œuvre des serveurs d application

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Applications et Services WEB: Architecture REST

Le cadre des Web Services Partie 1 : Introduction

Application web de gestion de comptes en banques

Formation : WEbMaster

TP JAVASCRIPT OMI4 TP5 SRC

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Introduction aux «Services Web»

Un serveur d'archivage

Créer un site Web : mode d emploi Sous SPIP, avec le squelette «établissement» de l académie de Versailles

Vulnérabilités et solutions de sécurisation des applications Web

CONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2015 SECONDE ÉPREUVE

Architecte Logiciel. Unité de formation 1 : Développer en s appuyant sur les modèles et les frameworks 7 semaines

Single Sign-On open source avec CAS (Central Authentication Service) Vincent Mathieu Pascal Aubry Julien Marchal

Exploration des technologies web pour créer une interaction entre Mahara et les plateformes professionnelles et sociales

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

Cloud et SOA La présence du Cloud révolutionne-t-elle l approche SOA?

EXTENSION de Microsoft Dynamics CRM Réf FR 80452

Datalift. + + Architecture Modularité Déploiements. d j = 09/04/2015 Laurent BIHANIC

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

<Insert Picture Here>ApExposé. Cédric MYLLE 05 Février Exposé Système et Réseaux : ApEx, Application Express d Oracle

GESTION ELECTRONIQUE DE DOCUMENTS

Développement des Systèmes d Information

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Gestion distribuée (par sockets) de banque en Java

INTRODUCTION À PYRAMID Gaël Bearstech. Crédits: Blaise Laflamme

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

Autour du web. Une introduction technique Première partie : HTML. Georges-André SILBER Centre de recherche en informatique MINES ParisTech

Business Process Execution Language

Paris Airports - Web API Airports Path finding

CHAPITRE 11. Temps réel Remy Sharp

Programmation Web Avancée Introduction aux services Web

Transcription:

Les Java DWR Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX Claude.Duvallet@gmail.com http://litis.univ-lehavre.fr/ duvallet/ Claude Duvallet 1/13

DWR Introduction 1 Introduction 2 3 Claude Duvallet 2/13

DWR : Direct Web Remoting (1/4) Il s agit d une librairie Java Open source destinée à aider les développeurs de site WEB pour inclure du Ajax. DWR permet d utiliser des fonctions Java disponible sur un serveur WEB comme si elles faisaient parties du navigateur. DWR consiste en 2 partie principales : une partie de code JavaScript pour récupérer des données depuis un serveur web basé sur des servlt en utilisant les principes d AJAX. une librairie JavaScript qui facilite le développeur de site WEB pour la mise à jour dynamique des pages WEB récupérant des données. DWR utilise une nouvelle approche basée sur Ajax en générant du code JavaScript basé sur des classes Java. Alors le développeur peut utiliser du code Java depuis du JavaScript comme si ce code était local au navigateur. Claude Duvallet 3/13

DWR : Direct Web Remoting (2/4) En réalité le code Java s exécute sur un serveur WEB et possède donc un accès complet aux ressources du serveur. Pour des raisons de sécurité, le développeur WEB doit configurer précisément quelles sont les classes qui peuvent être exportés en tout sécurité (ce qui est souvent fait dans le fichier web.xml ou dwr.xml). Cette méthode d appel des fonction distantes depuis Java vers JavaScript offre aux utilisateurs de DWR un mécanisme proche des classiques RPC tels que RMI ou SOAP tout en ayant le bénéfice que cela fonctionne sur le WEB sans nécessiter l ajout de plugin au sein du navigateur. DWR ne considère pas que le protocole entre le navigateur et le serveurs WEB comme important. Il préfère offrir une interface de développement beaucoup plus naturelle. Claude Duvallet 4/13

DWR : Direct Web Remoting (3/4) Le plus grand défi est de marrier la nature asynchrone d AJAX avec la nature synchrone des appels de méthodes Java. Dans le modèle asynchrone, les données sont uniquement disponibles quelques temps après que l appel initial ait été fait. DWR résoud ce problème en permettant aux développeurs WEB de spécifier une fonction qui sera appelé lorsque les données retournées utilise un paramètre de méthode externe. Cette méthode externe est appelée CallBack Method. Voici un exemple de méthode Callback : MJavaClassOnJs.getListProducts(selectedCategory,{ callback:function(returnedlist){ dwr.util.addoptions(mycomboid,returnedlist,"productid","productname") } }) La méthode Callback est une fonction à l intérieur d un objet Json passé comme paramètre aditionnel de la méthode disante. Claude Duvallet 5/13

DWR : Direct Web Remoting (4/4) Dans la version 2.0 de DWR, le support de Reverse Ajax a été ajouté et permet à du code Java s éxécutant sur le serveur d envoyer du JavaScript au navigateur. Le projet DWR a été créée par Joe Walker en 2004. Claude Duvallet 6/13

DWR : En résumé Introduction DWR est un framework AJAX pour Java qui permet de "publier" des méthodes Java en Javascript. Ces méthodes seront ensuite manipulables dans la page HTML. L utilisation de DWR autorise ainsi la création d applications Web 2.0 complètes tout en minimisant le code Javascript nécessaire et en apportant la puissance, la souplesse et la robustesse de Java. L ensemble des échanges avec le serveur par XMLHttpRequest sont gérés de manière interne à DWR ce qui dispense le développeur de la résolution de ces problématiques. En outre, DWR repose sur le framework Javascript Prototype et offre certaines fonctionnalités et API Javascript permettant la résolution de la majorité des problématiques de compatibilités entre navigateurs. DWR fonctionne sur n importe quel projet Web Java. Claude Duvallet 7/13

L architecture logicielle : la couche DWR La séparation en couches d une application favorise, entre autres, sa robustesse et son évolutivité. Une nouvelle couche applicative a été créée : elle est située dans la couche front, au dessus de la couche service. Cette couche a pour tâche de faire l interface entre le client, la page html et la couche service. Cette couche - appelée DWR - accède, contrairement à la couche service à la requête http. Cela permet de récupérer des informations telles que la locale de l utilisateur, son identité, de mettre en forme les formulaires postés, etc. Cette couche est réservée à une utilisation dans une application web alors que la couche service peut être publiée à travers des webservices, accédée depuis un client lourd, etc. Claude Duvallet 8/13

Principe de fonctionnement de DWR La couche DWR, gérée également par Spring, publie un certain nombre de méthodes java en Javascript. Toute classe, définie dans la couche DWR et correctement configurée, publiera les méthodes qui la composent. Le moteur DWR est chargé de créer l interface Javascript permettant d appeler ces méthodes en AJAX, via XMLHttpRequest. Ces aspects sont totalement masqués par le framework DWR. DWR transforme aussi des objets java en Javascript. Les méthodes publiées retournent des objets java que DWR convertit en Javascript si il y est autorisé explicitement via des déclarations de Converters. Ces objets pourront être récupérés en Javascript, après les appels de méthodes et affichés dans la page html. Claude Duvallet 9/13

(1/4) 1 Créer un objet JavaScript reprenant la structure de données de votre formulaire, le formulaire ici est une page de login : <script type="text/javascript"> var loginform = { login:null, password:null }; </script> 2 Ecrire l équivalent côté Java : public class LoginForm { private String login; private String password; } // getters and setters Claude Duvallet 10/13

(2/4) 3 Ecrire la classe DWR qui va permettre de valider l identification de l utilisateur : import java.util.arraylist; import java.util.list; public class LoginDWR { /** * Méthode asynchrone permettant de valider l authentification */ public List validatelogin(loginform loginform, HttpServletRequest request) { List errorlist = new ArrayList(); // validation du login if (loginform.getlogin() == null) { errorlist.add( Your login is required ); } else { if (loginform.getlogin().length() < 4) { errorlist.add( Your login must be at least 4 characters ); } else if (loginform.getlogin().length() > 10) { errorlist.add( Your login can not exceed 10 characters ); } }... La suite est à télécharger sur ma page WEB Claude Duvallet 11/13

(3/4) 4 Exemple de page JSP qui contiendrait ce formulaire et mise en place de la validation asynchrone : télécharger l exemple sur ma page WEB. Explications Le bouton du formulaire appel la méthode javascript validlogin(). La méthode dwr.util.setvalue() est utilisée pour réinitialiser les messages d erreurs précédents. L appel à la méthode dwr.util.getvalues() permet de stocker les informations saisies du formulaire dans l objet javascript loginform, cette méthode se base sur les identifiants des champs du formulaire pour les mapper dans l objet donné en paramètre, ici loginform. L objet DWR est appelé avec la méthode validatelogin() en lui donnant en paramètre notre objet loginform pré-rempli, de plus nous spécifions la méthode de retour (callback). Claude Duvallet 12/13

(4/4) Suite des explications La méthode de retour est exécutée automatiquement quand DWR aura terminé l exécution de sa méthode (return...). Nous validons ensuite le formulaire récupéré côté serveur dans la méthode DWR pour faire un contrôle de surface tout d abord puis un contrôle en profondeur en appelant nos services métier. Une liste d erreurs est finalement retournée au navigateur ou une liste vide si tout est valide. Nous manipulons ensuite légèrement le DOM pour afficher les messages d erreurs ou de succès avec dwr.util.setvalue() Claude Duvallet 13/13