Sie sind auf Seite 1von 37

Applications Web en Java EE

Introduction
Partie 1

1
Plan
 Présentation de l’architecture Java EE
 Les Servlets
 Cycle de vie d’une Servlet
 Traitement des données de formulaires
 Gestion de l’état (Cookies & Sessions)
 API JDBC
 Les Java Server Pages (JSP)
 Jsp et JavaBeans
 EL (Expression Langage)/ JSTL (JSP Standard Tag Library)
 Les Java Server Faces (JSF)
 API JPA : ORM (hibernate)
 Réalisation d’une application 3tiers (MVC2 / Spring / Hibernate …)
2
Présentation du cours

 Objectifs
 Développement d’applications Web robustes en utilisant un
framework

 Pré-requis
 Maîtrise du Java SE, HTML/CSS et XML
 Système d’information et Base de données
 Bases de réseau (Architecture Client/serveur)

3
Introduction
 J2EE est l’acronyme de Java2 Entreprise Edition
 Cette édition est dédiée à la réalisation d’applications
entreprises ayant une architecture n-tiers (approche
multi-niveaux)
 Depuis sa version 5, J2EE a été renommé Java EE (Java
Entreprise Edition)
 Java EE est une plate-forme fortement orientée serveur
pour le développement et l'exécution d'applications
distribuées.
 Java EE est basé sur Java SE (Java Standard Edition) qui
contient les API de base de Java

4
Introduction
 La plateforme Java EE
 Elle est développée par the Java Community Process (the JCP),
 Son objectif :
 fournir au développeurs un ensemble d’API puissant
 Moins de Complexité en temps
 Plus de Performances
 Peu de Ressources
 Peu d’Argent (minimum de coût)
JSRs: Java Specification Requests
JSR 366: Java Platform, Enterprise Edition 8 (Java EE 8) Specification
Voir détails : https://www.jcp.org/en/jsr/detail?id=366
5
Historique
 Premières applications composées d’une seule « pièce »
dites applications monolithiques.
 L’Arrivée des bases de données, Internet, Réseaux
d’entreprise  Applications clientes plus génériques.
 En évoluant, on a assisté au succès du modèle 3-tiers
des applications client/serveur.
 Finalement ce modèle est généralisé en un modèle n-tiers,
découpant l’application en n-parties.

6
Architecture 2-tiers

Navigateur

Présentation
Serveur Web
Traitement

données
Système
de
fichiers
7
Architecture 3-tiers

Navigateur

Présentation
Serveur Web
Traitement

données
Base de
Base de données
données
8
Architecture n-tiers

+ Dimensionnement Navigateur
+ Maintenance
+ Fiabilité Serveur Web
Présentation
+ Disponibilité
+ Extensibilité
Traitement Serveur
+ Gestion du d’applications
développement
données
Base de
- complexité Base de données
données
9
Modèle n-tiers
 Est une généralisation du modèle 3-tiers

 Différentes applications clientes peuvent appeler le tiers


logique
 Plusieurs serveurs peuvent intervenir

10
Application multi-tiers
 L’interconnexion entre les tiers est sans doute le grand problème
 Utilisation des frameworks
 Avantages de ce types d’architectures :
 Structure propre
 Modularité
 Facilité d’évolution
 Utilisation des frameworks
 Gain de temps,…
 Inconvénients :
 Difficulté de maitriser cette architecture complexe : Avoir une très
bonne connaissance des outils disponibles sur le marché et une très
bonne aptitude à utiliser l’abstraction et les concepts objet.

11
Application en couches
 Basé sur une architecture multi-tiers, elle illustre
l’architecture logicielle de l’application

12
Couche Application
 C’est le médiateur entre la couche présentation et la couche
métier,
 contrôle l’enchainement des tâches,
 Gérer l’état des sessions des clients connectés (connecté, en
attente, déconnecté, …)
 Si l’état est de type conversationnel cette couche représente le
contrôleur dans le modèle MVC
 En java EE, le composant de base utilisé est la Servlet
 Traiter la requête,
 Faire les appels nécessaires pour récupérer ou enregistrer les
données
 Rediriger l’application cliente vers la partie adéquate de la couche
présentation

13
Couche Application
 Pour traiter des formulaires : on utilise les servlets
plutôt que les JSP
 Les servlets/JSP sont des composants de bas niveaux
 Ne permettent pas une interconnexion simple avec les
autres couches
 Utilisation des frameworks fournissant les fonctionnalités
d’interconnexion :
 Struts basé sur le modèle MVC
 JSF : désormais intégré dans la plateforme Java EE

14
Couche Métier (couche business)
 La couche principale de toute application, elle s’occupe:
 Accès aux différents données qu’à leurs traitements

 N.B. Il est plus propre de séparer


 la partie Accès aux différents données
 Traitement de la logique métier

15
Couche Métier (couche business)
 Les composants métiers répartie en deux types :
 Les entités beans (entity bean) peuvent être exécutées par un
conteneur léger et permettent de réaliser la persistance des données
à partir des JavaBeans et de Java Persistence API (JPA)
 Les Entreprise JavaBeans offrent des possibilités plus riches comme
la gestion des transactions, les accès directes par clients riches ou
encore la gestion automatique des sessions utilisateur, mais sont
exécutés sur un conteneur lourd.

 Dans une application JavaEE de grande envergure, cette couche


est représentée par les EJB
 Ils sont particulièrement adaptés aux panels hétérogènes
de clients

16
Architecture évoluée en Java EE

17
Partie stockage de données
 La partie stockage de données, nommée tiers Entreprise
Information System (EIS) est directement liée au tiers
Métier
 Correspond dans la majorité des cas
 Aux systèmes de gestion de base de données (Derby, MySQL,
PostgreSQL, Oracle, …)
 ou
 à un Entreprise Resource Planning (ERP), un gros système
transactionnel ou n'importe quel système de stockage évolué.

18
Versions Java EE

19
Versions Java EE
 Mai 1998: Java Professional Edition (JPE) naissance du projet
chez Sun Microsystems (racheté par oracle le 20 avril 2009)
 Déc 1999: J2EE 1.2 (premières APIs: JDBC, JNDI, Servlets,
JSP, EJB, JMS, JTA, JavaMail)
 Sep 2001: J2EE 1.3 (ajout de JAXP, JAAS)
 Nov 2003: J2EE 1.4 (améliorations notoires, Web Services,
JMX, …)
 Mai 2006: Java EE 1.5 (renommée Java EE5) (améliorations très
importantes, ajout de JAXB, JPA, JSF, JSTL
 Déc 2009: Java EE 6 (ajout de JAX-RS , JAXR, JSP 2.2, EL
2.2, …) => comme le reste de la galaxie Java, ajout notoire
d’annotations pour simplifier la configuration
 Juillet 2011 : la sortie de Java EE 7
 Mars 2014 : version Java EE 8, fonctionne avec JDK SE 8
20
Versions Java EE

21
Versions Java EE: Historique (1/4)
 La première version standard J2EE 1.2 : contenait 10
spécifications ou Java Specification Requests (JSR).
 Les Enterprises JavaBeans (EJB) permettaient de gérer la
couche métier d'accès aux données
 alors que les Servlets et JavaServer Pages (JSP) permettaient de
développer les applications serveur.

 La version J2EE 1.3 : apportait des améliorations de la


plate-forme à la suite des demandes utilisateur, comme la
configuration par fichier XML.

22
Versions Java EE: Historique (2/4)
 La version J2EE 1.4 : proposait 20 spécifications.
 Cette version apportait le support des services Web et des EJB
version 2.1. Mais cette version conséquente était difficile à
utiliser, tester et déployer.
 Les développements par couches, de type Modèle Vue
Contrôleur (MVC), ne facilitent pas la compréhension de
l'ensemble, et les technologies Servlet et JSP ne sont pas
adaptées pour un développement rapide.
 En réponse à cela, quelques frameworks ou outils spécialisés
voyaient le jour, comme Struts et Spring pour la partie
développement serveur, et Hibernate ou TopLink pour la
persistance.

23
Versions Java EE: Historique (3/4)
 La version Java EE 5 : proposait 23 spécifications
 Cette version a proposé un outil de développement côté
serveur adapté au design pattern MVC, nommé
JavaServer Faces (JSF).
 Cette version était une étape majeure pour la plate-
forme Java EE qui s'orientait vers la simplicité,
 en proposant les EJB 3 associés à JPA (Java Persistence API) pour
la persistance des données,
 JAX-WS (Java API for XML based Web Services) 2.0 pour les
services Web en lieu et place de JAX-RPC (Java API for XML
based RPC)

24
Versions Java EE: Historique (4/4)
 la version Java EE 6 : propose 28 spécifications
 Cette version se concentre essentiellement sur la facilité
d'utilisation de la plate-forme pour le développement, les
tests et le déploiement.
 propose une simplification des EJB avec la version 3.1,
 l'utilisation des annotations pour faciliter le développement
 et la sortie de JAX-RS (Java API for RESTful Web Services) 1.1
pour le développement de services Web.

25
L’API Java EE
 L'API Java EE peut être subdivisé en trois grandes
catégories :
 les composants : Servlet, JSP, EJB
 des services d’infrastructure : JDBC, JTA/JTS, JNDI,
JCA, JMX
 des services de communication : RMI-IIOP, JMS, Java
Mail, JAAS

26
L’API JEE
 Les composants (2 catégories)
 Les composants web : Servlets et JSP (Java Server
Pages)
Il s'agit de la partie chargée de l'interface avec l'utilisateur:
logique de présentation
 Les composants métier : EJB (Enterprise Java Beans)
Il s'agit de composants chargés de l'interfaçage avec
les bases de données, et des traitements des données
propres à un secteur d'activité : logique métier ou
logique applicative (on parle de la partie Modèle dans MVC)

27
L’API JEE
 Les services d'infrastructures
 JDBC (Java DataBase Connectivity) est une API d'accès aux bases
de données relationnelles
 JNDI (Java Naming and Directory Interface) est une API d'accès
aux services de nommage et aux annuaires d'entreprises tels que
DNS, NIS, LDAP
 JTA/JTS (Java Transaction API/Java Transaction Services) est une
API définissant des interfaces standard avec un gestionnaire de
transactions
 JCA (JEE Connector Architecture) est une API de connexion au
système d'information de l'entreprise, notamment aux ERP
 JMX (Java Management Extension) fournit des extensions
permettant de développer des applications web de supervision
d'applications
28
L’API JEE
 Les services de communication
 JAAS (Java Authentication and Authorization Service)
est une API de gestion de l'authentification et des
droits d'accès
 JavaMail est une API permettant l'envoi de courrier
électronique
 JMS (Java Message Service) fournit des fonctionnalités
de communication asynchrone (appelées MOM pour
Middleware Object Message) entre applications
 RMI-IIOP est une API permettant la communication
synchrone entre objets

29
Composants J2EE Messagerie Guide de
programmation
Transaction
JavaBeans Mail
Web
Outils BluePrint

EJB JSP Servlet JTA/JTS


Applet JavaBeans

Connecteurs
JMS JavaMail
Container J2EE

Java 2 SDK – Edition standard


JavaIDL, RMI-IIOP JAAS JDBC JNDI JAXP

Base de Nommage XML


30 CORBA Sécurité
données & Répertoire
Composants Java EE 7

31
Composants Java EE 8

32
Composants Java EE 8

33
L’API JEE (JPA)
 Java Persistence API (JPA) est un standard Java utilisé pour la
persistance des données.
 Ce mécanisme de persistance utilise le principe de mapping
objet/relationnel et relationnel/objet afin de permettre de stocker
les objets dans la base de données et inversement de pouvoir lire
les données relationnelles et les transformer en objets.
 L'API Java Persistence 2.0 propose les services suivants :
 La gestion de la persistance.
 Un langage de requêtage évolué : Java Persistence Query Language
(JPQL).
 Un mécanisme de mapping objet/relationnel ORM à partir de
métadonnées (fichiers XML ou annotations).
 Une API à typage fort pour le requêtage.
34
Conteneurs Java EE
 Pour exécuter les composants, Java EE défini des
conteneurs pour chacun de ces composants
 Les conteneurs sont des environnement d’exécution Java
permettant d’héberger les composants et de contrôler
leur exécution
 Les applications clientes utilisent les services du
conteneur pour un accès indirect aux composants
 Les conteneurs implémentent les mécanismes essentiels
aux applications: transactions, persistance, gestion de la
mémoire, sécurité, etc.

35
Conteneurs Java EE
 Un conteneur est un composant logiciel système qui
contrôle d’autres composants, dits métier
 Tomcat est un exemple de conteneur
 Les Servlets n’ont pas de méthode main(), ils sont
contrôlés par le conteneur Tomcat.
 Les requêtes ne sont pas adressées aux servlets mais au
conteneur dans lequel ils sont déployés

36
Conteneurs Java EE
 Il existe plusieurs types de conteneur Java EE:
 Conteneur Web : pour exécuter les servlets et les pages JSP
 Conteneur EJB : pour exécuter les composants EJB
 Conteneur client : pour exécuter des applications standalone
sur les postes qui utilisent des composants Java EE
 Les serveurs d'applications peuvent fournir :
 un conteneur web, (conteneur léger) exemple : Tomcat
 un conteneur d'EJB (conteneur lourd), exemple : Jboss ou
Jonas
 Ou les deux (conteneur hybride), exemple : Websphere ou
Weblogic

37

Das könnte Ihnen auch gefallen