La plate-forme J2EE LPRO CMSII. Olivier Flauzac. olivier.flauzac@univ-reims.fr



Documents pareils
Web Tier : déploiement de servlets

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.

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

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

Environnements de Développement

Introduction à la plateforme J2EE

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

HTTP 1.1. HyperText Transfer Protocol TCP IP ...

10. Base de données et Web. OlivierCuré

Compte Rendu d intégration d application

Mise en œuvre des serveurs d application

JavaServer Pages (JSP)

Java Naming and Directory Interface

Hébergement de sites Web

JOnAS 5. Serveur d application d

Le développement d applications Web

Nouvelles Plateformes Technologiques

Java pour le Web. Cours Java - F. Michel

Application Web et J2EE

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

Single Sign-On open source avec CAS (Central Authentication Service)

Formation en Logiciels Libres. Fiche d inscription

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

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

JOnAS Day 5.1. Outils de développements

Architecture Orientée Service, JSON et API REST

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

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

Méta-annuaire LDAP-NIS-Active Directory

EXA1415 : Annotations

Groupe Eyrolles, 2005, ISBN :

Catalogue des Formations Techniques

Ré-architecture et migration d une application standalone vers un serveur applicatif multi-tiers dans un contexte JAVA-SAP

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

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

arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole :

IBM DB2 Alphablox. d administration GC

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

Groupe Eyrolles, 2004 ISBN :

Projet. But: consultation en temps réel d événements (cours de bourse, trafic d envoi SMS ) sur des téléphones portables. Serveur de diffusion

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

Les architectures 3-tiers Partie I : les applications WEB

Les processus métiers : concepts, modèles et systèmes

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

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

Module BD et sites WEB

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

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

TD sur JMS ) Qu est-ce qu un middleware orienté message (MOM)? Quelles différences faites-vous entre un MOM et JMS?

Introduction à Sign&go Guide d architecture

4. SERVICES WEB REST 46

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

Application web de gestion de comptes en banques

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM)

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

Développement des Systèmes d Information

2 Chapitre 1 Introduction

Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source JShaft

TP1. Outils Java Eléments de correction

Introduction à Java. Philippe Genoud.

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

Le passage à l échelle de serveur J2EE : le cas des EJB

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

Bases Java - Eclipse / Netbeans

Ce document décrit une solution de single sign-on (SSO) sécurisée permettant d accéder à Microsoft Exchange avec des tablettes ou smartphones.

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Applications et Services WEB: Architecture REST

Sun Java System Access Manager Notes de version pour Microsoft Windows

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE

Etude de l ENT de l Université de Paris 5. Mise en place d outils de suivi de la charge de l ENT (monitoring)

Le modèle client-serveur

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

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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)

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)

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

BMC Middleware Management

Programmation Internet

Initiation à JAVA et à la programmation objet.

Perso. SmartCard. Mail distribution. Annuaire LDAP. SmartCard Distribution OCSP. Codes mobiles ActivX Applet. CRLs

Programmation Web. Madalina Croitoru IUT Montpellier

Architectures n-tiers Intergiciels à objets et services web

Windows (2000/NT), Solaris, AIX, HP-UX, Linux Haute disponibilité : SunCluster 3, Veritas Cluster Server 4. J2EE (JSP, Servlet, EJB, JTA), Open Source

Groupe Eyrolles, 2003 ISBN : X

CAS, la théorie. R. Ferrere, S. Layrisse

Cedric Dumoulin (C) The Java EE 7 Tutorial

Utilisation de Jakarta Tomcat

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

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

Remote Method Invocation (RMI)

Accès aux bases de données

Présentation de la solution Open Source «Vulture» Version 2.0

Des solutions J2EE open source professionnelles adaptées à votre système d information d entreprise

Evaluation Idéopass Cahier d analyse technique

Quel ENT pour Paris 5?

Le serveur HTTPd WASD. Jean-François Piéronne

Création d une application JEE

Transcription:

La plate-forme J2EE LPRO CMSII Olivier Flauzac olivier.flauzac@univ-reims.fr Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 1 / 71

Plan 1 Java? 2 Architecture des applications 3 La plate-forme J2EE 4 Exécution - Développement Plate-forme d exécution Plate-forme de développement 5 Servlet Servlets élémentaires Gestion des données Exécutions externes 6 JSP Objets Actions JSP Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 2 / 71

Plan 1 Java? 2 Architecture des applications 3 La plate-forme J2EE 4 Exécution - Développement Plate-forme d exécution Plate-forme de développement 5 Servlet Servlets élémentaires Gestion des données Exécutions externes 6 JSP Objets Actions JSP Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 3 / 71

J2SE Standard Edition élément de base vaste API quelques services RMI JDBC Corba pour les postes client ou les application réseau légère permet le développement de client lourds Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 4 / 71

J2ME Micro Edition Java allégé possibilité de supprimer des composants non utilisés mise en place de composants de configuration spécifique gestion native de la plate-forme terminaux portables téléphones PDA versions spécifiques en fonction des besoins : liaison sans fil (WIFI, Bluetooth) gestion de l énergie Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 5 / 71

J2EE Entreprise Edition API spécifique d entreprise serveur d application gestion de l intégration Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 6 / 71

Plan 1 Java? 2 Architecture des applications 3 La plate-forme J2EE 4 Exécution - Développement Plate-forme d exécution Plate-forme de développement 5 Servlet Servlets élémentaires Gestion des données Exécutions externes 6 JSP Objets Actions JSP Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 7 / 71

Architecture Différentes architectures définition de la localisation des traitements définition de la localisation des données définition de la localisation résultats Impact performance de l application gestion des différents éléments déploiement et maintenance de l application Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 8 / 71

Architecture à 2 niveaux Deux acteurs client : gestion du traitement serveur : gestion des données Problèmes maintenance complexe performances dépendantes de la puissance du client Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 9 / 71

Architecture à 3 niveaux Acteurs présentation : interface utilisateur métier : logique métier (applicative) données : BdD, XML, LDAP... Avantages facile à déployer code applicatif modifiable indépendamment puissance déléguée à la couche métier Inconvénient évolution difficile composants de grande taille Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 10 / 71

Architecture à 3 niveaux Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 11 / 71

Architecture à multi-niveau Acteurs interface utilisateur : interactions entre l utilisateur et l application logique de présentation : mise en forme des affichages, mise en forme du traitement des requêtes logique métier : code spécifique à l entreprise service d infrastructure : fonctionnalités spécifiques (transaction, connexion...) données Modèle J2EE Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 12 / 71

Architecture multi-niveau Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 13 / 71

Architecture multi-niveau Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 14 / 71

Plan 1 Java? 2 Architecture des applications 3 La plate-forme J2EE 4 Exécution - Développement Plate-forme d exécution Plate-forme de développement 5 Servlet Servlets élémentaires Gestion des données Exécutions externes 6 JSP Objets Actions JSP Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 15 / 71

La plate-forme J2EE Principe norme de spécification d infrastructure de gestion d applications d API Environnement J2EE infrastructure d exécution ensemble de services accessibles Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 16 / 71

API J2EE JNDI Java Naming and Directory Interface API d accès uniforme aux services d annuaire et de nommage localisation et exploitation de ressources diverses CORBA, RMI, NIS, LDAP, DNS Authentification service unifié d authetification mise en place hiérarchique : utilisateur domaine groupe Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 17 / 71

API J2EE JDBC Java Database Connectivity API d accès aux bases de données Servlet composant serveur mise en place de l architecture client / serveur remplace les script CGI Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 18 / 71

API J2EE JSP JMS Java Server Page extension des CGI génération de pages WEB dynamiques intégration de logique métier dans du HTML à l aide de XML ou de scriptlets concurent de ASP et PHP Java Messaging Service API et infrastruture implémentation du modèle à messages Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 19 / 71

API J2EE JTA Java Transaction API interface standard entre le gestionnaire de transaction et les acteurs (application, gestionnaire de ressources, serveur) EJB Entrepise Java Beans composant fournissant des services accessible au travers d interface hébergé dans un environnemnet d exécution spécifique Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 20 / 71

Plan 1 Java? 2 Architecture des applications 3 La plate-forme J2EE 4 Exécution - Développement Plate-forme d exécution Plate-forme de développement 5 Servlet Servlets élémentaires Gestion des données Exécutions externes 6 JSP Objets Actions JSP Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 21 / 71

Plan 1 Java? 2 Architecture des applications 3 La plate-forme J2EE 4 Exécution - Développement Plate-forme d exécution Plate-forme de développement 5 Servlet Servlets élémentaires Gestion des données Exécutions externes 6 JSP Objets Actions JSP Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 22 / 71

Une plate-forme Plate-forme d exécution J2EE API base générique fournissant un ensemble de services élémentaires définition de la plate-forme en fonction des services recherché environnement d exécution API standardisée extensibilité des API serveurs d application services Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 23 / 71

Serveur d application Généralités environnement d exécution des applications gestion de la concurrence n client accédant à 1 même application Quelques serveurs SUN AppServers Tomcat WebSphere BEA WebLogic... Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 24 / 71

Rôles du Serveur d application Session gestion de la session utilisateur mise en place de contextes particulier par client gestion des contextes clients pour une même application exploitée par plusieurs clients Montée en charge déploiement parallèle / distribué équilibrage de la charge reverse proxy Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 25 / 71

Rôles du Serveur d application (suite) Reprise sur erreur stratégie de reprise sur faute gestion des données gestion des transactions Connexion aux sources de données persistance polling de connexion gestion de connexions multiples gestion des lots de requêtes Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 26 / 71

Architecture 1.4 Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 27 / 71

Architecture 1.5 Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 28 / 71

Interopérabilité Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 29 / 71

Architecture de la plate-forme Hiérarchisation des outils composants services d infrastructures services de communications Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 30 / 71

Les composants Composants WEB assure la présentation - partie visible JSP (Java Server Page) La vue génération de HTML gestion de l affichage et non du traitement inclusion de code Java dans du HTML inclusion de balises personnalisées Servlet Le contrôleur classe Java de traitement d une requête peux de génération de code HTML génération possible de code XML Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 31 / 71

Les composants (suite) Composants Métier spécifiques au traitement des données propre à un secteur d activité logique métier ou logique applicative interfaçage avec les bases de données EJB Enterprise Java Beans Le modèle Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 32 / 71

Services d infrastructures Liste des services bases de données : JDBC services de nommages, annuaires : JNDI gestion des transactions : JTA / JTS connexion aux systèmes d informations (ERP) : JCA supervision ; JMX Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 33 / 71

Services de communications Liste des services authentification et droits : JAAS communication et exécution entre objets : RMI WEB services communication asynchrone : JMS courrier électronique : Java Mail Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 34 / 71

Plan 1 Java? 2 Architecture des applications 3 La plate-forme J2EE 4 Exécution - Développement Plate-forme d exécution Plate-forme de développement 5 Servlet Servlets élémentaires Gestion des données Exécutions externes 6 JSP Objets Actions JSP Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 35 / 71

Développement? Cycle de développement conception du code création d une archive (pas obligatoire) déploiement sur le serveur intégration des éléments développés positionnement dans les répertoires associés définition du "contexte" du serveur modification des fichiers de configuration server.xml Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 36 / 71

Solutions plate-forme Plate-forme de développement J2 EE 5 http://java.sun.com Utilisation d un serveur J2EE Tomcat 5.5 http://tomcat.apache.org/ Sun AppServer installé avec J2EE JBoss http://labs.jboss.com/ Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 37 / 71

Solutions "développement manuel" Outils éditeur de texte service de déploiement service / outil d archive Cycle de développement développement des scripts / pages archivage déploiement modification du contexte (re)démarrage du serveur Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 38 / 71

Développement avec NetBeans Netbeans inclus dans J2EE with tools intégration de la gestion du serveur démarrage / arrêt déploiement modification et mise en place du contexte synchronisation de l application Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 39 / 71

Développement avec Eclipse Eclipse utilisation de plugins spécifiques (nécessité d installation) intégration de la gestion du serveur démarrage / arrêt déploiement modification et mise en place du contexte synchronisation de l application Environnement tout faits Easyeclipse Server Edition http://www.easyeclipse.org Lomboz http://lomboz.objectweb.org/ Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 40 / 71

Plan 1 Java? 2 Architecture des applications 3 La plate-forme J2EE 4 Exécution - Développement Plate-forme d exécution Plate-forme de développement 5 Servlet Servlets élémentaires Gestion des données Exécutions externes 6 JSP Objets Actions JSP Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 41 / 71

Servlets? programme java autonome exécuté sur le serveur exécutable sur tous les serveurs «étendus» d un moteur de servlet principe fichier.class sur le serveur instanciation à la première utilisation accès par une URL : http://www.serveur.fr/contexte/maservlet exécution dans un thread persistance des données des servlets gestion de l ensemble des informations et flux WEB : formulaires cookies sessions Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 42 / 71

Intérêts efficacité (code semi compilé) résidentes multithreadées assurent la gestion du cache portables (Java) exploitent la totalités des possibilités serveur Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 43 / 71

Fonctionnement requêtes cycle de vie Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 44 / 71

Plan 1 Java? 2 Architecture des applications 3 La plate-forme J2EE 4 Exécution - Développement Plate-forme d exécution Plate-forme de développement 5 Servlet Servlets élémentaires Gestion des données Exécutions externes 6 JSP Objets Actions JSP Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 45 / 71

Servlets de base : javax.servlet.servlet init code d initialisation (une seule fois) void i n i t ( S e r v l e t C o n f i g c o n f i g ) service gestion du traitement et de la réponse void s e r v i c e ( ServletRequest req, ServletResponse res ) destroy destruction de la servlet (une seule fois) void destroy ( ) getservletconfig récupération de la configuration S e r v l e t C o n f i g g e t S e r v l e t C o n f i g ( ) getservletinfo information sur la servket java. lang. S t r i n g g e t S e r v l e t I n f o ( ) Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 46 / 71

Servlets HTTP javax.servlet.http.httpservlet (Bonjour.java) gestion des servlet dans le cadre HTTP classe héritante de javax.servlet.servlet ajout des méthodes : gestion des requêtes GET protected void doget ( HttpServletRequest req, HttpServletResponse resp ) gestion des requêtes POST protected void dopost ( HttpServletRequest req, HttpServletResponse resp ) servlet utilisateur : héritage de javax.servlet.http.httpservlet nécessité de masquer la (les) méthode(s) dans les servlets développées gestion des flux associés dans les méthodes Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 47 / 71

Accès à l environnement (Envir.java) ensemble de méthodes permettant d accéder à l environnement d exécution méthodes de javax.servlet.http.httpservletrequest java. lang. S t r i n g getremoteuser ( ) public java. lang. S t r i n g getremoteaddr ( ) public java. lang. S t r i n g getremotehost ( ) public i n t getremoteport ( ) Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 48 / 71

Plan 1 Java? 2 Architecture des applications 3 La plate-forme J2EE 4 Exécution - Développement Plate-forme d exécution Plate-forme de développement 5 Servlet Servlets élémentaires Gestion des données Exécutions externes 6 JSP Objets Actions JSP Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 49 / 71

Manipulation des formulaires (formul.html - Form.java) gestion des formulaires et des méthodes (POST et GET) récupération des champs de formulaires (chaînes de caractères) utilisation des méthodes : public java. u t i l. Enumeration getparameternames ( ) public java. lang. S t r i n g getparameter ( java. lang. S t r i n g name) public java. lang. S t r i n g [ ] getparametervalues ( java. lang. S t r i n g name) Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 50 / 71

Les cookies (Cookie1.java - Cookie2.java) stockage d informations sur le client informations sous forme de chaînes de caractères utilisation de la classe javax.servlet.http.cookie dépose d un cookie Méthode de la classe HttpServletResponse public void addcookie ( Cookie cookie ) lecture de la liste des cookies accessibles Méthode de la classe HttpServletRequest public Cookie [ ] getcookies ( ) Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 51 / 71

Les cookies : l objet Cookie public Cookie ( java. lang. S t r i n g name, java. lang. S t r i n g value ) public java. lang. S t r i n g getname ( ) public i n t getmaxage ( ) public java. lang. S t r i n g getvalue ( ) public void setmaxage ( i n t e x p i r y ) public void setvalue ( java. lang. S t r i n g newvalue ) public void setdomain ( java. lang. S t r i n g p a t t e r n ) Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 52 / 71

Gestion des Sessions (startsession.html - Session1.java - Session2.java) gestion d informations sur le serveur suivi de navigation nécessité de transmettre l id de session de page en page (ré-encodage de l URL) java. lang. S t r i n g encodeurl ( java. lang. S t r i n g u r l ) utilisation de javax.servlet.http.httpsession java. lang. Object g e t A t t r i b u t e ( java. lang. S t r i n g name) java. u t i l. Enumeration getattributenames ( ) java. lang. S t r i n g g e t I d ( ) void s e t A t t r i b u t e ( java. lang. S t r i n g name, java. lang. Object value ) void removeattribute ( java. lang. S t r i n g name) Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 53 / 71

Persistance (Persist.java) & (persistance2.html - Persistance2.java) différent des sessions exploitation de la résidence des servlet mémorisation de l état au cours d une exécution Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 54 / 71

Plan 1 Java? 2 Architecture des applications 3 La plate-forme J2EE 4 Exécution - Développement Plate-forme d exécution Plate-forme de développement 5 Servlet Servlets élémentaires Gestion des données Exécutions externes 6 JSP Objets Actions JSP Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 55 / 71

Inclusion (Incluant.java - incluse.html Incluse.java) possibilité d inclure dans le résultat : du html le résultat d une autre servlet utilisation d un RequestDispatcher (javax.servlet.servletrequest) public RequestDispatcher getrequestdispatcher ( java. lang. S t r i n g path ) réalisation de l inclusion (javax.servlet.requestdispatcher) void i n c l u d e ( ServletRequest request, ServletResponse response ) Attention ne pas fermer les flux dans la servlet incluse! Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 56 / 71

Délégation (Delegante.java - Delegue.java - err.html - deleg.html) délégation de l exécution à une autre servlet possibilité de création de chaînes d exécutions réponse issue d une auttre servlet utilisation d un RequestDispatcher (javax.servlet.servletrequest) public RequestDispatcher getrequestdispatcher ( java. lang. S t r i n g path ) réalisation de l inclusion (javax.servlet.requestdispatcher) public void forward ( ServletRequest request, ServletResponse response ) Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 57 / 71

Plan 1 Java? 2 Architecture des applications 3 La plate-forme J2EE 4 Exécution - Développement Plate-forme d exécution Plate-forme de développement 5 Servlet Servlets élémentaires Gestion des données Exécutions externes 6 JSP Objets Actions JSP Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 58 / 71

JSP? code java intégré au HTML compilé à l exécution en servlet styles de programmation jsp pur style XML Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 59 / 71

Déclarations Style JSP <%! i n t i = 15; %> <%! S t r i n g s = new S t r i n g ( " Hello " ) ; %> Style XML < j s p : d e c l a r a t i o n > i n t i = 15; </ j s p : d e c l a r a t i o n > < j s p : d e c l a r a t i o n > S t r i n g s = new S t r i n g ( " Hello " ) ; </ j s p : d e c l a r a t i o n > Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 60 / 71

Expressions Style JSP <%= i %> <%= s %> Style XML < j s p : expression > i </ j s p : expression > < j s p : expression > s </ j s p : expression > Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 61 / 71

Directives page <%@ page a t t r i b u t s %> < j s p : d i r e c t i v e. page a t t r i b u t s / > Attribut import session isthreadsafe info errorpage iserrorpage contenttype pageencoding Description packages à importer appartenance à une session (true ou false) gestion de la concurrence informations relatives à la page URL de la page d erreur indicateur de page d erreur type des données et encodage encodage de la page Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 62 / 71

Directives include <%@ i n c l u d e a t t r i b u t s %> < j s p : d i r e c t i v e. i n c l u d e a t t r i b u t s / > Attribut file Description nom et chemin du fichier à inclure Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 63 / 71

Script Scriptlets <% code Java %> <ul > <% for ( i n t j =0; j <10; j ++){ out. p r i n t l n ( " < l i > " + j + " </ l i > " ) ; } %> </ ul > Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 64 / 71

Portée des éléments page accès limité à la page request accès limité à la page et aux pages incluses ou déléguées session accès depuis l emsemble des éléments de la session application accès à l emsemble des éléments Attention accès concurrents possible pour session et application Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 65 / 71

Plan 1 Java? 2 Architecture des applications 3 La plate-forme J2EE 4 Exécution - Développement Plate-forme d exécution Plate-forme de développement 5 Servlet Servlets élémentaires Gestion des données Exécutions externes 6 JSP Objets Actions JSP Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 66 / 71

Objects implicites request instance de javax.servlet.httpservletrequest response instance de javax.servlet.httpservletresponse out instance de javax.jsp.jspwriter session instance de javax.servlet.http.httpsession Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 67 / 71

Plan 1 Java? 2 Architecture des applications 3 La plate-forme J2EE 4 Exécution - Développement Plate-forme d exécution Plate-forme de développement 5 Servlet Servlets élémentaires Gestion des données Exécutions externes 6 JSP Objets Actions JSP Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 68 / 71

Bean? Définition Classe java respectant les conventions : un constructeur sans argument accès à toutes les propriétés setxxx et getxxx setxxx et isxxx Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 69 / 71

Utilisation d un Bean définition : <jsp :usebean> id nom du bean dans la page (nom de l instance) scope portée class classe du bean type type de la référence (classe, classe parente, interface) accès en écriture : <jsp :setproperty> name nom du bean property nom de la propriété (* possible) value valeur à affecter accès en lecture : <jsp :getproperty> name nom du bean property nom de la propriété Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 70 / 71

Inclusion / Délégation Inclusion < j s p : i n c l u d e page= "URL" > < j s p : param name= " xxx " value= " yyy " / > </ j s p : include > Délégation < j s p : forward page= "URL" > < j s p : param name= " xxx " value= " yyy " / > </ j s p : forward > Olivier Flauzac (URCA) La plate-forme J2EE olivier.flauzac@univ-reims.fr 71 / 71