Présentation de JEE Fichier

publicité
Généralités sur JEE
Les servlets
Java Server Page
>
Présentation de JEE
Jean-Yves Didier
Université d’Evry-Val-d’Essonne
Jean-Yves Didier
M1GI option programmation avancée (JEE)
1/15
Généralités sur JEE
1
Généralités sur JEE
2
Les servlets
3
Java Server Page
Jean-Yves Didier
Les servlets
Java Server Page
M1GI option programmation avancée (JEE)
>
2/15
Généralités sur JEE
Les servlets
Java Server Page
>
JEE
JEE – Java Entreprise Edition
• Extension de Java ;
• Fournit un cadre applicatif pour les logiciels et systèmes
d’information d’entreprise ;
• Apporte :
I
I
Des bibliothèques supplémentaires ;
Un environnement d’exécution particulier.
Jean-Yves Didier
M1GI option programmation avancée (JEE)
3/15
Généralités sur JEE
Les servlets
Java Server Page
>
Contexte d’utilisation/d’application
Fonctionnalités apportées
• Fonctionnalités réseau ;
• Services Web ;
• Liens objet – base de données relationnelle ;
• Architectures multi-tiers ;
• Architecture Modèle-Vue-Contrôleur ;
• ...
Jean-Yves Didier
M1GI option programmation avancée (JEE)
4/15
Généralités sur JEE
Les servlets
Java Server Page
>
JEE : une spécification / plusieurs implémentations
• JEE est une spécification d’environnement donné par Oracle ;
• Spécifications fournies par la Java Community Process ;
• Différentes implémentations plus ou moins fidèles existent :
I Glassfish (Oracle) ;
I JBoss/WildFly (RedHat) ;
I Geronimo (Apache) ;
I Tomcat (Apache) – incomplète, support servlets et jsp
uniquement . . .
Jean-Yves Didier
M1GI option programmation avancée (JEE)
5/15
Généralités sur JEE
Les servlets
Java Server Page
>
Les grands principes architecturaux
Architecture client/serveur
service
(HTTP)
servlet
HTML + fichiers
requêtes
navigateur
Client
JVM
Serveur
(Schéma de principe approximatif)
Jean-Yves Didier
M1GI option programmation avancée (JEE)
6/15
Généralités sur JEE
Les servlets
Java Server Page
>
Les servlets (1/2)
Définition
• programme Java qui s’exécute dans un serveur Web ;
• reçoit et répond aux requêtes de clients Web ;
• interface définie dans le paquetage javax.servlet ;
• implémentée dans la classe abstraite HttpServlet ;
• définit un cycle de vie.
Cycle de vie d’une servlet
Associé à des opérations à implémenter :
1
init : construction et initialisation de la servlet ;
2
service : traitement des requêtes client ;
3
destroy : mise hors service et destruction de la servlet.
Jean-Yves Didier
M1GI option programmation avancée (JEE)
7/15
Généralités sur JEE
Les servlets
Java Server Page
>
Les servlets (2/2)
Méthodes additionnelles
getServletConfig donne les paramètres d’initialisation de la servlet ;
getServletInfo donne des informations sur la servlet (auteur, . . .)
Utilisation privilégiée – HttpServlet
• classe de base abstraite à dériver pour créer sa servlet ;
• doit redéfinir une méthode parmi les suivantes :
I
I
I
I
I
doGet, pour le support des requêtes HTTP GET ;
doPost, pour le support des requêtes HTTP POST ;
doPut, pour le support des requêtes HTTP PUT ;
doDelete, pour le support des requêtes HTTP DELETE ;
init, destroy et getServletInfo, cf interface servlet.
Jean-Yves Didier
M1GI option programmation avancée (JEE)
8/15
Généralités sur JEE
Les servlets
Java Server Page
>
Exemple de servlet
Servlet
Hello World ! // B i b l i o t h è q u e s j a v a r e q u i s e s
import j a v a . i o . ∗ ;
import j a v a x . s e r v l e t . ∗ ;
import j a v a x . s e r v l e t . h t t p . ∗ ;
// E x t e n s i o n de l a c l a s s e H t t p S e r v l e t
p u b l i c c l a s s HelloWorld extends H t t p S e r v l e t {
p u b l i c v o i d doGet ( H t t p S e r v l e t R e q u e s t r e q u e s t ,
HttpServletResponse response )
throws S e r v l e t E x c e p t i o n , I O E x c e p t i o n {
// L o g i q u e de t r a i t e m e n t
P r i n t W r i t e r out = r e s p o n s e . g e t W r i t e r ( ) ;
o u t . p r i n t l n ( " <h1 > Hello World ! </ h1 >" ) ;
}
}
Jean-Yves Didier
M1GI option programmation avancée (JEE)
9/15
Généralités sur JEE
Les servlets
Java Server Page
>
Déploiement d’une servlet (1/2)
Exemple dans Tomcat
Étapes – cas d’une classe appelée HelloWorld
• Compiler la servlet ;
• Placer la classe compilée dans le répertoire :
rep install tomcat/webapps/ROOT/classes/
• Modifier le fichier web.xml placé dans le répertoire :
rep install tomcat/webapps/ROOT/WEB-INF/
• Lancer tomcat :
rep install tomcat/bin/startup.{bat|sh}
• Tester dans le navigateur à l’adresse :
http://localhost:8080/HelloWorld
Jean-Yves Didier
M1GI option programmation avancée (JEE)
10/15
Généralités sur JEE
Les servlets
Java Server Page
>
Déploiement d’une servlet (2/2)
Exemple dans Tomcat
Sections à rajouter dans le fichier web.xml
< s e r v l e t>
< s e r v l e t −name>H e l l o W o r l d</ s e r v l e t −name>
< s e r v l e t −c l a s s>H e l l o W o r l d</ s e r v l e t −c l a s s>
</ s e r v l e t>
< s e r v l e t −mapping>
< s e r v l e t −name>H e l l o W o r l d</ s e r v l e t −name>
<u r l −p a t t e r n>/ H e l l o W o r l d</ u r l −p a t t e r n>
</ s e r v l e t −mapping>
Jean-Yves Didier
M1GI option programmation avancée (JEE)
11/15
Généralités sur JEE
Les servlets
Java Server Page
>
Les JSP
JSP – Java Server Page
• format dont la syntaxe est conforme au standard XML (à
partir de JSP 2.0) ;
• permettent de créer dynamiquement du code
HTML/XML/autre ;
• permettent de meler code statique et code Java ;
• définissent des directives JSP à intercaler dans le code de la
page web.
Jean-Yves Didier
M1GI option programmation avancée (JEE)
12/15
Généralités sur JEE
Les servlets
Java Server Page
>
Quelques directives JSP (1.x)
• <%@ include file="..." %>
inclusion de fichier
• <%@ page import="..." %>
importation de paquetage java
• <%! int var=0; %>
déclaration de variable
• <% ... %>
scriptlet (généralement tout code Java)
• <%= expression %>
remplace l’expression par son résultat
• et bien d’autres ...
Jean-Yves Didier
M1GI option programmation avancée (JEE)
13/15
Généralités sur JEE
Les servlets
Java Server Page
>
Exemple de page JSP
Hello World avec date
<html>
<head>
< t i t l e>H e l l o World</ t i t l e>
</ head>
<body>
<h1>H e l l o World</h1>
<p>
A u jo u r d ’ h u i nous sommes l e :
<%= new j a v a . u t i l . Date ( ) . t o S t r i n g ( ) %>
</p>
</ body>
</ html>
Jean-Yves Didier
M1GI option programmation avancée (JEE)
14/15
Généralités sur JEE
Les servlets
Java Server Page
>
Pour aller plus loin
• Page d’Oracle sur JEE :
http://www.oracle.com/technetwork/java/javaee/
overview/index.html
• Site de JCP Java Community Process :
http://jcp.org
• Site d’Apache Tomcat :
http://tomcat.apache.org/
• Eclipse IDE for Java EE Developers
http://www.eclipse.org/downloads/packages/
eclipse-ide-java-ee-developers/mars1
• API de Java EE 7 :
https://docs.oracle.com/javaee/7/api/toc.htm
Jean-Yves Didier
M1GI option programmation avancée (JEE)
15/15
Téléchargement