Architecture J2EE Etude du Web-tier

Dimension: px
Commencer à balayer dès la page:

Download "Architecture J2EE Etude du Web-tier"

Transcription

1 Architecture J2EE Etude du Web-tier Composants Web Servlets / JSP et JavaBeans Patrick Itey (Patrick.Itey@sophia.inria.fr) - INRIA

2 PLAN - Rappels Rappels sur les architectures distribuées: les serveurs d'application la programmation par composants composant / conteneur / structure accueil Rappels sur l'architecture J2EE : Principes Les composants utilisés Topologies d'une application J2EE Technologies utilisées 07/11/2002 P. Itey - INRIA 2 Rappels : Architectures distribuées Ce sont des applications dont les fonctions sont réparties entre plusieurs systèmes. On les appelle aussi architectures multi-tiers. Dans une architecture distribuée type, les fonctions sont réparties entre un système client (station de travail, terminal, ) et un système serveur (serveur PC, Unix, mainframe ). 07/11/2002 P. Itey - INRIA 3

3 Rappels : architectures distribuées Chaque système contient une partie de l application, les parties manquantes sont exécutées sur les autres systèmes participants à l application et les informations sont échangées par le réseau 07/11/2002 P. Itey - INRIA 4 Rappels : architectures distribuées 3 catégories : 1- fonctions de présentation interface utilisateur 2- fonctions applicatives / orientées métier : validation des données modélisation des processus métiers (prise de commande, ) 3- fonctions de stockage 07/11/2002 P. Itey - INRIA 5

4 Rappels : fonction de présentation sur la couche présentation, une application cliente est chargée de l affichage et de la saisie des données : browsers web (http/html), applets (RMI), contrôles ActiveX (DCOM), clients CORBA (IIOP) 07/11/2002 P. Itey - INRIA 6 Rappels : fonction applicative sur la couche application, un serveur d application maintient des composants métiers utilisés pour modéliser sous forme d objet les processus de l application (ex: factures, caddies, ) : présentation, outils métiers, CGI, servlets 07/11/2002 P. Itey - INRIA 7

5 Rappels : fonction de stockage sur la couche données, les serveurs du système d information d entreprise stockent les composants métiers : bases de données relationnelles ou objets, intégrés (ERP), legacy (mainframe), annuaires d entreprise, 07/11/2002 P. Itey - INRIA 8 Motivation pour les serveurs d'application Simplifier le développement Plus grande séparation entre les 3 couches Le développeur peut se concentrer sur la logique de son application; le reste est pris en charge par la structure d'accueil : sessions, persistance, transactions, sécurité, nommage, charge 07/11/2002 P. Itey - INRIA 9

6 Motivation pour les serveurs d'application (suite) Gain en productivité : Fournir des services standards pour : le développement d'application multi-tiers le support de plusieurs types de client Mise sur le marché des applications distribuées plus rapidement 07/11/2002 P. Itey - INRIA 10 Motivation pour les serveurs d'application (suite) Intégration avec l existant : mettre à la disposition des développeurs des moyens standards d'accès aux données des systèmes déjà existants dans l entreprise. 07/11/2002 P. Itey - INRIA 11

7 Motivation pour les serveurs d'application (suite) Maintenance et sécurité : mettre en place des mécanismes standards pour gérer la sécurité sur tous les systèmes d une application distribuée mais peu de possibilités pour mettre en place la sécurité au niveau du client, sauf dans le cas de clients Java. 07/11/2002 P. Itey - INRIA 12 Motivation pour les serveurs d'application (suite) Liberté de choix : grande diversité de serveurs J2EE commerciaux ou libres mécanismes et technologies standards pour la création d'application : cela permet d'utiliser des produits d'éditeurs différents environnements de développement et serveurs J2EE issus de plusieurs éditeurs. utilisation de ses propres composants pour les fonctions spécifiques de l'application et de crées par des éditeurs de logiciels pour les fonctions de base. 07/11/2002 P. Itey - INRIA 13

8 Motivation pour les serveurs d'application (suite) Réponse adaptée à la demande : les applications supportent la montée en charge sans avoir à être recodées (dans les specs ;-) ) mécanismes simples pour répartir la charge entre plusieurs serveurs, sur les différentes couches de l'application 07/11/2002 P. Itey - INRIA 14 Programmation par composants Les limites de la programmation traditionnelle plus adaptée à la programmation de petits projets (programming in the small) tout est à la charge du programmeur : la liaison entre les différentes couches de l application (présentation, application, données), construction de objets utilisées sur les couches, la définition des fonctions 07/11/2002 P. Itey - INRIA 15

9 Programmation par composants la structure de l application est peu visible et particulière à chaque application (fichiers ) l évolution de l application est difficile : ajout de fonctionnalités, modification des conditions d installation le développement, la génération des exécutables et leur déploiement ne sont pas standardisés 07/11/2002 P. Itey - INRIA 16 Programmation par composants Programmation par composition (ou constructive) : motivée par la réutilisation des logiciels déjà existants et propose de créer des applications réparties par assemblage de composants logiciels existants. concept du programming in the large où l on définit des composants génériques qui sont ensuite réutilisables dans plusieurs applications. 07/11/2002 P. Itey - INRIA 17

10 Programmation par composants Dans cette approche on décrit l architecture de l application à l aide d un langage déclaratif qui permet de préciser : le modèle de construction des composants: interfaces attributs implémentation la description des interactions entre composants (connecteurs) la description de variables d environnement (placement, sécurité ) 07/11/2002 P. Itey - INRIA 18 Architecture à base de composants 07/11/2002 P. Itey - INRIA 19

11 Composants Un composant est un module logiciel autonome, configurable et installable sur plusieurs plates-formes Un composant : exporte des attributs, propriétés et méthodes, peut être configurable, est capable de s auto-décrire (introspection) 07/11/2002 P. Itey - INRIA 20 Composants Les composants sont les briques de bases configurables d une application par composition. Parmi les différentes technologies de composants, on peut citer : COM/DCOM, JavaBeans, Enterprise Java Beans, composants CORBA 07/11/2002 P. Itey - INRIA 21

12 Conteneur Un conteneur encapsule les composants et prend en charge les services liés au système : nommage, sécurité, transaction, persistance,. 07/11/2002 P. Itey - INRIA 22 Structures d'accueil Espaces d exécution des conteneurs et des composants Servent de médiateur entre les conteneurs et les services systèmes (sandbox). Peuvent prendre en charge le téléchargement de code additionnel (navigateur Web ). La Java Virtual Machine est la structure d accueil d une application J2EE. 07/11/2002 P. Itey - INRIA 23

13 PLAN - Rappels Rappels sur les architectures distribuées: les serveurs d'application la programmation par composants composant / conteneur / structure accueil Rappels sur l'architecture J2EE : Principes Les composants utilisés Topologies d'une application J2EE Technologies utilisées 07/11/2002 P. Itey - INRIA 24 Principes de J2EE L architecture J2EE est une architecture d application distribuée à base de composants Elle identifie et donne les spécifications des composants de l application : composants logiciels ou beans (EJB), conteneur serveurs clients 07/11/2002 P. Itey - INRIA 25

14 Principes de J2EE (suite) 07/11/2002 P. Itey - INRIA 26 Principes de J2EE (suite) Les conteneurs isolent les beans du client et d une implémentation spécifique du serveur. Les beans sont installés dans la partie serveur d une application J2EE. 07/11/2002 P. Itey - INRIA 27

15 Principes de J2EE (suite) Les conteneurs et serveurs implémentent les mécanismes de bas niveau utilisés par les applications : transactions, persistance, gestion de la mémoire, sécurité 07/11/2002 P. Itey - INRIA 28 Principes de J2EE (suite) Les spécifications J2EE s intéressent aux activités d une application liées : au développement, au déploiement, à l exécution 07/11/2002 P. Itey - INRIA 29

16 Composant J2EE C'est une unité logicielle de niveau applicatif. En plus des JavaBeans, qui font partie du J2SE, J2EE supporte les types de composants suivants : applets & application clientes, composants Enterprise JavaBeans (EJB), composants Web, 07/11/2002 P. Itey - INRIA 30 Composant J2EE (suite) Les applets et applications clientes sont exécutées sur le poste du client Les composants EJB, Web fonctionnent sur le serveur Les concepteurs et développeurs d'applications développent les composants d'une application J2EE. 07/11/2002 P. Itey - INRIA 31

17 Conteneur de composants J2EE Tous les composants J2EE dépendent à l'exécution d'une entité système baptisée conteneur (container). Les conteneurs fournissent aux composants des services de bases comme : la gestion du cycle de vie, la sécurité, le déploiement et l'exécution en thread. 07/11/2002 P. Itey - INRIA 32 Conteneur de composants J2EE Comme c'est le conteneur qui gère ces services, la plupart des paramètres de configuration de ces services peuvent être configurés lors du déploiement des composants en fonction de la plate-forme d'accueil : Par exemple un fournisseur d'enterprise Java Bean peut spécifier un nom de base de données auquel le composant doit accéder et c'est seulement lors du déploiement que les informations d'accès à la base (nom d'utilisateur et mot de passe ) seront configurées. 07/11/2002 P. Itey - INRIA 33

18 Composants clients J2EE La plate-forme J2EE prévoit plusieurs types de clients pour accéder à une même application et interagir avec les composants côté serveur : les Applets, les applications autonomes 07/11/2002 P. Itey - INRIA 34 Rappel : les applets Ce sont des clients Java qui s'exécutent dans un navigateur Web et qui ont accès à toutes les possibilités du langage Java. Les applications J2EE les utilisent pour avoir des interfaces utilisateurs plus puissantes que celles connues en HTML. Les applets communiquent avec le serveur par HTTP. 07/11/2002 P. Itey - INRIA 35

19 Rappel : applications autonomes S'exécutent dans leur propre conteneur client. Le conteneur client est un jeu de librairies et d'api qui supportent le code client, et mettent à sa disposition un moyen d'accéder aux composants métiers de l'application. Les applications clientes ont des interfaces utilisateurs qui peuvent directement interagir avec le tier EJB en utilisant RMI-IIOP. 07/11/2002 P. Itey - INRIA 36 Rappel : applications autonomes Les clients ont un accès complet aux services de la plate-forme J2EE comme : les services de nommage JNDI, l'envoi de messages et JDBC. Le conteneur client gère l'accès à ces services et les communications RMI-IIOP. 07/11/2002 P. Itey - INRIA 37

20 Appli clientes Java Web Start Ce sont des applications autonomes reposant sur les JFC et Swing et capables d'utiliser les services de la plate-forme J2EE par l'intermédiaire de la technologie Java WebStart. Elles peuvent être installées par le web, Elles communiquent avec le serveur en utilisant du XML encapsulé dans du HTTP(S). 07/11/2002 P. Itey - INRIA 38 Clients sans fil Les clients sans fil sont basés sur la technologie Mobile Information Device Profile (MIDP), en conjonction avec Connected Limited Device Configuration (CLDC) qui fournissent un environnement J2ME complet pour les dispositifs sans fil. 07/11/2002 P. Itey - INRIA 39

21 Les composants Web Un composant Web est une entité logicielle qui fournit une réponse à une requête. Les composants Web génèrent habituellement l'interface utilisateur d'une application Web. La plate-forme J2EE définit 2 types de composants Web : les servlets et les JavaServer Pages (JSP). 07/11/2002 P. Itey - INRIA 40 Les Servlets Une servlet est un composant qui étend les fonctionnalités d'un serveur Web de manière portable et efficace. Un serveur Web héberge des classes Java servlets qui sont exécutées à l'intérieur du container Web. Le serveur Web associe une ou plusieurs URLs à chaque servlet et lorsque ces URLs sont appelées via une requête HTTP de l'utilisateur, la servlet est déclenchée. 07/11/2002 P. Itey - INRIA 41

22 Les Servlets (suite) Quand la servlet reçoit une requête du client, elle génère une réponse, éventuellement en utilisant la logique métier contenue dans des EJBs ou en interrogeant directement une base de données. Elle retourne alors une réponse HTML ou XML au demandeur. 07/11/2002 P. Itey - INRIA 42 Les JSP (Java Server Pages) La technologie Java Server Pages (JSP) fournit un moyen simple et extensible pour générer du contenu dynamique pour le client Web. Une page JSP est un document texte qui décrit comment traiter la requête d'un client et comment créer une réponse. 07/11/2002 P. Itey - INRIA 43

23 Les JSP (suite) Une page JSP contient : Des informations de formatage (modèle) du document Web, habituellement en HTML ou XML. Les concepteurs Web peuvent modifier cette partie de la page sans affecter les parties dynamiques. Cette approche permet de séparer la présentation du contenu dynamique. 07/11/2002 P. Itey - INRIA 44 Les JSP (suite) Une page JSP contient (suite) : Des éléments JSP et de script pour générer le contenu dynamique du document Web. La plupart des pages JSP utilisent aussi des JavaBeans et/ou des Enterprise JavaBeans pour réaliser les opérations complexes de l'application. Les JSP permettent en standard d'instancier des beans, de modifier ou lire leurs attributs et de télécharger des applets. 07/11/2002 P. Itey - INRIA 45

24 Les JSP (suite) La technologie JSP est extensible en utilisant des balises personnalisées qui peuvent être encapsulées dans des bibliothèques de balises personnalisées (taglibs) 07/11/2002 P. Itey - INRIA 46 Conteneurs de composants Web Les composants Web sont hébergés dans des conteneurs de servlets, conteneurs de JSP et conteneurs Web. En sus des fonctionnalités normales d'un conteneur de composants, un conteneur de servlets (servlets container) fournit les services réseaux par lesquels les requêtes et réponses sont émises. Il décode également les requêtes et formate les réponses dans le format approprié. 07/11/2002 P. Itey - INRIA 47

25 Conteneurs de composants Web Tous les conteneurs de servlets doivent supporter le protocole HTTP et peuvent aussi supporter le protocole HTTPS. Un conteneur de JSP (JSP container) fournit les mêmes services qu'un conteneur de servlets. Ces conteneurs sont généralement appelés conteneurs Web (Web containers). 07/11/2002 P. Itey - INRIA 48 Topologies d'une application J2EE 07/11/2002 P. Itey - INRIA 49

26 Application multitiers 07/11/2002 P. Itey - INRIA 50 Client autonome 07/11/2002 P. Itey - INRIA 51

27 Client autonome "EJB-centric" 07/11/2002 P. Itey - INRIA 52 Application Web 07/11/2002 P. Itey - INRIA 53

28 Détails de l'application Web 07/11/2002 P. Itey - INRIA 54 Application Business-to-business 07/11/2002 P. Itey - INRIA 55

29 Technologies J2EE La plate-forme J2EE, comme la plate-forme J2SE, inclue un grand nombre de bibliothèques de code (API) prédéfinies pour les fonctions de base d'une application. 07/11/2002 P. Itey - INRIA 56 Technologies J2EE (suite) 07/11/2002 P. Itey - INRIA 57

30 Technologies J2EE (suite) Les technologies mises en œuvre : L'architecture J2EE Connector est l'infrastructure pour interagir avec une grande variété de systèmes d'information d'entreprise tels que des ERPs, des CRM, et autres progiciels. L'API JDBC est utilisée pour accéder à des données relationnelles à partir de programmes Java 07/11/2002 P. Itey - INRIA 58 Technologies J2EE (suite) Les technologies mises en œuvre (suite) : La Java Transaction API (JTA) est utilisée pour gérer et coordonner les transactions entre un ensemble hétérogène de systèmes d'information d'entreprise. L'API Java Naming and Directory Interface (JNDI) est utilisée pour accéder aux services de nommage et d'annuaire de l'entreprise. 07/11/2002 P. Itey - INRIA 59

31 Technologies J2EE (suite) Les technologies mises en œuvre (suite) : L'API Java Message Service (JMS) est utilisée pour émettre et recevoir des messages via les systèmes de messagerie d'entreprise comme IBM MQ Series ou TIBCO Rendezvous. Dans l'architecture J2EE, les Message Driven Beans fournissent une approche à base de composant pour encapsuler les fonctionnalités de messagerie. 07/11/2002 P. Itey - INRIA 60 Technologies J2EE (suite) Les technologies mises en œuvre (suite) : La JavaMail API est utilisée pour émettre et recevoir des mails. Java IDL est utilisée pour appeler des services CORBA L'API Java pour XML (JAXP) est utilisée pour l'intégration avec les systèmes et applications existants et pour implémenter les Web services dans la plate-forme J2EE. 07/11/2002 P. Itey - INRIA 61

32 JNDI Java Naming and Directory Interface La technologie JNDI est utilisée dans J2EE pour localiser les objets sur un serveur et accéder aux objets externes à partir des composants J2EE. Chaque conteneur stocke une référence aux objets qu il peut créer et instancie ces objets à la demande des clients ou des applications qui fonctionnent sur le serveur. 07/11/2002 P. Itey - INRIA 62 JNDI (suite) Le conteneur met aussi à la disposition des composants un jeu de ressources JNDI initial, issu de la configuration du serveur et/ou des applications Web (via les descripteurs de déploiement). Un objet InitialContext est crée par le conteneur lorsqu'une Web application est déployée. 07/11/2002 P. Itey - INRIA 63

33 JNDI (suite) Cet objet est accessible par les composants, en lecture seulement. L'API JNDI est définie dans le package javax.naming. L'autre rôle de JNDI dans une application J2EE est la localisation des interfaces distantes des beans. 07/11/2002 P. Itey - INRIA 64 Exemple d'utilisation de JNDI // Dans Tomcat, les ressources JDNI initiales sont // accessibles dans l'espace de nommage // java:comp/env. // Exemple d'accès à une ressource JDBC par JNDI : // Obtain our environment naming context Context initctx = new InitialContext(); Context envctx = (Context) initctx.lookup("java:comp/env"); // Look up our data source DataSource ds = (DataSource)envCtx.lookup("jdbc/EmployeeDB"); // Allocate and use a connection from the pool Connection conn = ds.getconnection(); //...use this connection to access the database conn.close(); 07/11/2002 P. Itey - INRIA 65

34 Le Web-Tier dans J2EE Le serveur Web d une application J2EE (Web tiers) rend disponible la logique d'une application sur le Web. C est le serveur Web qui gère la communication avec les clients Web et qui répond à leurs requêtes. 07/11/2002 P. Itey - INRIA 66 Topologie(s) du Web-Tier 07/11/2002 P. Itey - INRIA 67

35 Topologie(s) du Web-Tier (2) 07/11/2002 P. Itey - INRIA 68 Topologie(s) du Web-Tier (3) 07/11/2002 P. Itey - INRIA 69

36 Rôles du serveur Web Un serveur Web traite des requêtes HTTP. Dans le cadre d une application J2EE, le serveur Web (Web tiers) gère les relations entre les clients Web et l application. Le serveur Web produit typiquement du contenu HTML ou XML, bien qu il puisse générer d autres types de contenu. 07/11/2002 P. Itey - INRIA 70 Rôles du serveur Web (suite) L architecture J2EE préconise d implémenter la logique métier dans le serveur d EJB mais il est possible d implémenter la logique métier directement sur le serveur Web. 07/11/2002 P. Itey - INRIA 71

37 Fonctions du serveur Web mise à disposition de la logique métier sur le Web: le serveur gère les relations entre les clients Web et la logique métier de l application création dynamique de contenu: le serveur Web génère dynamiquement du contenu, dans n importe quel type de format: HTML, images, sons, video, 07/11/2002 P. Itey - INRIA 72 Fonctions du serveur Web (suite) présentation et collecte des données: le serveur Web transforme les requêtes HTTP PUT et GET dans une forme compréhensible par la couche métier de l application et présente les résultats contrôle du flux de navigation: la logique implantée dans le serveur Web détermine quel écran de l application envoyer au client. En effet c est souvent le serveur Web qui adapte la présentation et l enchaînement des écrans en fonction des capacités du client 07/11/2002 P. Itey - INRIA 73

38 Fonctions du serveur Web (suite) maintien des informations d état : le serveur Web dispose d un mécanisme simple et flexible pour conserver des informations durant toute la durée d une session utilisateur support de plusieurs clients : par le biais des types MIME, un serveur Web peut envoyer de l information vers n importe quel type de client et étendre les capacités de publication implémentation de la logique métier 07/11/2002 P. Itey - INRIA 74 Technologies utilisées sur le Web Technologies traditionnelles La génération de contenu dynamique sur le Web a d abord utilisé la technologie Common Gateway Interface (CGI). Cette technologie permet de déclencher des programmes lors de requêtes HTTP, le résultat du programme étant alors renvoyé comme réponse. 07/11/2002 P. Itey - INRIA 75

39 Technologies "traditionnelles" L inconvénient de cette technologie est qu à chaque appel du CGI, le programme externe doit être rechargé, ce qui représente une perte de temps non-négligeable. Les limitations des CGI ont ensuite été palliées en utilisant des extensions propres à chaque serveur Web. 07/11/2002 P. Itey - INRIA 76 Technologies "traditionnelles" On parle de NSAPI (pour les serveurs Netscape), de modules d extension (pour le serveur Apache), et d ISAPI (pour Microsoft Internet Information Server). L inconvénient de ces techniques étant qu elles sont spécifiques à chaque serveur et donc non-portables. 07/11/2002 P. Itey - INRIA 77

40 Technologies Web pour J2EE Les technologies Web utilisées sur un serveur J2EE présentent l avantage d être des solutions portables, sécurisées et standardisées. Une application Web est un assemblage de composants de serveurs Web, de contenu et d informations de configuration. 07/11/2002 P. Itey - INRIA 78 Techno Web pour J2EE (suite) L environnement d exécution d une application Web est appelé de conteneur Web (Web container). Tous les fichiers d une application Web sont contenus dans un fichier Web Application Archive (WAR) qui contient également un fichier de description de déploiement rédigé en XML. 07/11/2002 P. Itey - INRIA 79

41 Techno Web pour J2EE (suite) Les spécifications de la plate-forme J2EE définissent un contrat en le conteneur Web et les composants Web, qui définit le cycle de vie des composants, les comportements que le composant implémente et les services que le serveur rend aux composants. Les spécifications J2EE définissent 2 types de composants Web : les Servlets Java ( servlets ) et les Java Server Pages (pages JSP) 07/11/2002 P. Itey - INRIA 80 PLAN - Les composants Web Les Servlets Cycle de vie d'une servlet Traitement des données de formulaires Gestion de l'état avec cookies et sessions Introduction aux JSP Intégrer JSP, Servlets et JavaBeans Les JSP en XML Les balises JSP personnalisées Règles de conception 07/11/2002 P. Itey - INRIA 81

42 Les Travaux dirigés TP0 : Une simple servlet Installation du server J2EE, utilisation du serveur de déploiement J2E Ecriture / compilation / déploiement / exécution d'une servlet TP1 : Une page JSP Ecriture / déploiement / exécution d'une page JSP pour remplace la servlet TP2 : Intégrer Servlet / JSP et JavaBean dans une architecture MVC de J2EE TP3 : Utiliser des taglibs XML dans une JSP 07/11/2002 P. Itey - INRIA 82 Servlet : qu'est ce que c'est? Avec JSP, c'est un des composants logiciels Web de l'architecture J2EE C'est une classe Java compilée (.class) qui s'exécute dans un conteneur de Servlets (moteur), hébergé par le serveur Web (côté serveur) Permet d'étendre les fonctionnalités du serveur Web de manière portable et efficace 07/11/2002 P. Itey - INRIA 83

43 Servlet : qu'est ce que c'est? Ecrit en Java : technologie indépendante de la plate-forme et du serveur S'apparente aux technologies traditionnelles CGI (PERL) mais : plus efficaces plus pratiques plus puissantes portables et gratuites 07/11/2002 P. Itey - INRIA 84 Servlet : à quoi ça sert? Créer des pages dynamiques (HTML/XML) à "la volée" Effectuer des tâches de type CGI (traitements applicatifs) côté serveur Ecrire une application en Java dont l'interface utilisateur (en HTML) se situe dans le Browser, côté client 07/11/2002 P. Itey - INRIA 85

44 Servlet : comment ça marche? Le serveur Web associe une ou plusieurs URLs à chaque servlet Lorsque ces URLs sont appelées via une requête HTTP de l'utilisateur, côté client, le conteneur de servlet (moteur) déclenche la servlet qui s'exécute côté serveur La servlet génère une réponse HTML/XML vers le client en utilisant la logique métier d'ejb ou en interrogeant directement la BD (via API JDBC) 07/11/2002 P. Itey - INRIA 86 Architecture WEB : principe Client Serveur WEB Serveur EJB Servlet JSP Conteneur web Conteneur EJB Navigateur Web Tier Web Tier EJB 07/11/2002 P. Itey - INRIA 87

45 Architecture Servlets Serveur WEB Client Navigateur Web Requête (http) Réponse XML H T T P JVM Servlet maservlet.class Conteneur Tier Web web 07/11/2002 P. Itey - INRIA 88 API Servlet Les classes et les interfaces pour les Servlets sont définies dans 2 packages : javax.servlet package générique indépendant des protocoles javax.servlet.http spécifique à HTTP permet la gestion des sessions Où les trouver : JSWDK java.sun.com/products/servlets 07/11/2002 P. Itey - INRIA 89

46 Les classes de l'api 2 classes abstraites : javax.servlet.genericservlet javax.servlet.http.httpservlet qui implémentent 2 interfaces abstraites : javax.servlet.servlet javax.servlet.servletconfig 07/11/2002 P. Itey - INRIA 90 Les classes de l'api abstract interface Servlet abstract interface ServletConfig void service() abstract class GenericServlet abstract void service() abstract class HttpServlet void service() void doxxx() 07/11/2002 P. Itey - INRIA 91

47 La classe GenericServlet javax.servlet.genericservlet définit une servlet indépendante des protocoles une classe abstraite qui fournit une implémentation de base de l'interface Servlet La méthode service() est le principal point d'entrée c'est une méthode abstraite qui doit être implémentée par une classe dérivée 07/11/2002 P. Itey - INRIA 92 Structure de base d'une servlet import javax.servlet.*; public class first extends GenericServlet { public void init(servletconfig config) throws ServletException { } public void service( ServletRequest req, ServletResponse rep) throws ServletException, IOException { } } public void destroy() { } 07/11/2002 P. Itey - INRIA 93

48 Communiquer avec le client 2 arguments pour service() : javax.servlet.servletrequest encapsule la requête du client contient le flot d'entrée dans lequel lire les données en provenance du client javax.servlet.servletresponse contient le flot de sortie pour répondre au client 07/11/2002 P. Itey - INRIA 94 Développer des HttpServlet javax.servlet.http.httpservlet dérive de GenericServlet et fournit une implémentation spécifique à HTTP de l'interface Servlet 07/11/2002 P. Itey - INRIA 95

49 La méthode service() de HttpServlet HttpServlet surcharge la méthode service() lit la méthode HTTP à partir de la requête transmet la requête à une méthode appropriée, destinée à la traiter Chaque méthode a une méthode "handler" associée, définie dans une méthode HttpServlet:doXXX() 07/11/2002 P. Itey - INRIA 96 Méthodes de HttpServlet Une servlet est une sous-classe de HttpServlet dans laquelle on surcharge la ou les méthodes doxxx() appropriées : requête GET, HEAD : doget() requête POST : dopost() public void doxxx(httpservletrequest req, HttpServletResponse rep) 07/11/2002 P. Itey - INRIA 97

50 Squelette d une servlet Http import javax.servlet.*; import javax.servlet.http.*; public class SimpleServlet extends HttpServlet { public void init(servletconfig c) throws ServletException { } public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { } public void destroy() { } } public String getservletinfo() { } 07/11/2002 P. Itey - INRIA 98 Structure de base public class SimpleServlet extends HttpServlet { public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { // Lire la requête du client // La traiter // Répondre } } 07/11/2002 P. Itey - INRIA 99

51 Lire la requête du client HttpServletRequest hérite de ServletRequest : encapsule la requête HTTP et fournit des méthodes pour accéder à toutes les informations contient les informations sur l'environnement du serveur 07/11/2002 P. Itey - INRIA 100 Les méthodes de HttpServletRequest String getmethod() retourne la méthode HTTP String getheader(string name) retourne le paramètre name de l'entête HTTP de la requête String getremotehost() retourne le nom d'hôte du client String getremoteaddr() retourne l'adresse IP du client 07/11/2002 P. Itey - INRIA 101

52 Les méthodes de HttpServletRequest String getparameter(string name) retourne la valeur d'un champ de formulaire HTML String getservername() retourne le nom du serveur String getserverport() le port sur lequel le serveur écoute 07/11/2002 P. Itey - INRIA 102 Répondre au serveur HttpServletResponse hérite de ServletResponse : utilisé pour construire un message de réponse HTTP renvoyé au navigateur client contient les méthodes nécessaires pour définir : type de contenu, en-tête et code de retour contient un flot de sortie pour envoyer des données (HTML ou autre) au navigateur 07/11/2002 P. Itey - INRIA 103

53 Les méthodes de HttpServletResponse void setstatus(int statuscode) définit le code de retour de la réponse void setheader(string name, String value) définit la valeur de l'en-tête name void setcontenttype(string type) définit le type de contenu MIME 07/11/2002 P. Itey - INRIA 104 Les méthodes de HttpServletResponse PrintWriter getwriter() pour envoyer des données texte au client ServletOutputStream getoutputstream() flot pour envoyer des données binaires void sendredirect(string url) redirige le navigateur vers l'url 07/11/2002 P. Itey - INRIA 105

54 Un exemple simple... 07/11/2002 P. Itey - INRIA 106 Un exemple simple... package hall; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { } } PrintWriter out = response.getwriter(); out.println("hello World");out.flush(); 07/11/2002 P. Itey - INRIA 107

55 Un autre exemple... 07/11/2002 P. Itey - INRIA 108 Un autre exemple... package hall; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWWW extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); out.println("<!doctype HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n" + "<HTML>\n" + "<HEAD><TITLE>Hello WWW</TITLE></HEAD>\n" + "<BODY><H1>Hello WWW</H1>\n" +"</BODY></HTML>");}} 07/11/2002 P. Itey - INRIA 109

56 PLAN Les Servlets Cycle de vie d'une servlet Traitement des données de formulaires Gestion de l'état avec cookies et sessions Introduction aux JSP Intégrer JSP, Servlets et JavaBeans Les JSP en XML Les balises JSP personnalisées Règles de conception 07/11/2002 P. Itey - INRIA 110 Méthodes du cycle de vie La classe javax.servlet.servlet définit les méthodes qui permettent de contrôler le cycle de vie d'une servlet : void init() void service() void destroy() Elles sont héritées par la servlet et doivent être redéfinies 07/11/2002 P. Itey - INRIA 111

57 Les méthodes du cycle de vie import javax.servlet.*; import javax.servlet.http.*; public class SimpleServlet extends HttpServlet { public void init(servletconfig c) throws ServletException { } public void doxxx(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { } } public void destroy() { } 07/11/2002 P. Itey - INRIA 112 Les méthodes du cycle de vie void init() : une fois créée, la servlet est initialisée avec cette méthode : elle n'est appelée qu'une seule fois par le serveur au chargement initial. Similaire à un constructeur on peut y placer (par exemple) des connexions réseaux ou à une BD 07/11/2002 P. Itey - INRIA 113

58 Les méthodes du cycle de vie void service() : appelée automatiquement par le serveur à chaque requête cliente void destroy() : appelée qu'une seule fois quand la servlet est déchargée par le serveur et lorsque le serveur est arrêté. on y place la fermeture de connexions réseaux ou BD (souvent allouées par init() ) 07/11/2002 P. Itey - INRIA 114 Gestion des servlets par le moteur Créer un pool de threads Moteur de Servlets Thread Thread Instancier la servlet Servlet Appeler la méthode init() Requête HTTP 1 Requête HTTP 2 Réponse HTTP 1 Réponse HTTP 2 Affecter une requête à un thread Appeler la méthode service() Affecter une requête à un thread Terminer le pool de threads Appeler la méthode destroy() Appeler la méthode service() Initialisation Exécution service Exécution service 07/11/2002 P. Itey - INRIA 115

59 Servlets et concurrence Une seule servlet gère les requêtes de plusieurs clients Un thread est généré à chaque requête du client conséquences : les attributs de la servlet sont partagés, les variables des méthodes sont locales Pour des portions de code critique, utiliser synchronized 07/11/2002 P. Itey - INRIA 116 Implémenter SingleThreadModel javax.servlet.singlethreadmodel interface vide, ne contient aucune méthode Le moteur de servlet crée un pool d'objet servlet et passe les requêtes à un des objets libres public class HelloWWW extends HttpServlet implements SingleThreadModel { } 07/11/2002 P. Itey - INRIA 117

60 PLAN Les Servlets Cycle de vie d'une servlet Traitement des données de formulaires Gestion de l'état avec cookies et sessions Introduction aux JSP Intégrer JSP, Servlets et JavaBeans Les JSP en XML Les balises JSP personnalisées Règles de conception 07/11/2002 P. Itey - INRIA 118 Les formulaires HTML Permettent aux utilisateurs de saisir des données dans une interface graphique dans le Navigateur Mécanisme intégré pour envoyer des données au serveur WEB 07/11/2002 P. Itey - INRIA 119

61 Rappel : les balises de formulaire <FORM> : pour définir un formulaire <INPUT> : pour définir une interface : text, password, checkbox, radio, submit, reset <TEXTAREA> : zone de texte sur plusieurs lignes <SELECT> : liste déroulante 07/11/2002 P. Itey - INRIA 120 Envoyer les données du formulaire Attributs de la balise <FORM> ACTION : l'url où envoyer les données METHOD : la méthode HTTP (GET / POST) Les données sont envoyées quand l'utilisateur clique sur un bouton de type submit 07/11/2002 P. Itey - INRIA 121

62 Exemple de formulaire <FORM METHOD="POST" ACTION=" > Nom : <INPUT type="text" name="nom" /> <BR> <INPUT type="submit" value="envoyer" /> </FORM> 07/11/2002 P. Itey - INRIA 122 Les méthodes GET et POST GET : les champs du formulaire sont ajoutés à l'url de l'attribut ACTION sous une forme nom=valeur URL?nom1=val1&nom2=val2&... POST : les données sont passées dans le corps du message HTTP convient pour l'envoi de données binaires 07/11/2002 P. Itey - INRIA 123

63 Lire les données dans une servlet La méthode de HttpServletRequest : public String getparameter(string name) Dans le formulaire : <INPUT type="text" name="nom" /> Dans la méthode doxxx() : String n = req.getparameter("nom") 07/11/2002 P. Itey - INRIA 124 Lire les données dans une servlet public class ShowParameters extends HttpServlet { public void doget(httpservletrequest req,...) { out.println(req.getparameter( param1 )); Enumeration paramnames = req.getparameternames(); String[] paramvalues = req.getparametervalues(paramnames); } } 07/11/2002 P. Itey - INRIA 125

64 PLAN Les Servlets Cycle de vie d'une servlet Traitement des données de formulaires Gestion de l'état avec cookies et sessions Introduction aux JSP Intégrer JSP, Servlets et JavaBeans Les JSP en XML Les balises JSP personnalisées Règles de conception 07/11/2002 P. Itey - INRIA 126 HTTP : protocole sans états HTTP gère les paires requête/réponse ouverture, requête, réponse, fermeture HTTP : protocole sans états aucun historique des différentes requêtes n'est conservé les requêtes sont totalement indépendantes les unes des autres 07/11/2002 P. Itey - INRIA 127

65 Introduction : la gestion des états Une application WEB a besoin de savoir : quel utilisateur a émis la requête courante les requêtes déjà émises par l'utilisateur l'état général de l'application : nombre de visites, nombres de produits vendus, Il faut rajouter à HTTP un mécanisme de gestion des états 07/11/2002 P. Itey - INRIA 128 Qu'est ce qu'un cookie? Petit fragment d'information textuelle échangé entre le serveur WEB et le Navigateur collection de paires nom/valeur chargés dans la mémoire du Navigateur les cookies permanents sont aussi sauvegardés dans un fichier texte sur le client Ils font partie de l'en-tête HTTP 07/11/2002 P. Itey - INRIA 129

66 Qu'est ce qu'un cookie? Crées à l'origine par Netscape maintenant RFC 2109 Utilisés couramment pour mémoriser les préférences de l'utilisateur ou même pour l'identifier 07/11/2002 P. Itey - INRIA 130 Anatomie d'un cookie Partie Description Name Value Domain Path Max Age Secure Identité du cookie Valeur du cookie Nom du domaine qui l'a défini Information sur le chemin Temps d'expiration du cookie Vrai si cookie transmis avec SSL 07/11/2002 P. Itey - INRIA 131

67 Où les cookies sont-ils stockés? Netscape les stocke dans 1 seul fichier : cookies.txt Server:8080 FALSE /servlet FALSE Sport Foot domaine script chemin SSl? Date nom valeur client I.E. les stocke dans 1 fichier séparé par site dans c:\winnt\profiles\username\cookies 07/11/2002 P. Itey - INRIA 132 Cookie et sécurité? Jamais interprété ou exécuté : pas de virus Un cookie est limité à 4KB et les navigateurs se limitent à 300 cookies (20 par site) : pas de surcharge de disque Bien pour rendre privées des données non sensibles nom, adresse, mais pas No CB! mais ne constitue pas un traitement sérieux de la sécurité 07/11/2002 P. Itey - INRIA 133

68 Utiliser des cookies Depuis API 2.1, pris en charge par : javax.servlet.http.cookie Cette classe construit des cookies avec des paires nom/valeur : public Cookie(String name, String value) 07/11/2002 P. Itey - INRIA 134 Méthodes de Cookie Pour les fixer des attributs supplémentaires void setvalue(string val) définit la valeur du cookie void setmaxage(int expsec) nombre de secondes depuis le 01/01/70 par défaut -1 (expire quand on ferme le navigateur) 0 supprime le cookie 07/11/2002 P. Itey - INRIA 135

69 Méthodes de Cookie (suite) void setpath(string path) définit le chemin void setsecure(boolean flag) true si SSL, false par défaut void setdomain(string domaine) définit le domaine 07/11/2002 P. Itey - INRIA 136 Envoi des cookies Méthode addcookie() de la classe HttpServletResponse public void doget(httpservletrequest req, HttpServletResponse rep) { } Cookie c = new Cookie ("nom", "toto"); c.setmaxage(365*24*60*60); // 1 an rep.addcookie( c ); rep.setcontenttype("text/html"); 07/11/2002 P. Itey - INRIA 137

70 Lecture des cookies Le navigateur envoie automatiquement les cookies qui correspondent à domain et path Une servlet peut récupérer les cookies envoyés précédemment au navigateur méthode getcookies() de HttpServletRequest public Cookie[] getcookies() 07/11/2002 P. Itey - INRIA 138 Lecture des cookies Cookie [] cookies = request.getcookies(); String nom = getcookievalue(cookies, "nom", "non trouvé");... public static String getcookievalue( Cookie [] cookies, String cookiename, String defaultvalue) { for(int i=0; i < cookies.length; i++) { Cookie cookie = cookies[i]; if(cookiename.equals(cookie.getname()) return(cookie.getvalue()); } return(defaultvalue); } 07/11/2002 P. Itey - INRIA 139

71 Les sessions Une session peut se définir : une série d'interactions reliées entre un navigateur et un serveur WEB englobe plusieurs requêtes HTTP sur une période donnée Utilisées pour mémoriser les actions (requêtes HTTP) d'un utilisateur unique au cours du temps exple : opérations bancaires 07/11/2002 P. Itey - INRIA 140 Techniques de mémorisation Pour échanger les données d'identification de la session dans chaque requête : réécriture d'url champ de formulaire caché ("hidden") cookies utilisation des sessions avec les HttpSession 07/11/2002 P. Itey - INRIA 141

72 Réécriture d'url Principe : ajouter dans la chaîne de requête de la servlet des informations supplémentaires identifiant la session <a href=" heter</a> l'id utilisateur est transmis en même temps que la requête; il est accédé par chaque servlet mentionnée qui récupère les informations persistantes (BD, fichiers) à partir de cet ID 07/11/2002 P. Itey - INRIA 142 Réécriture d'url Limitations : données volumineuses, caractères autorisés, longueur URL, données visibles (sécurité) 07/11/2002 P. Itey - INRIA 143

73 Champs de formulaires cachés Principe : on cache les données de session dans des champs "hidden" : <INPUT TYPE="HIDDEN" NAME="uid" VALUE=itey"> Limitations : idem la "réécriture d'url" sauf pour la sécurité (utilisation de POST) 07/11/2002 P. Itey - INRIA 144 L'interface HttpSession Les objets HttpSession mémorisent les données de chaque utilisateur fonctionne comme une table de "hachage" stockée sur le serveur A chaque ID de session est associé, via la table de hachage, l'ensemble des informations 07/11/2002 P. Itey - INRIA 145

74 Identification des sessions 2 façons possibles d'échanger l'id de session : par défaut : les cookies (de session : non permanents) ajouter l'id de session à l'url (réécriture d'url) L'implémentation est dépendante du moteur de Servlets 07/11/2002 P. Itey - INRIA 146 Identification des session Pseudo-algorithme : si GET : regarder la requête si POST : regarder dans l'en-tête HTTP Sinon, rechercher un cookie "sessionid" Vérifier l'existence de la session si oui, retourner la session sinon: nouvel ID = tps courant + nb aléatoire 07/11/2002 P. Itey - INRIA 147

75 Identification des session Pseudo-algorithme (suite) : Si le navigateur accepte les cookies, en ajouter 1 à la réponse sinon dans l'url Enregistrer la session avec le nouvel ID 07/11/2002 P. Itey - INRIA 148 Utiliser HttpSession 2 étapes pour la mémorisation des sessions 1- obtenir l'objet de session de l'utilisateur 2- mémoriser / extraire les informations dans / de la session de l'utilisateur 07/11/2002 P. Itey - INRIA 149

76 Obtenir l'objet de session 2 méthodes de HttpServletRequest : HttpSession getsession() : retourne la session courante, si elle n'existe pas, elle est créée HttpSession getsession(boolean create) : idem sauf que la session n'est créée que si create = true, sinon retourne null 07/11/2002 P. Itey - INRIA 150 Mémoriser et extraire les données Une fois la session obtenue, on peut mémoriser et extraire les données grâce aux méthodes de HttpSession : void putvalue(string name, Object Val) Object getvalue(string name) 07/11/2002 P. Itey - INRIA 151

77 Mémoriser et extraire les données HttpSession session = request.getsession(); session.putvalue( "table", newarraylist()); ArrayList tab = (ArrayList)session.getValue("table"); 07/11/2002 P. Itey - INRIA 152 Autres méthodes de HttpSession boolean isnew() : retourne true si nouvelle session void invalidate() : invalide la session et supprime les associations nom / valeur 07/11/2002 P. Itey - INRIA 153

78 Autres méthodes de HttpSession Les moteurs de servlets gèrent un timeout de durée de vie des sessions : int getmaxinactiveinterval() : retourne l'intervalle maximal d'inactivité en secondes void setmaxinactiveinterval : définit l'intervalle maximal d'inactivité en secondes 07/11/2002 P. Itey - INRIA 154 Autres méthodes de HttpRequest String getrequestedsessionid() : retourne l'id de session boolean isrequestedsessionidfromcookie() retourne true si l'id de session a été passé dans un cookie boolean isrequestedsessionidfromurl() retourne true si l'id des session a été passé dans l'url 07/11/2002 P. Itey - INRIA 155

79 Utiliser HttpSession sans cookies L'implémentation par défaut de HttpSession utilise les cookies si les cookies ne sont pas autorisés par le navigateur, la mémorisation des sessions ne fonctionne pas Autre solution : la réécriture d'url ajouter l'id de session à la fin de l'url la réécriture d'url doit être activée sur le serveur 07/11/2002 P. Itey - INRIA 156 Réécriture d'url Méthodes de HttpServletRequest : String encodeurl(string url) encode l'url en ajoutant l'id de session si les cookies sont désactivés String encoderedirecturl(string url) encode l'url avant de rediriger le Navigateur 07/11/2002 P. Itey - INRIA 157

80 PLAN Les Servlets Cycle de vie d'une servlet Traitement des données de formulaires Gestion de l'état avec cookies et sessions Introduction aux JSP Intégrer JSP, Servlets et JavaBeans Les JSP en XML Les balises JSP personnalisées Règles de conception 07/11/2002 P. Itey - INRIA 158 JSP : Java Server Page La plupart des applications Web produisent des pages HTML dynamiquement en modifiant uniquement les champs de données et pas la structure de base de la page. Les JSP sont la technologie la plus appropriée pour ce type de contenu. 07/11/2002 P. Itey - INRIA 159

81 JSP : Java Server Page (suite) Une page JSP contient un modèle de document statique et des balises spécifiques pour inclure du texte ou exécuter une partie de la logique applicative. Le contenu statique est servi comme du HTML normal. 07/11/2002 P. Itey - INRIA 160 JSP : Java Server Page Une JSP est un fichier texte (.jsp ) contenant du code HTML et des fragments de code Java contenus dans des balises spécifiques, exécutés sur le serveur WEB Versions 1.0 et maintenant 1.2 En fait, le fichier JSP est traduit en servlet qui est compilée, puis instanciée lors de son invocation via une URL 07/11/2002 P. Itey - INRIA 161

82 Principe de fonctionnement Requête client La JSP demandée est-elle chargée NON Traduire le code en servlet source Compiler et charger la servlet Réponse JSP OUI OUI Le fichier.jsp a-t-il été modifié depuis la dernière traduction NON Exécuter la servlet 07/11/2002 P. Itey - INRIA 162 Les balises JSP 3 types : des directives : instructions qui contrôlent le comportement du compilateur de pages JSP, et qui sont donc évaluées avant la compilation, des éléments de scripts (scriptlets) : blocs d instructions Java inclus dans la page JSP entre des délimiteurs <% et %>. 07/11/2002 P. Itey - INRIA 163

83 Les balises JSP (suite) des balises personnalisées (custom tags ou custom actions): elles sont définies par le programmeur et génèrent du contenu dynamique lorsque la page est demandée. 07/11/2002 P. Itey - INRIA 164 Un exemple simple de JSP <html><head><title>un exemple de page JSP</title></head><body> <!-- définit les informations globales a la page --> <%@page language="java" %> <!-- Déclare la variable c --> <%! char c = 0; %> <!-- Scriplet (code java) %> <% for(int i = 0; i < 26; i++){ for(int j = 0; j < 26; j++){ c = (char)(0x41 + (26 - i + j)%26); %> <%= c %> <% } %> <br> <% } %> </body></html> 07/11/2002 P. Itey - INRIA 165

84 4 types d'éléments dans une JSP Nom Tag Traduction Servlet Directives %> pour l'ensemble page de la page include Déclarations <%! %> en dehors de service() Scriptlets <% %> dans service() méthodes et variables de la servlet Expressions <%= %> dans service() 07/11/2002 P. Itey - INRIA 166 Les scriptlets : <% %> Contient du code JAVA tout code JAVA valide Objet out pour produire de la sortie HTML, objets request et response Se transforme dans la méthode _jspservice() de la servlet les variables sont locales à la méthode les blocs de code s'insèrent dans la servlet 07/11/2002 P. Itey - INRIA 167

85 Les scriptlets : exemple <% String[] noms = {"titi", "toto"}; for(int i = 0; i < noms.length; i++){ out.println(noms[i]); } %> 07/11/2002 P. Itey - INRIA 168 Les expressions : <%= %> Pour évaluer une expression ou un objet Java et renvoyer sa valeur : retourne une version String de l'expression raccourci pour <% out.println( ); %> Se transforme en out.println( ) dans la méthode _jspservice( ) de la servlet 07/11/2002 P. Itey - INRIA 169

86 Les expressions : exemple <% String[] noms = {"titi", "toto"}; for(int i = 0; i < noms.length; i++){ %> Le nom <%= i %> ième nom est <%= noms[i] %> <% } %> 07/11/2002 P. Itey - INRIA 170 Les déclarations : <%! %> Pour déclarer des méthodes à l'échelle de la page (méthodes de la servlet générée) les méthodes ne sont exécutées que si elles sont appelées explicitement on peut aussi déclarer des attributs Se transforme en déclarations de champs et méthodes au niveau de la servlet 07/11/2002 P. Itey - INRIA 171

87 Les déclarations : exemple <%! private int accesscount = 0; private int incrementcount() {return accesscount++;} %> <H2>Nombre et liste des articles</h2> Nombre d'articles : <%= incrementcount() %> 07/11/2002 P. Itey - INRIA 172 Directives <%@ directive attribut1="valeur" attribut2="valeur"... %> 2 directives possibles (jsp1.1) : page : informations relatives à la page include : fichiers à inclure littéralement 07/11/2002 P. Itey - INRIA 173

88 La directive : <%@page %> Valeurs possibles : <%@ page language="java" <%@ page import="java.util.*, java.net.*" %> <%@ page contenttype="text/plain" %> <%@ page session="true false " %> <%@ page errorpage="pathtoerrorpage" %> <%@ page iserrorpage="true false" %> <%@ page 07/11/2002 P. Itey - INRIA 174 La directive : <%@include %> Valeurs possibles : <%@ include file="chemin relatif du fichier" %> pour se référer au home dir du serveur Web : <%@ include file="/toto.html" %> Interprété littéralement, le fichier peut être HTML, scripting elements, directives, actions,... L'insertion se fait au moment de la traduction de la page... 07/11/2002 P. Itey - INRIA 175

89 Technique de gestion des erreurs Une exception Java peut être déclenchée et gérée par la JSP On peut ainsi spécifier une page d'erreur séparée pour la JSP placer une directive de page pour errorpage au début du fichier errorpage="err.jsp" %> permet d'ôter le code d'erreur de la JSP un objet Exception est passé à la page d'erreur 07/11/2002 P. Itey - INRIA 176 Développer la page d'erreur Elle est identifiée par une directive de page en début de fichier : <@page iserrorpage="true" %> 07/11/2002 P. Itey - INRIA 177

Web Tier : déploiement de servlets

Web Tier : déploiement de servlets Web Tier : déploiement de servlets 1 / 35 Plan 1 Introduction 2 Servlet : Principe de fonctionnement 3 Création et développement sur un serveur JEE 4 Quelques méthodes de l API des servlets 5 Utilisation

Plus en détail

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

Avant-propos 1. Avant-propos...3 2. Organisation du guide...3 3. À qui s'adresse ce guide?...4 Les exemples cités tout au long de cet ouvrage sont téléchargeables à l'adresse suivante : http://www.editions-eni.fr. Saisissez la référence ENI de l'ouvrage EP5EJAV dans la zone de recherche et validez.

Plus en détail

Module BD et sites WEB

Module BD et sites WEB Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet Anne.Doucet@lip6.fr 1 Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD

Plus en détail

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.

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. ASTRIUM - Toulouse JEE Formation 2013 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. Figure 1 Architecture

Plus en détail

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

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants

Plus en détail

JavaServer Pages (JSP)

JavaServer Pages (JSP) JavaServer Pages (JSP) XVIII-1 Prérequis pour ce cours Ce cours a trait à la programmation Java coté serveur Il faut connaître un minimum de technologie J2EE Il faut connaître les servlets XVIII-2 Motivation

Plus en détail

Mise en œuvre des serveurs d application

Mise en œuvre des serveurs d application Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés

Plus en détail

Compte Rendu d intégration d application

Compte Rendu d intégration d application ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...

Plus en détail

Java pour le Web. Cours Java - F. Michel

Java pour le Web. Cours Java - F. Michel Java pour le Web Cours Java - F. Michel Introduction à JEE 6 (ex J2EE) Historique Qu'est-ce que JEE JEE : Java Entreprise Edition (ex J2EE) 1. Une technologie outils liés au langage Java + des spécifications

Plus en détail

HTTP 1.1. HyperText Transfer Protocol ... ... TCP IP ...

HTTP 1.1. HyperText Transfer Protocol ... ... TCP IP ... HTTP 1.1 Place de http dans le modèle osi : HyperText Transfer Protocol...... TCP IP...... HTTP est un protocole «sans état» : chaque page WEB est transmise dans une connexion séparée (sauf pour les connections

Plus en détail

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean. Plan du cours 2 Introduction générale : fondamentaux : les fondamentaux Michel Buffa (buffa@unice.fr), UNSA 2002, modifié par Richard Grin (version 1.1, 21/11/11), avec emprunts aux supports de Maxime

Plus en détail

Le développement d applications Web

Le développement d applications Web Le développement d applications Web Plan Principes des applications Web Origine et utilité des Servlets Présentation des Servlets Les JSP La Standard TAG Library Servlet, JSP et accès aux SGBD Les technologies

Plus en détail

10. Base de données et Web. OlivierCuré [ocure@univ-mlv.fr]

10. Base de données et Web. OlivierCuré [ocure@univ-mlv.fr] 10. Base de données et Web 313 Evolution de l'information Ordre de grandeur : 314 1Mo : 1 gros roman 200Mo : ce que mémorise un être humain dans sa vie. 900Mo : information contenue dans le génome d'une

Plus en détail

1. Installation d'un serveur d'application JBoss:

1. Installation d'un serveur d'application JBoss: EPITA Ala Eddine BEN SALEM App-Ing2 J2EE T.P. 4 EJB3, Serveur d'application JBoss 1. Installation d'un serveur d'application JBoss: télécharger l'archive du serveur JBoss à l'adresse: http://sourceforge.net/projects/jboss/files/jboss/jboss-5.0.0.ga/jboss-5.0.0.ga.zip/download

Plus en détail

Application web de gestion de comptes en banques

Application web de gestion de comptes en banques Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion

Plus en détail

Introduction à la plateforme J2EE

Introduction à la plateforme J2EE Introduction à la plateforme J2EE Auteur : Oussama Essefi Directeur technique Expert Consulting Oussama.essefi@expert-consulting.biz Copyright 2010 Expert Consulting Page 1 1. Introduction 1.1. Pourquoi

Plus en détail

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

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués Architecture JEE. Objectifs attendus Serveurs d applications JEE Systèmes distribués Architectures JEE Normes JEE couches logicielles, n-tiers framework JEE et design patterns 2007/02/28 Eric Hébert.eheb@yahoo.fr

Plus en détail

Environnements de Développement

Environnements de Développement Institut Supérieur des Etudes Technologiques de Mahdia Unité d Enseignement: Environnements de Développement BEN ABDELJELIL HASSINE Mouna m.bnaj@yahoo.fr Développement des systèmes d Information Syllabus

Plus en détail

Application Web et J2EE

Application Web et J2EE Application Web et J2EE Servlet, JSP, Persistence, Méthodologie Pierre Gambarotto Département Informatique et Math appli ENSEEIHT Plan Introduction 1 Introduction Objectfis

Plus en détail

Les architectures 3-tiers Partie I : les applications WEB

Les architectures 3-tiers Partie I : les applications WEB Les architectures 3-tiers Partie I : les applications WEB 1 Evolutions logicielles Des objets aux composants... Objets JavaBeans, Objets ActiveX, Objets COM,... 1 Evolutions logicielles Des objets aux

Plus en détail

Sage CRM. 7.2 Guide de Portail Client

Sage CRM. 7.2 Guide de Portail Client Sage CRM 7.2 Guide de Portail Client Copyright 2013 Sage Technologies Limited, éditeur de ce produit. Tous droits réservés. Il est interdit de copier, photocopier, reproduire, traduire, copier sur microfilm,

Plus en détail

Projet de Veille Technologique

Projet de Veille Technologique Projet de Veille Technologique Programmation carte à puce - JavaCard Ing. MZOUGHI Ines (i.mzoughi@gmail.com) Dr. MAHMOUDI Ramzi (mahmoudr@esiee.fr) TEST Sommaire Programmation JavaCard Les prérequis...

Plus en détail

Architectures web/bases de données

Architectures web/bases de données Architectures web/bases de données I - Page web simple : HTML statique Le code HTML est le langage de base pour concevoir des pages destinées à être publiées sur le réseau Internet ou intranet. Ce n'est

Plus en détail

Java Naming and Directory Interface

Java Naming and Directory Interface Introduction Java Naming and Directory Interface Gaël Thomas gael.thomas@lip6.fr Université Pierre et Marie Curie Master Informatique M2 Spécialité SAR Java Naming and Directory Interface (JNDI) Java Standard

Plus en détail

SIO-65291 Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

SIO-65291 Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault SIO-65291 Page 1 de 5 1- Objectifs généraux Applications Web dynamiques Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault acquérir les principes et concepts fondamentaux dans le domaine d'applications

Plus en détail

Messagerie asynchrone et Services Web

Messagerie asynchrone et Services Web Article Messagerie asynchrone et Services Web 1 / 10 Messagerie asynchrone et Services Web SOAP, WSDL SONT DES STANDARDS EMERGEANT DES SERVICES WEB, LES IMPLEMENTATIONS DE CEUX-CI SONT ENCORE EN COURS

Plus en détail

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

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/

Plus en détail

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe

Plus en détail

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application Architecture Multi-Tier Traditionnellement une application informatique est un programme exécutable sur une machine qui représente la logique de traitement des données manipulées par l application. Ces

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Architecture Orientée Service, JSON et API REST

Architecture Orientée Service, JSON et API REST UPMC 3 février 2015 Précedemment, en LI328 Architecture générale du projet Programmation serveur Servlet/TOMCAT Aujourd hui Quelques mots sur les SOA API - REST Le format JSON API - REST et Servlet API

Plus en détail

Programmation par composants (1/3) Programmation par composants (2/3)

Programmation par composants (1/3) Programmation par composants (2/3) Programmation par composants (1/3) La programmation par composant vise le développement de logiciel par aggrégation de briques logicielles existantes est indépendante de la POO La programmation par composant

Plus en détail

Création de formulaires interactifs

Création de formulaires interactifs SESSION 16 Création de formulaires interactifs Programme de la session Lancer un sondage en utilisant divers éléments d'entrée de formulaire Traiter les entrées utilisateur Activer un script à partir d'un

Plus en détail

2 Chapitre 1 Introduction

2 Chapitre 1 Introduction 1 Introduction Ce livre présente les Enterprise JavaBeans 2.0 et 1.1 qui constituent la troisième et la deuxième version de la spécification des Enterprise JavaBeans. Tout comme la plate-forme Java a révolutionné

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012

TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012 TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012 FORMULAIRE DE CONTACT POUR PORTFOLIO PRINCIPE GENERAL Nous souhaitons réaliser un formulaire de contact comprenant les champs suivants : NOM PRENOM ADRESSE MAIL MESSAGE

Plus en détail

Vulgarisation Java EE Java EE, c est quoi?

Vulgarisation Java EE Java EE, c est quoi? Paris, le 1 Février 2012 Vulgarisation Java EE Java EE, c est quoi? Sommaire Qu est ce que Java? Types d applications Java Environnements Java Versions de Java Java EE, c est quoi finalement? Standards

Plus en détail

Nouvelles Plateformes Technologiques

Nouvelles Plateformes Technologiques Cycle de présentation du développement Nouvelles Plateformes Technologiques Observatoire Technologique, CTI Observatoire Technologique 4 mai 2004 p 1 Plan de la présentation 1. Historique du projet 2.

Plus en détail

WebSSO, synchronisation et contrôle des accès via LDAP

WebSSO, synchronisation et contrôle des accès via LDAP 31 mars, 1er et 2 avril 2009 WebSSO, synchronisation et contrôle des accès via LDAP Clément Oudot Thomas Chemineau Sommaire général Synchronisation d'identités WebSSO et contrôle des accès Démonstration

Plus en détail

Cours CCNA 1. Exercices

Cours CCNA 1. Exercices Cours CCNA 1 TD3 Exercices Exercice 1 Enumérez les sept étapes du processus consistant à convertir les communications de l utilisateur en données. 1. L utilisateur entre les données via une interface matérielle.

Plus en détail

Livre Blanc WebSphere Transcoding Publisher

Livre Blanc WebSphere Transcoding Publisher Livre Blanc WebSphere Transcoding Publisher Introduction WebSphere Transcoding Publisher vous permet d'offrir aux utilisateurs des informations Web adaptées à leurs besoins. Il vous permet, par exemple,

Plus en détail

Auto-évaluation Aperçu de l architecture Java EE

Auto-évaluation Aperçu de l architecture Java EE Auto-évaluation Aperçu de l architecture Java EE Document: f1218test.fm 22/03/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION APERÇU

Plus en détail

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

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. Note technique W4 Engine Extension SSO Java Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. 1 Présentation 3 2 Custom SSO Java 4 3 Bilan 10 Sommaire Référence

Plus en détail

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce

Plus en détail

Manuel d'installation

Manuel d'installation CyberMUT P@iement P@iement CIC P@iement OBC SERVICE SECURISE DE PAIEMENT INTERNET PAR CARTE BANCAIRE (Sécurisé par le protocole SSL) Manuel d'installation (Document 2/2) EURO Sp.Tech. 1.2.8 Octobre 2001

Plus en détail

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Gaël de Chalendar CEA LIST / LIC2M Journée de Présentation des Technologies WebContent INSTN 14/12/2009 Présentation de gsoap Plan

Plus en détail

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres

Plus en détail

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1 E-TRANSACTIONS Guide du programmeur API Plug-in Version 1.1 Avertissements : Le fichier Version.txt précise l'environnement dans lequel l API a été compilée et testée. L'installation de l API sur tout

Plus en détail

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme 1 2 c est quoi? Technologie développée par SUN Microsystems lancée en 1995 Dans un des premiers papiers* sur le langage JAVA, SUN le décrit

Plus en détail

Traitement des données de formulaires. Accès aux BD avec JDBC Servlets - M. Baron - Page

Traitement des données de formulaires. Accès aux BD avec JDBC Servlets - M. Baron - Page Organisation du cours sur les Servlets Servlets et API Traitement des données de formulaires Architecture de développement Cycle de vie Suivi de session Collaboration de Servlets Sécurité : authentification

Plus en détail

RENDRE VOS APPLICATIONS JAVA PLUS EFFICACES Ce qu'il faut savoir

RENDRE VOS APPLICATIONS JAVA PLUS EFFICACES Ce qu'il faut savoir WHITE PAPER RENDRE VOS APPLICATIONS JAVA PLUS EFFICACES Ce qu'il faut savoir JAVA APPLICATION MANAGEMENT ET APPLICATION J2EE. Table des matières INTRODUCTION...2 NAVIGATEURS...2 SERVEURS WEB...3 JVM...3

Plus en détail

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation

Plus en détail

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée

Plus en détail

Refonte front-office / back-office - Architecture & Conception -

Refonte front-office / back-office - Architecture & Conception - Refonte front-office / back-office - Architecture & Conception - GLG204 - Architectures Logicielles Java 2008/2009 Nom : Cédric Poisson Matricule : 06-49012 Version : 1.0 Jeudi 28 mai 2009 1 / 23 Table

Plus en détail

et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7

et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7 Tsoft et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7 OEM Console Java OEM Console HTTP OEM Database Control Oracle Net Manager 6 Module 6 : Oracle Enterprise Manager Objectifs Contenu A la fin de ce module,

Plus en détail

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Au cours de ce TP, vous allez voir comment PHP permet aux utilisateurs, une interaction avec

Plus en détail

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau) CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.

Plus en détail

Héritage presque multiple en Java (1/2)

Héritage presque multiple en Java (1/2) Héritage presque multiple en Java (1/2) Utiliser deux classes ou plus dans la définition d'une nouvelle classe peut se faire par composition. class Etudiant{ int numero; Diplome d; float passeexamen(examen

Plus en détail

J2EE - Introduction. Développement web - Java. Plan du chapitre

J2EE - Introduction. Développement web - Java. Plan du chapitre Développement web - Java J2EE - Introduction Franck Denoël Master 2 ICA, UPMF Année académique 2007-2008 Franck Denoël Master 2 ICA, UPMF Année académique 2007-2008 Plan du chapitre J2EE Présentation J2EE

Plus en détail

Hébergement de sites Web

Hébergement de sites Web Hébergement de Solutions complètes et évolutives pour l hébergement de sites Web dynamiques et de services Web sécurisés. Fonctionnalités Serveur Web Apache hautes performances Apache 1. et.0 1 avec prise

Plus en détail

PHP 5.4 Développez un site web dynamique et interactif

PHP 5.4 Développez un site web dynamique et interactif Editions ENI PHP 5.4 Développez un site web dynamique et interactif Collection Ressources Informatiques Table des matières Table des matières 1 Chapitre 1 Introduction 1. Objectif de l'ouvrage.............................................

Plus en détail

Outil de planification en ligne pour des créations de rendez-vous ou de sondage

Outil de planification en ligne pour des créations de rendez-vous ou de sondage Outil de planification en ligne pour des créations de rendez-vous ou de sondage Centre de Ressources Informatiques (C.R.I.) d'orléans Université d'orléans 4-6 rue Léonard de Vinci, 45061 Orléans Cedex

Plus en détail

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Programmation Web. Introduction

Programmation Web. Introduction Programmation Web Introduction 1 Introduction 10 séances 1 h cours + 1h TD Notes : contrôle continu DS 1 TP : note de groupe : rapport + code source + démo TD : note personnelle (=0 si 2 absences non justifiées)

Plus en détail

SITE WEB E-COMMERCE ET VENTE A DISTANCE

SITE WEB E-COMMERCE ET VENTE A DISTANCE Développement d une application JAVA EE SITE WEB E-COMMERCE ET VENTE A DISTANCE PLAN PROJET Binôme ou monôme (B/M): M Nom & Prénom : AIT NASSER Btissam Email : aitnasser.btissam123@gmail.com GSM : Organisme

Plus en détail

JOnAS 5. Serveur d application d

JOnAS 5. Serveur d application d JOnAS 5 Serveur d application d dynamique Agenda En quelques mots Caractéristiques essentielles Zoom sur le versioning 2 Bull, 2008 Serveur d application dynamique JOnAS - Serveur d application Open Source

Plus en détail

Bases Java - Eclipse / Netbeans

Bases Java - Eclipse / Netbeans Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Hébergement de site web Damien Nouvel

Hébergement de site web Damien Nouvel Hébergement de site web Plan L'hébergeur Le serveur web Apache Sites dynamiques 2 / 27 Plan L'hébergeur Le serveur web Apache Sites dynamiques 3 / 27 L'hébergeur L'hébergeur sous-traite l'architecture

Plus en détail

Jacques Lonchamp. Conception. d applications en Java/JEE. Principes, patterns et architectures

Jacques Lonchamp. Conception. d applications en Java/JEE. Principes, patterns et architectures Jacques Lonchamp Conception d applications en Java/JEE Principes, patterns et architectures Illustration de couverture : Abstract triangle mosaic background karandaev - Fotolia.com Dunod, 2014 5 rue Laromiguière,

Plus en détail

Composants Logiciels. Le modèle de composant de CORBA. Plan

Composants Logiciels. Le modèle de composant de CORBA. Plan Composants Logiciels Christian Pérez Le modèle de composant de CORBA Année 2010-11 1 Plan Un rapide tour d horizon de CORBA 2 Introduction au modèle de composant de CORBA Définition de composants CORBA

Plus en détail

Préparer la synchronisation d'annuaires

Préparer la synchronisation d'annuaires 1 sur 6 16/02/2015 14:24 En utilisant ce site, vous autorisez les cookies à des fins d'analyse, de pertinence et de publicité En savoir plus France (Français) Se connecter Rechercher sur TechNet avec Bing

Plus en détail

RMI le langage Java XII-1 JMF

RMI le langage Java XII-1 JMF Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine

Plus en détail

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

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux Formation Webase 5 Ses secrets, de l architecture MVC à l application Web Adrien Grand Centrale Réseaux Sommaire 1 Obtenir des informations sur Webase 5 2 Composants de Webase 5 Un

Plus en détail

L3 informatique TP n o 2 : Les applications réseau

L3 informatique TP n o 2 : Les applications réseau L3 informatique TP n o 2 : Les applications réseau Sovanna Tan Septembre 2009 1/20 Sovanna Tan L3 informatique TP n o 2 : Les applications réseau Plan 1 Transfert de fichiers 2 Le Courrier électronique

Plus en détail

MOTEUR DE WORKFLOW Mise en oeuvre d'openwfe Version 1.0-25 septembre 2006

MOTEUR DE WORKFLOW Mise en oeuvre d'openwfe Version 1.0-25 septembre 2006 MOTEUR DE WORKFLOW Mise en oeuvre d'openwfe Version 1.0-25 septembre 2006 SOMMAIRE 1 AVANT PROPOS...3 2 PRÉSENTATION...4 2.1 Quelques définitions...4 2.2 Besoins d'intégration d'un moteur de workflow...4

Plus en détail

Apache Tomcat 6. Guide d'administration du serveur Java EE sous Windows et Linux. Résumé. Étienne LANGLET

Apache Tomcat 6. Guide d'administration du serveur Java EE sous Windows et Linux. Résumé. Étienne LANGLET Apache Tomcat 6 Guide d'administration du serveur Java EE sous Windows et Linux Étienne LANGLET Résumé Ce livre sur Apache Tomcat 6 s adresse à toute personne appelée à mettre en oeuvre ce serveur sous

Plus en détail

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Architecture d'entreprise : Guide Pratique de l'architecture Logique Guides Pratiques Objecteering Architecture d'entreprise : Guide Pratique de l'architecture Logique Auteur : Version : 1.0 Copyright : Softeam Equipe Conseil Softeam Supervisée par Philippe Desfray Softeam

Plus en détail

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige. : JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL

Plus en détail

Plan. Department of Informatics

Plan. Department of Informatics Plan 1. Application Servers 2. Servlets, JSP, JDBC 3. J2EE: Vue d ensemble 4. Distributed Programming 5. Enterprise JavaBeans 6. Enterprise JavaBeans: Special Topics 7. Prise de recul critique Enterprise

Plus en détail

Application de lecture de carte SESAM-Vitale Jeebop

Application de lecture de carte SESAM-Vitale Jeebop Application de lecture de carte SESAM-Vitale Jeebop Présentation Le module de lecture de carte SESAM-Vitale Jeebop est une application Java Web Start, c'est à dire une application Java qui se télécharge

Plus en détail

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

A DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT DOCUMENTATION CAS A DESTINATION DES SERVICES TIERS Titre descriptif du document Référence du document REFO-DT-ENTV2-ServeurCAS-v1.2.docx Nom du fichier REFO-DT-ENTV2-ServeurCAS-v1.2.docx Version du document

Plus en détail

E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com

E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com - 5, rue Soutrane - 06560 Valbonne Sophia-Antipolis E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com NQI Orchestra 3.3 - Guide d'installation Windows.................................................................

Plus en détail

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

Authentification et contrôle d'accès dans les applications web Authentification et contrôle d'accès dans les applications web Quelques Rappels Objectifs : contrôler que seulement Certains utilisateurs Exécutent certaines opérations Sur certains objets Trois entités

Plus en détail

Projet gestion d'objets dupliqués

Projet gestion d'objets dupliqués Projet gestion d'objets dupliqués Daniel Hagimont Daniel.Hagimont@enseeiht.fr 1 Projet Service de gestion d'objets dupliqués Mise en cohérence lors de la prise d'un verrou sur un objet Pas de verrous imbriqués

Plus en détail

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 1 BERNIER François http://astronomie-astrophotographie.fr Table des matières Installation d un serveur HTTP (Hypertext Transfer

Plus en détail

Documentation CAS à destination des éditeurs

Documentation CAS à destination des éditeurs Documentation CAS à destination des éditeurs Sommaire Préambule... 1 Présentation de CAS...2 Intérêt... 2 Fonctionnement de base...2 Synoptique des échanges (1ère connexion)... 2 Synoptique des échanges

Plus en détail

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères FORMATION PcVue Mise en œuvre de WEBVUE Journées de formation au logiciel de supervision PcVue 8.1 Lieu : Lycée Pablo Neruda Saint Martin d hères Centre ressource Génie Electrique Intervenant : Enseignant

Plus en détail

Le service FTP. M.BOUABID, 04-2015 Page 1 sur 5

Le service FTP. M.BOUABID, 04-2015 Page 1 sur 5 Le service FTP 1) Présentation du protocole FTP Le File Transfer Protocol (protocole de transfert de fichiers), ou FTP, est un protocole de communication destiné à l échange informatique de fichiers sur

Plus en détail

Authentification avec CAS sous PRONOTE.net 2011. Version du lundi 19 septembre 2011

Authentification avec CAS sous PRONOTE.net 2011. Version du lundi 19 septembre 2011 1 Authentification avec CAS sous PRONOTE.net 2011 Version du lundi 19 septembre 2011 2 1 - Vocabulaire employé et documentation... 3 1.1 - SSO (Single Sign-On)... 3 1.2 - CAS (Central Authentication Service)...

Plus en détail

Formation en Logiciels Libres. Fiche d inscription

Formation en Logiciels Libres. Fiche d inscription République Tunisienne Ministère de l'industrie et la Technologie - Secrétariat d'état de la Technologie Unité des Logiciels Libres Formation en Logiciels Libres Fiche d inscription (Une fiche par candidat)

Plus en détail

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. RMI Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. Méthode proche de RPC. Outils et classes qui rendent l'implantation d'appels de méthodes d'objets distants aussi simples

Plus en détail

TAGREROUT Seyf Allah TMRIM

TAGREROUT Seyf Allah TMRIM TAGREROUT Seyf Allah TMRIM Projet Isa server 2006 Installation et configuration d Isa d server 2006 : Installation d Isa Isa server 2006 Activation des Pings Ping NAT Redirection DNS Proxy (cache, visualisation

Plus en détail

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet TP Composants Java ME - Java EE Vous allez, dans ce TP, construire une architecture client serveur, plus précisément MIDlet cliente, servlet serveur. Pour cela, on va d'abord installer la partie serveur

Plus en détail

JOnAS Day 5.1. Outils de développements

JOnAS Day 5.1. Outils de développements JOnAS Day 5.1 Outils de développements Agenda Introduction Plugin Eclipse (JOPE) Plugin NetBeans (JOnbAS) Cargo 2 Bull, 2009 JOnAS Day 5.1 Objectifs - Réduire les temps de développement - Construction

Plus en détail

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

Failles XSS : Principes, Catégories Démonstrations, Contre mesures HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet Séminaire 15 ans HSC Failles XSS : Principes, Catégories Démonstrations,

Plus en détail

Introduction aux «Services Web»

Introduction aux «Services Web» Introduction aux «Services Web» Sana Sellami sana.sellami@univ-amu.fr 2014-2015 Modalité de contrôle de connaissances Note de contrôle de continu Note projet Evaluation du projet la semaine du 17 novembre

Plus en détail

JOnAS Day 5.1. Clustering

JOnAS Day 5.1. Clustering JOnAS Day 5.1 Clustering Solution complète de clustering Répartition de charge & bascule sur échec Application Web avec mod_jk/mod_proxy Connecteur http pour md_proxy Application Ejb avec CMIv2 Réplication

Plus en détail