2. information
Je tiens à vous informer que le support de cous (les slides du
cours) est inspiré du cours de monsieur Khalid Housni. Le support
du cours (cours, TP et projets) est partagé sur google drive.
http ://shorturl.at/cehtP
Mahran Farhat farhatmahran@yahoo.fr
4. Introduction au Java EE
• Qu'est-ce que Java EE ?
• Java EE n'est pas Java
• Le terme « Java » fait bien évidemment référence à un langage,
mais également à une plate-forme : son nom complet est « Java
SE » pour Java Standard Edition. Celle-ci est constituée de
nombreuses bibliothèques, ou API : citons par exemple
java.lang, java.io, java.math, java.util, etc.
• Le terme « Java EE » signifie Java Enterprise Edition,. Il fait
quant à lui référence à une extension de la plate-forme
standard. L'objectif majeur de Java EE est de faciliter le
développement d'applications web robustes et distribuées,
déployées et exécutées sur un serveur d'applications.
Cours JEE - Khalid HOUSNI 3
5. L’architecture JEE
Le nom de la 5ème version de la plate-forme Java pour Entreprise a été
simplifiée : au lieu de se nommer J2EE (Java 2 Enterprise Edition) version
1.5, la plate-forme a été renommée Java EE 5 (Java Enterprise Edition).
L'accent est mis dans cette version sur la simplification des développements
tout en conservant et en faisant évoluer les fonctionnalités proposées par la
plate-forme J2EE.
Java EE 5 intègre aussi de nouvelles API :
JSF ;
JPA ;
EJB 3.0 ;
Le support des dernières versions des API concernant les services web permettant
une mise en œuvre d'une architecture de type SOA.
Cours JEE - Khalid HOUSNI 4
6. Introduction au Java EE
• Comment ça marche?
• les données sont échangées entre le client et le serveur via le protocole HTTP ;
• le client ne comprend que les langages de présentation de l'information, en
d'autres termes les technologies HTML, CSS et Javascript ;
• les pages sont générées sur le serveur de manière dynamique, à partir du code
source du site.
Cours JEE - Khalid HOUSNI 5
7. Les API de JEE
API Rôle
Entreprise Java Bean (EJB) Composants serveurs contenant la logique métier
Remote Method Invocation (RMI et
RMI-IIOP)
RMI permet d'utilisation d'objet Java distribué. RMI-IIOP
est une extension de RMI pour utiliser avec CORBA.
Java Naming and Directory
Interface (JNDI)
Accès aux services de nommage et aux annuaires
d'entreprises
Java Database Connectivity
(JDBC)
Accès aux bases de données. J2EE intègre une
extension de cette API
Java Transaction API (JTA)
Java Transaction Service (JTS)
Support des transactions (JTA est un protocole de
commit à deux phases )
Java Messaging service (JMS) permet d'envoyer et de recevoir des messages de
manière asynchrone entre applications ou composants
Java. Basé sur l’architecture MOM (Messages Oriented
Middleware)
Servlets permet de créer dynamiquement des données au sein
d'un serveur HTTP.
JSF (JavaServer Faces) est un framework MVC basé sur les composants
Cours JEE - Khalid HOUSNI 6
8. Les API de JEE
API Rôle
Java Server Pages (JSP) technique basée sur Java qui permet aux développeurs
de créer dynamiquement du code HTML
Java IDL Utilisation de CORBA
JavaMail Envoie et réception d'email
J2EE Connector Architecture
(JCA)
Connecteurs pour accéder à des ressources du
système d'information de l'entreprises.
Java API for XML Parsing (JAXP) Analyse et exploitation de données au format XML
Java Authentication and
Authorization Service (JAAS)
Echange sécurisé de données
JavaBeans Activation Framework Utilisé par JavaMail : permet de déterminer le type
mime
Java API for XML-based RPC
(JAXP-RPC)
permettant de transmettre des messages SOAP en
mode RPC. S'appuie sur SAAJ et JAXM
SOAP with Attachments API for
Java (SAAJ)
permet d'envoyer de façon standard des documents
XML sur Internet à partir d'un modèle de programmation
Java
Cours JEE - Khalid HOUSNI 7
9. Les API de JEE
Ces API peuvent être regroupées en trois grandes catégories :
les composants : Servlet, JSP, EJB ;
les services : JDBC, JTA/JTS, JNDI, JCA, JAAS ;
la communication : RMI-IIOP, JMS, Java Mail.
API Rôle
Java API for XML Registries (JAXR) conçu pour uniformiser l’accès aux annuaires de
web services
Java Management Extensions (JMX) gérer le fonctionnement d'une application Java
en cours d'exécution
Java Authorization Service Provider
Contract for Containers (JACC)
Norme qui définit un contrat entre les conteneurs
et les fournisseurs de services d'autorisation
…
Cours JEE - Khalid HOUSNI 8
12. Architecture serveur
• Concrètement, le serveur d'applications va :
• récupérer les requêtes HTTP issues des clients ;
• les mettre dans des boîtes, des objets, que votre code sera capable de
manipuler ;
• faire passer ces objets dans la moulinette qu'est votre application, via le
conteneur ;
• renvoyer des réponses HTTP aux clients, en se basant sur les objets
retournés par votre code
Cours JEE - Khalid HOUSNI 11
13. Le protocole HTTP
• HTTP :HyperText Tranfert Protocol
• Protocole qui permet au client de récupérer des documents du serveur
• Ces documents peuvent être statiques (contenu qui ne change pas :
HTML, PDF, Image, etc..) ou dynamiques ( Contenu généré
dynamiquement au moment de la requête : PHP, JSP, ASP…)
• Ce protocole permet également de soumissionner les formulaires
• Fonctionnement (très simple en HTTP/1.0)
• Le client se connecte au serveur (Créer une socket)
• Le client demande au serveur un document : Requête HTTP
• Le serveur renvoi au client le document (status=200) ou d’une erreur
(status=404 quand le document n’existe pas)
• Déconnexion
Cours JEE - Khalid HOUSNI 12
14. Méthodes du protocole HTTP
• Une requête HTTP peut être envoyée en utilisant les méthodes
suivantes:
• GET : Pour récupérer le contenu d’un document
• POST : Pour soumissionner des formulaires (Envoyer, dans la requête,
des données saisies par l’utilisateur )
• PUT pour envoyer un fichier du client vers le serveur
• DELETE permet de demander au serveur de supprimer un document.
• HEAD permet de récupérer les informations sur un document (Type,
Capacité, Date de dernière modification etc…)
Cours JEE - Khalid HOUSNI 13
15. Méthodes du protocole HTTP
• Une requête HTTP peut être envoyée en utilisant les méthodes
suivantes:
• GET : Pour récupérer le contenu d’un document
• POST : Pour soumissionner des formulaires (Envoyer, dans la requête,
des données saisies par l’utilisateur )
• PUT pour envoyer un fichier du client vers le serveur
• DELETE permet de demander au serveur de supprimer un document.
• HEAD permet de récupérer les informations sur un document (Type,
Capacité, Date de dernière modification etc…)
Cours JEE - Khalid HOUSNI 14
16. Methode POST
• Le client envoie la requête : Méthode POST
Post /Nom_Script HTTP/1.0
host: www.intra.net
HTTP_ACCEPT_LANGUAGE : fr
User-Agent : Mozilla/4.0
login=Value1& pass=Value2
& Var3=Value3
*** saut de ligne ***
corps de la requête
Méthode,chemin,version
Nom de domaine
Code de la langue
Type et version du
navigateur
Paramètres des différents
champs du formulaire.
Entête de la requête
Cours JEE - Khalid HOUSNI 15
17. Methode GET
• Le client envoie la requête : Méthode GET
GET /Nom_Script?login=val1&pass=val2&…. HTTP/1.0
host: www.intra.net
HTTP_ACCEPT_LANGUAGE : fr
User-Agent : Mozilla/4.0
corps de la requête est vide
Entête de la requête
Cours JEE - Khalid HOUSNI 16
18. Le Serveur retourne la réponse
HTTP/1.0 200 OK
Date : Wed, 05Feb02 15:02:01 GMT
Server : Apache/1.3.24
Last-Modified : Wed 02Oct01 24:05:01GMT
Content-Type : Text/html
Content-legnth : 4205
<HTML><HEAD>
….
</BODY></HTML>
*** saut de ligne ***
corps de la reponse
Ligne de Status
Date du serveur
Nom du Serveur
Dernière modification
Type de contenu
Sa taille
Le fichier que le client
va afficher
Entête de la reponse
Cours JEE - Khalid HOUSNI 17
19. • Seules les méthodes GET et POST sont supportées et traitées de
la même manière par tous les navigateurs.
• Les spécifications HTML jusqu'à 4.01 ne définissent aucun
support PUT/DELETE pour les formulaires, et seulement GET
et POST sont supportés. Du fait que ces deux méthodes
PUT/DELETE sont de plus en plus utilisées, HTML 5 définit
une spécification pour PUT/DELETE.
• En dehors d’HTML 5, un navigateur qui respecte strictement la
spécification w3c de HTML ne supporte pas PUT et DELETE,
et c'est la valeur GET qui est envoyée par défaut si la méthode
n'est pas reconnue.
Cours JEE - Khalid HOUSNI 18