Appli web et JAVA : J2EE
Pierre Gambarotto <>
Département Informatique et Math appli ENSEEIHT
Appli web et JAVA : J2EE
Introduction
Objectfis du cours
Plan du cours
Architecture Client/Serveur
HTTP
Web dynamique
Evolution du web
Principe du web dynamique côté serveur
Appli web et JAVA : J2EE
Et Java entre en scène
Serveur d’applications J2EE
Application web : techniques de base
Appli web et JAVA : J2EE
Introduction
Objectfis du cours
Plan du cours
Architecture Client/Serveur
HTTP
Web dynamique
Evolution du web
Principe du web dynamique côté serveur
Appli web et JAVA : J2EE
Et Java entre en scène
Serveur d’applications J2EE
Application web : techniques de base
Appli web et JAVA : J2EE
Application Client/Serveur et HTTP
Conception d’une application web
Modèle MVC
Démarche sur un projet
Appli web et JAVA : J2EE
J2EE : Servlet, JSP
Accès bases de données : jdbc
Eclipse
Appli web et JAVA : J2EE
Introduction
Objectfis du cours
Plan du cours
Architecture Client/Serveur
HTTP
Web dynamique
Evolution du web
Principe du web dynamique côté serveur
Appli web et JAVA : J2EE
Et Java entre en scène
Serveur d’applications J2EE
Application web : techniques de base
Appli web et JAVA : J2EE
seance 1 Application Client/Serveur, HTTP,
J2EE :Servlet(base) séance 2 Communication entre ressources web ;
J2EE :Servlet(++) séance 3 HTML et JSP pour interface utilisateur
Appli web et JAVA : J2EE
séance 4 Persistence (jdbc), conception BD(base) séance 5 MVC
séance 6 Méthodologie de conception
Appli web et JAVA : J2EE
Application Client Serveur, Application Web
HTTP
Web dynamique
J2EE : présentation
Servlet : la base
Appli web et JAVA : J2EE
Un Serveur, plusieurs clients
Client : Interface Utilisateur
Serveur : partie métier
Protocole de communication entre le client et le serveur
Appli web et JAVA : J2EE Application Web
Client/Serveur
Client : navigateur web
Langage de description d’interface : HTML, Javascript
Serveur : serveur web
Protocole de communication : HTTP
Appli web et JAVA : J2EE
HyperText Transfer Protocol
Protocole Client/Serveur, basé sur TCP
Client=navigateur web
Désignation de ressource : URL
HTTP/1.0 : RFC 1945, mai 1996
HTTP/1.1 : RFC 2616, juin 1999
Appli web et JAVA : J2EE
? pas de suivi de requêtes
Appli web et JAVA : J2EE
Uniform Ressource Locator (URI idem mais Identifier)
type_connexion:://serveur/chemin/ressource
[#id_fragment][?liste_param]
Exemples :
;p2=val,val2
Appli web et JAVA : J2EE
ligne de commande : requête URI-demandé HTTP-version en-têtes optionnels, sur plusieurs lignes si nécessaire une ligne blanche ; un corps éventuel
Appli web et JAVA : J2EE
GET : demande l’émission d’une page
HEAD : demande de lire l’en-tête d’une page
PUT : demande de mémoriser une page
POST : demande de traitement du corps de la requête
DELETE : élimine une page
LINK/UNLINK : lie/délie deux ressources
Appli web et JAVA : J2EE
DATE : de la génération de la requête
REFERER : donne l’URI de la page à partir de laquelle le document est demandé
USER-AGENT : identifiant du logiciel de navigation employé
MIME-VERSION : numéro de version
CONTENT-TYPE : type de données du corps (POST)
CONTENT-LENGTH : longueur du corps (en bytes) CONTENT-ENCODING : codage supplémentaire de la ressource accédée
CONNECTION : que doit-on faire avec la connection (la garder ouverte ?)
HOST : indique le nom du serveur (avec éventuellement
un numéro de port). Obligatoire en version 1.1<> Appli Web et J2EE
Appli web et JAVA : J2EE
une ligne de status : HTTP-version code-réponse phrase réponse en-têtes optionnels une ligne blanche corps éventuel
Appli web et JAVA : J2EE
1xx : informationnel
2xx : succès
3xx : redirection
4xx : erreur client
5xx : erreur serveur
Appli web et JAVA : J2EE
Introduction
Objectfis du cours
Plan du cours
Architecture Client/Serveur
HTTP
Web dynamique
Evolution du web
Principe du web dynamique côté serveur
Appli web et JAVA : J2EE
Et Java entre en scène
Serveur d’applications J2EE
Application web : techniques de base
Appli web et JAVA : J2EE
crée au CERN pour de la documentation scientifique
HTTP/1.0 : RFC 1945, mai 1996
HTTP/1.1 : RFC 2616, juin 1999
Appli web et JAVA : J2EE
ressource demandée :
fichier
serveur web associé à un dossier dans le système
de fichiers
Appli web et JAVA : J2EE
serveur web , associé au dossier
/var/www/html/
client :requête de type GET pour l’URL
serveur : récupère le fichier
et l’enrobe dans une réponse HTTP pour l’envoyer au client
Appli web et JAVA : J2EE
nécessité d’une interface utilisateur plus riche : ajout de processus au niveau client pour gérer certains langages : javascript, Applets Java, et autre.
nécessité de personnaliser les réponses : génération à la voléé de document au niveau serveur
Appli web et JAVA : J2EE
Introduction
Objectfis du cours
Plan du cours
Architecture Client/Serveur
HTTP
Web dynamique
Evolution du web
Principe du web dynamique côté serveur
Appli web et JAVA : J2EE
Et Java entre en scène
Serveur d’applications J2EE
Application web : techniques de base
Appli web et JAVA : J2EE
nom de ressource demandé : document non existant, à générer ! processus de génération interne ou externe Java, php, perl, asp, C#
Appli web et JAVA : J2EE
serveur web , associé à la configuration : toute les ressources commençant par
/elfe/ sont traitées par le processus , ici un script perl.
client :requête de type GET pour l’URL
serveur : exécute le processus , en lui passant la requête reçu en argument, donc en particulier la ressource demandé : . Le processus renvoie un résultat, que le serveur enrobe dans une réponse HTTP pour l’envoyer au client
Appli web et JAVA : J2EE
serveur web , associé à la configuration : toute les ressources commençant par
/elfe/ sont traitées par le processus , ici un script perl.
client :requête de type GET pour l’URL
serveur : exécute le processus , en lui passant la requête reçu en argument, donc en particulier la ressource demandé : . Le processus renvoie un résultat, que le serveur enrobe dans une réponse HTTP pour l’envoyer au client
Appli web et JAVA : J2EE
Introduction
Objectfis du cours
Plan du cours
Architecture Client/Serveur
HTTP
Web dynamique
Evolution du web
Principe du web dynamique côté serveur
Appli web et JAVA : J2EE
Et Java entre en scène
Serveur d’applications J2EE
Application web : techniques de base
Appli web et JAVA : J2EE
J2EE : Java Edition Entreprise : nom commercial de SUN JVM orienté serveur : beaucoup de thread, usage mémoire ensemble de libraires : Servlet, JSP, XML, EJB, XML-RPC, RMI, SOAP . . .
Serveur d’application nécessaire pour l’exécution des servlets, des jsp et des ejb
Nombreux produits libre et de qualité par la fondation Apache. ensemble de normes, en particulier : norme pour les serveurs d’application
Appli web et JAVA : J2EE
classe Java implémentant une interface définie dans la librairie , correspondant à une norme SUN.
exécutée par un serveur d’appliation pour générer la réponse à une requête HTTP
Appli web et JAVA : J2EE
Java Server Pages document texte base : langage à balises, HTML ou XML introduction de tags dynamiques exécutée par un serveur d’application pour générer la réponse à une requête HTTP, et donc idem Servlet
Appli web et JAVA : J2EE
Introduction
Objectfis du cours
Plan du cours
Architecture Client/Serveur
HTTP
Web dynamique
Evolution du web
Principe du web dynamique côté serveur
Appli web et JAVA : J2EE
Et Java entre en scène
Serveur d’applications J2EE
Application web : techniques de base
Appli web et JAVA : J2EE
Conteneur d'applications
déclinaison en Java d’un serveur HTTP dynamique au cœur : une JVM
Appli web et JAVA : J2EE
réception de la requête création de l’objet réponse création de l’objet requête appel de la Servlet/JSP associée au nom de ressource demandée la classe associée s’exécute, en accédant aux objets requête et réponse.
le serveur décode l’objet réponse, et crée une réponse HTTP la réponse HTTP est renvoyée au client
Appli web et JAVA : J2EE
ensemble de fichiers nécessaire à l’exécution statique : html, txt, images . . . dynamique : servelts et jsp librairies utilisées : classes java, libraire .jar fichier de configuration : définition du nom utilisé pour appeler les serlets
Appli web et JAVA : J2EE
plusieurs applications dans des contextes différents contexte :
nom utilisé dans l’URL pour désigner l’application répertoire local contenant les fichiers de l’application configuration associé à cette application
sert du contenu statique (fichiers) et dynamique (servlet, configuration générale : nom du serveur, port d’écoute . . .
Appli web et JAVA : J2EE
Introduction
Objectfis du cours
Plan du cours
Architecture Client/Serveur
HTTP
Web dynamique
Evolution du web
Principe du web dynamique côté serveur
Appli web et JAVA : J2EE
Et Java entre en scène
Serveur d’applications J2EE
Application web : techniques de base
Appli web et JAVA : J2EE
|-- WEB-INFarborescence à racine
| |-- classesunique
| | |-- Titi.class présence d’un répertoire
| | ‘-- Toto.class
WEB-INF à la racine
| |-- lib
| | |-- UtilClass.classfichie de configuration :
| | ‘--
| ‘-- web.xmlclasses Java dans le
|-- |-- ‘-- subrep |-- ‘-- | répertoire WEB-INF/classes librairies dans WEB-INF/lib |
Appli web et JAVA : J2EE
Ressource : nom pouvant être utilisé dans une URL tous les noms de fichiers à l’extérieur de WEB-INF le contenu de WEB-INF n’est pas accessible association nom/servlet dans
Appli web et JAVA : J2EE
A faire sur le serveur :
définition du contexte : nom et emplacement des fichiers installation des fichiers de l’application
Exécution à partir d’un client (navigateur web) :
former l’URL regarder le résultat
serveur http://fourmi:8080/appli/servlet1
fourmi:8080 /appli /servlet1 contexte ressource
Appli web et JAVA : J2EE
Ressources de cette Application fournie par le application : développeur :ressource statique :
|-- WEB-INF
| |-- classesressource dynamique :
| | ‘-- MyClass.class serv1 défini dans
| ‘-- comme associé ‘-- à l’exécution de
MyClass.class
Appli web et JAVA : J2EE
Configuration choisie par l’adminstrateur du serveur :
config réseau serveur : @IP, nom DNS, port d’écoute, e.g zongo:8080 nom du contexte :
/appli_J2EE/appliPierrot dossier où trouver les fichiers :
/home/pierrot/j2ee/zongo
Appli web et JAVA : J2EE
URL de base de l’application : http://zongo:8080/appli_J2EE/appliPierrot exécution de la ressource statique :
http://zongo:8080/
fichier récupéré et affiché sur le client exécution de la ressource dynamique : http://zongo:8080/ appli_J2EE/appliPierrot/serv1 Le serveur exécute MyClass.class, et le résultat est renvoyé au client pour traitement local.
autre nom de ressource : erreur de type 404, “Document non trouvé”.