Applet, Servlet et JSP : des pages Web en action

publicité
Carrefour de l’information
Applet, Servlet et JSP :
des pages Web en action
Philippe Mabilleau ing.
5 novembre 2002
Des pages Web en action
? Le Web
? Des pages Web interactives
? Applet :
de l’action du coté du client
? Servlet : de l’action du coté du serveur
? JSP (Java Sever Pages) :
un développement simplifié
? Que choisir ?
2002-12-03
© Philippe Mabilleau ing.
2
Des pages Web en action
? Le Web
? Des pages Web interactives
? Applet :
de l’action du coté du client
? Servlet : de l’action du coté du serveur
? JSP (Java Sever Pages) :
un développement simplifié
? Que choisir ?
2002-12-03
© Philippe Mabilleau ing.
3
Le Web
? Le Web
ou la toile
? Origine historique
– Un outil de documentation
? Un
ensemble planétaire de pages liées par
des liens hypertextes
– Un maillage d’hyper -liens
? Un langage : HTML
– Description et mise en forme des pages
? Un protocole : HTTP
– Supporte les échanges entre le serveur et le client
2002-12-03
© Philippe Mabilleau ing.
4
Une requête HTTP
Requête HTTP
Internet
Document HTML
Client
(Navigateur)
2002-12-03
Pages
HTML
Serveur
(Site Web)
© Philippe Mabilleau ing.
5
Requêtes et documents
? Les requêtes
– GET
?
Lecture d’un document
– POST
?
Envoi d’informations et lecture d’un document
? Les documents
– Documents HTML
?
Affichés par le navigateur
– Autres
?
?
2002-12-03
Affichés par le navigateur (JPEG…)
Affichés avec l’application ad hoc (PDF…)
© Philippe Mabilleau ing.
6
Identification des documents
? URL
?
?
= Uniform Resource Locator
http://www.usherbrooke.ca/accueil/facultes.html
Un protocole http://
– Indique le moyen utilisé pour aller chercher le document
?
Un site www.usherbrooke.ca
– Un nom sur Internet
?
Un chemin /accueil/
– Souvent associé à un chemin dans une arborescence de
fichiers sur le serveur
?
Un document facultes.html
–
–
?
2002-12-03
Peut être absent
Peut comporter un signet
Des paramètres peuvent être transmis avec l’URL
© Philippe Mabilleau ing.
7
Des pages Web en action
? Le Web
? Des pages Web interactives
? Applet :
de l’action du coté du client
? Servlet : de l’action du coté du serveur
? JSP (Java Sever Pages) :
un développement simplifié
? Que choisir ?
2002-12-03
© Philippe Mabilleau ing.
8
Des pages en action…
? Animer
les pages Web par de l’interaction
avec l’usager
? Les actions de l’usager vont conditionner les
contenus affichés
? Les pages ont un « comportement » plus ou
moins complexe
– Réaction simple
?
Animation graphique
– Action complexe
?
?
2002-12-03
Passer une commande en ligne
Consulter une base de données
© Philippe Mabilleau ing.
9
… par différents moyens
Par un langage
« interprété »
Au niveau du serveur
JSP
Servlet
Par un programme
compilé
Au niveau du client
Applet
Par un langage
interprété
2002-12-03
© Philippe Mabilleau ing.
Script
10
Script client
? Interprétation
de commandes au sein des
pages HTML
? JavaScript, VBScript
? Langage supporté par le navigateur
? Performance limitée
? Environnement contrôlé par le navigateur
? Code complètement accessible au client
– Aucune protection du code
2002-12-03
© Philippe Mabilleau ing.
11
Des pages Web en action
? Le Web
? Des pages Web interactives
? Applet :
de l’action du coté du client
? Servlet : de l’action du coté du serveur
? JSP (Java Sever Pages) :
un développement simplifié
? Que choisir ?
2002-12-03
© Philippe Mabilleau ing.
12
Applet
? Programme
Java intégré dans un document
HTML
? L’applet est référencé par le document HTML
et est téléchargé à partir du serveur
– Balise applet
?
<applet code="…"
width="…" hight="…" />
? Les
classes Java sont exécutées dans
l’environnement du client
–
–
2002-12-03
Machine virtuelle Java du client
Accès sécurisé à l’environnement
© Philippe Mabilleau ing.
13
Exécution d’un applet
Page HTML
<applet … >
Requête HTTP
Page
HTML
Document HTML
Internet
Requête HTTP
Fichier Classe
Fichier
Classe
Serveur
(Site Web)
Applet
2002-12-03
© Philippe Mabilleau ing.
14
Des pages Web en action
? Le Web
? Des pages Web interactives
? Applet :
de l’action du coté du client
? Servlet : de l’action du coté du serveur
? JSP (Java Sever Pages) :
un développement simplifié
? Que choisir ?
2002-12-03
© Philippe Mabilleau ing.
15
Servlet
? Une
requête HTTP provoque l’exécution de
code Java
– Une correspondance doit être établie entre la
partie locale de l’URL et le code à invoquer
?
« mapping » du servlet
? Le
code exécuté engendre une réponse qui
est retournée au client
– Page HTML ou document
– Autres actions possibles au niveau du serveur
?
?
2002-12-03
Accès à une base de données
Interaction avec le matériel
© Philippe Mabilleau ing.
16
Exécution d’un servlet
Fichier
Classe
Requête HTTP
Internet
Document HTML
Généré
dynamiquement
Client
(Navigateur)
2002-12-03
Exécution
Document
généré
Machine
Virtuelle
Java
Serveur
(Site Web)
© Philippe Mabilleau ing.
17
Exemple de code d’un servlet
2002-12-03
© Philippe Mabilleau ing.
18
Des pages Web en action
? Le Web
? Des pages Web interactives
? Applet :
de l’action du coté du client
? Servlet : de l’action du coté du serveur
? JSP (Java Sever Pages) :
un développement simplifié
? Que choisir ?
2002-12-03
© Philippe Mabilleau ing.
19
JSP
? Java Server
Page
? Script inséré dans le texte de la page
– En apparence seulement
? Le
script est compilé par le serveur pour
construire un servlet
? Ce servlet va engendrer le code HTML
initial de la page ainsi que les actions
du script
2002-12-03
© Philippe Mabilleau ing.
20
Exemple de contenu J S P
2002-12-03
<% if (numguess
(numguess.
.getSuccess
getSuccess())
()) { %>
Congratulations! You got it.
And after just <%= numguess
numguess.
.getNumGuesses
getNumGuesses()
() %> tries.<p>
<% numguess
numguess.reset();
.reset(); %>
Care to <a href
href="
="numguess
numguess.
.jsp
jsp">
">try
try again</a>?
again</a>?
<% } else if (numguess
(numguess.
.getNumGuesses
getNumGuesses()
() == 0) { %>
Welcome to the Number Guess game.<p>
game.<p>
I'm thinking of a number between 1 and 100.<p>
<form method=
method=get
get>
>
What's your guess?
guess? <input type=text
type= text name=
name=guess
guess>
>
<input type=submit
type=submit value="
value="Submit
Submit">
">
</form
</
form>
>
<% } else { %>
Good guess,
guess, but nope
nope.
. Try <b><%= numguess
numguess.
.getHint
getHint()
() %></b>.
You have made <%= numguess
numguess.
.getNumGuesses
getNumGuesses()
() %> guesses
guesses.<p>
.<p>
I'm thinking of a number between 1 and 100.<p>
<form method=
method=get
get>
>
What's your guess?
guess? <input type=text
type= text name=
name=guess
guess>
>
<input type=submit
type=submit value="
value="Submit
Submit">
">
</form
</
form>
>
© Philippe Mabilleau ing.
21
<% } %>
Des pages Web en action
? Le Web
? Des pages Web interactives
? Applet :
de l’action du coté du client
? Servlet : de l’action du coté du serveur
? JSP (Java Sever Pages) :
un développement simplifié
? Que choisir ?
2002-12-03
© Philippe Mabilleau ing.
22
Applet, J S P ou servlet ?
? L’applet s’exécute sur le client
– Protection limité du code
– Performance du client
– Interaction avec le serveur via le réseau
– Interaction directe avec l’usager
? Le
servlet et la J S P s’exécutent sur le
serveur
–
–
–
–
2002-12-03
Le code reste sur le serveur
Performance du serveur
Interaction avec le serveur directe
Interaction avec l’usager via le réseau
© Philippe Mabilleau ing.
23
Servlet ou J S P ?
? Le servlet est exécuté
– Le code est indépendant de toute page HTML
– L’aspect « présentation » est traité séparément
?
Dans d’autres pages HTML par exemple
– Le modèle de multiprogrammation utilisé pour
exécuter les servlets est le plus performant
?
Idéal pour les « petits systèmes »
? La J S P est compilée et exécutée
– Le code et la page HTML sont liés
– Intégration de la présentation et des données
– Ressources de compilation requises sur le serveur
?
2002-12-03
Mise au point plus facile
© Philippe Mabilleau ing.
24
En conclusion
? Applet : interaction intensive avec
l’usager
? Servlet : interaction intensive avec
l’environnement du serveur
? J S P : servlet au développement
simplifié mais moins efficace
2002-12-03
© Philippe Mabilleau ing.
25
Téléchargement