Vous êtes sur la page 1sur 35

Introduction aux applets

M. Belguidoum

Université Mentouri de Constantine


Département Informatique

M. Belguidoum (UMC) Programmation réseau 1 / 30


Plan

1 Quelques rappels

2 Principe de fonctionnement des applets

3 Interaction page web-applet

4 Interaction applet-page web

5 Conclusion

M. Belguidoum (UMC) Programmation réseau 2 / 30


Quelques rappels

1 Quelques rappels

2 Principe de fonctionnement des applets

3 Interaction page web-applet

4 Interaction applet-page web

5 Conclusion

M. Belguidoum (UMC) Programmation réseau 3 / 30


Quelques rappels

applet : quelques dénitions

Applet : programme qui s'exécute dans la fenêtre d'un navigateur web.

Applet : programme java inclus dans une page HTML

Applet : technologie internet côté "client"

Applet : une application Java insérée dans une page web

M. Belguidoum (UMC) Programmation réseau 4 / 30


Quelques rappels

Cycle de vie

(1) Le client émet une requête (saisie d'une URL, clic sur un lien...) pour
demander une ressource au serveur. Il ne sait pas ici si la réponse qui va lui
parvenir est statique (page HTML simple) ou dynamique (générée par une
application web).

M. Belguidoum (UMC) Programmation réseau 5 / 30


Quelques rappels

Cycle de vie

(2)Côté serveur, c'est le serveur web (exemple : Apache) qui traite les
requêtes HTTP entrantes. Il traite donc toutes les requêtes, qu'elles
demandent une ressource statique ou dynamique. Un serveur HTTP ne sait
répondre qu'aux requêtes visant des ressources statiques. Il ne peut que
renvoyer des pages HTML, des images, des applets existantes.
M. Belguidoum (UMC) Programmation réseau 5 / 30
Quelques rappels

Cycle de vie

(3) si le serveur HTTP s'aperçoit que la requête reçue est destinée au


serveur d'applications, il la lui transmet. Les deux serveurs sont reliés par
un canal, nommé "connecteur".

M. Belguidoum (UMC) Programmation réseau 5 / 30


Quelques rappels

Cycle de vie

(4) Le serveur d'applications (exemple : Tomcat) reçoit la requête à son


tour pour la traiter. Il exécute donc la servlet en fonction de l'URL à partir
de la conguration du serveur. La servlet est donc invoquée, et le serveur
lui fournit deux objets Java : la requête et la réponse. Une consultation de
sources de données est possible (4) et l'interrogation d'autres serveurs ou
systèmes est possible(4').
M. Belguidoum (UMC) Programmation réseau 5 / 30
Quelques rappels

Cycle de vie

(5) Une fois sa réponse générée, le serveur d'applications la renvoie, par le


connecteur, au serveur web. Celui-ci la récupère comme s'il était lui-même
allé chercher une ressource statique. Il a simplement délégué la
récupération de la réponse.

M. Belguidoum (UMC) Programmation réseau 5 / 30


Quelques rappels

Cycle de vie

(6) La réponse est dorénavant du simple code HTML, compréhensible par


un navigateur. Le serveur HTTP peut donc retourner la réponse au client.
Celle-ci contient toutes les ressources nécessaires (feuilles Javascript,
feuilles CSS, applet Java, images...).

M. Belguidoum (UMC) Programmation réseau 5 / 30


Quelques rappels

Quelques rappels : Page statiques/Pages dynamiques

Fichier HTML "pur" : page statique au contenu toujours identique

Si on veut des pages au contenu dynamique qui dépendent, par


exemple, de résultats de programmes lancés sur le serveur comme
l'interrogation d'une base de données, il existe d'autres techniques :
Embarquer du code dans le chier HTML (balises encadrée de % )
Pages ASP (Active Server Page) : technologie microsoft
Pages JSP (Java Server Page) : technologie sun
Requête à une servlet (programme java côté serveur)
Requête à un script sur le serveur : programme php, perl, ...

M. Belguidoum (UMC) Programmation réseau 6 / 30


Principe de fonctionnement des applets

1 Quelques rappels

2 Principe de fonctionnement des applets

3 Interaction page web-applet

4 Interaction applet-page web

5 Conclusion

M. Belguidoum (UMC) Programmation réseau 7 / 30


Principe de fonctionnement des applets

Principe de fonctionnement des applets

Il existe une balise HTML permettant d'intégrer une applet dans une
page HTML

< APPLET CODE = PremierApplet . class


WIDTH =200 HEIGHT =100 >
</ APPLET >

PremierApplet.class est une ressource (programme java déjà


compilé) qui se trouve sur le serveur

PremierApplet.class correspond à la compilation d'un chier


dénissant une sous-classe de la classe javax.swing.JAppletApplet

M. Belguidoum (UMC) Programmation réseau 8 / 30


Principe de fonctionnement des applets

Technologie internet côté "client"

code java (.class) stocké sur un serveur web (comme des images ou
des chiers HTML)

télécharger de ce serveur sur le poste client quand le client (un


navigateur) demande la page HTML contenant la balise APPLET
référant au code inscrit dans l'attribut CODE
exécuter ensuite sur le client de façon autonome par la machine
virtuelle java incluse dans le navigateur

M. Belguidoum (UMC) Programmation réseau 9 / 30


Principe de fonctionnement des applets

Principe de fonctionnement des applets

le navigateur, quand il rencontre la balise APPLET


vérie qu'il n'a pas ce code déjà dans le répertoire cache de sa machine
si ce n'est pas le cas, il envoie une nouvelle requête au serveur lui
demandant le code indiqué de cette applet
En réponse, le serveur retourne au client le programme java inscrit
dans le paramètre code
le code de l'applet est donc téléchargé du serveur dans le répertoire
cache de l'ordinateur client
puis exécuté par le chargeur d'applet sur la machine client

M. Belguidoum (UMC) Programmation réseau 10 / 30


Principe de fonctionnement des applets

Principe de fonctionnement des applets

Par défaut, le code de l'applet est cherché dans le répertoire contenant


le chier HTML

S'il est ailleurs, on donne le répertoire dans lequel il est situé grâce à
l'attribut CODEBASE
< APPLET CODE = PremierApplet . class
CODEBASE = Exemples /
WIDTH =200 HEIGHT =100 >
</ APPLET >

Si c'est une adresse relative : recherche à partir du répertoire


contenant le chier HTML

Si c'est une adresse absolue, on peut télécharger l'applet de n'importe


où, voire même d'un autre serveur web que celui qui contient la page
HTML (CODEBASE=http://someServer/...)

M. Belguidoum (UMC) Programmation réseau 11 / 30


Principe de fonctionnement des applets

Programmation d'une applet

Une applet ne peut donc être exécutée que si elle est intégrée dans
une page HTML et elle s'exécute sous le contrôle d'un navigateur

Une applet java fait toujours intervenir au moins deux chiers


un chier java compilé : prog.class
un chier HTML (prog.html) qui contient la balise APPLET avec la
référence au code prog.class
Pour la mise au point d'une applet, on peut utiliser l'outil
appletviewer

M. Belguidoum (UMC) Programmation réseau 12 / 30


Principe de fonctionnement des applets

Les méthodes des applets

Méthodes Appelée quand ?


void init() Initialisation : quand l'applet est char-
gée. Ne se produit qu'une fois dans la
vie de l'applet
void start() Démarrage : lors du lancement ou de
la reprise de l'applet
void stop() Arrêt : quand on quitte la page conte-
nant l'applet
void destroy() Destruction : quand on quitte le navi-
gateur.
void paint(Graphics g) Achage

M. Belguidoum (UMC) Programmation réseau 13 / 30


Principe de fonctionnement des applets

Exemple1 : code java


import java . awt . BorderLayout ;
import java . awt . Color ;
import java . awt . event . ActionEvent ;
import java . awt . event . ActionListener ;
import javax . swing . JApplet ;
import javax . swing . JButton ;
import javax . swing . JLabel ;
public class FirstApplet extends JApplet {
private JLabel label = new JLabel ();
private JButton bouton = new JButton (" Cliquez " );
private int count = 0;
/* ** Méthode d ' initialisation de l ' applet */
public void init (){
this . setSize (300 , 80);
// On centre le texte du JLabel et on écrit en bleu ...
label . setHorizontalAlignment ( JLabel . CENTER );
this . bouton . addActionListener ( new ActionListener (){
public void actionPerformed ( ActionEvent arg0 )
label . setText (" Vous avez cliqué "
+ (++ count ) + " fois sur le bouton " );
}
});
M. Belguidoum (UMC) Programmation réseau 14 / 30
Principe de fonctionnement des applets

Exemple1

// On ajoute nos composants


this . getContentPane (). add ( bouton , BorderLayout . SOUTH );
this . getContentPane (). add ( label , BorderLayout . NORTH );
}
}

Après exécution de l'applet (Run As : Java Applet)

M. Belguidoum (UMC) Programmation réseau 15 / 30


Principe de fonctionnement des applets

Exemple1 : insertion dans une page HTML

< applet name =" FirstApplet " codebase =" class / "
code =" FirstApplets " height =" 300 px "
width =" 300 px " archive =" plugin . jar " >
< param name =" message " value =" Message pour les Licence GL " >
</ applet >

Les paramètres de la balise <applet></applet> :

name="FirstApplet" : nom de l'applet


width="300px" : largeur de l'applet en pixels ;
height="300px" : hauteur de l'applet en pixels ;
codebase="class/" : l'URL de base pour l'applet, c'est-à-dire
l'endroit où le navigateur peut trouver les chiers .class

code="FirstApplet.class" : chier de classe de l'applet. Celui où


se trouve la méthode init() ;

M. Belguidoum (UMC) Programmation réseau 16 / 30


Principe de fonctionnement des applets

Exemple1 : insertion dans une page HTML

archive="plugin.jar" : identie les ressources à pré-charger (.jar,


images...) ;

alt="Please Wait..." : ache un texte au cours du chargement ;


hspace="10px" : espacement horizontal entre l'applet et un autre
contenu (div ou autre bloc HTML...) ;

vspace="20px" : espacement vertical.


Pour passer des paramètres à l'applet on utilise getParameter(String
paramName) qui renvoie un String correspondant à l'attribut value de la
balise <param...>.

this . getParameter (" message " )// Retourne : Message pour les Licence GL .

M. Belguidoum (UMC) Programmation réseau 17 / 30


Interaction page web-applet

1 Quelques rappels

2 Principe de fonctionnement des applets

3 Interaction page web-applet

4 Interaction applet-page web

5 Conclusion

M. Belguidoum (UMC) Programmation réseau 18 / 30


Interaction page web-applet

Interaction page web-applet

Appeler une méthode d'un applet Java dans un script Javascript :


rajouter un simple bouton HTML sur l'applet et lors du clic sur le
bouton, l'appel à la fonction doJavascript() de l'applet.

....
public class SecondApplet extends JApplet {
.....
/* *
* Méthode utilisée par Javascript pour mettre à jour
* elle est public afin que Javascript puisse y avoir accès
*/
public void doJavascript (){
System . out . println ( " Méthode appelée par javascript ! " );
label . setText (" Vous avez cliqué " + (++ count )
+" fois sur le bouton " );
}
}

M. Belguidoum (UMC) Programmation réseau 19 / 30


Interaction page web-applet

Interaction page web-applet

la communication page web-applet se fait via un script Javascript

< html >


< body style = " margin : auto ;" >
< div ...... </ div >
< div style =" width :100%; text - align : center ;
background - color :# aef15b ;" >
< input type = " button " value = " Lancer la méthode de l ' applet "
onClick = " document . applets [' second ']. doJavascript (); "/ >
</ div >
< div ....... </ div >
< applet codebase = " class /" code =" SecondApplet . class "
height =" 80 " width = " 300 " hspace =" 10 " vspace =" 10 "
name =" second " id =" secondApplet " >
< param name =" message " value =" Message Licence Gl " >
</ applet >
</ div >
</ body >
</ html >

M. Belguidoum (UMC) Programmation réseau 20 / 30


Interaction page web-applet

Interaction page web-applet


en cliquant sur le bouton (événement onClick) le code Javascript sera
exécuté : document.applets['second'].doJavascript();
le script se positionne sur l'applet portant le nom rst et appelle la
méthode doJavascript()
doJavascript() met à jour le JLabel à l'intérieur de l'applet

M. Belguidoum (UMC) Programmation réseau 21 / 30


Interaction applet-page web

1 Quelques rappels

2 Principe de fonctionnement des applets

3 Interaction page web-applet

4 Interaction applet-page web

5 Conclusion

M. Belguidoum (UMC) Programmation réseau 22 / 30


Interaction applet-page web

Interaction applet-page web

l'applet met à jour la page web en invoquant une méthode Javascript

Utiliser l'objet JSObject se trouvant dans l'archive plugin.jar dans


le dossier /lib de JRE (ou JDK).
Utiliser cette archive comme une bibliothèque externe

l'ajouter au projet, recompiler le programme et ajouter cette nouvelle


ressource dans la déclaration de l'applet dans la page web.

M. Belguidoum (UMC) Programmation réseau 23 / 30


Interaction applet-page web

Interaction applet-page web

< body style = " margin : auto ;" >


< script type =" text / javascript " >
function affiche ( str ){
document . getElementById (' label '). innerHTML = str ;
}
</ script >
......
< div ...... >
< applet mayscript =" true " codebase =" class /" archive =" lib / plugin . jar "
code =" ThirdApplet . class " height =" 80 " width =" 300 "
hspace =" 10 " vspace =" 10 " name =" third " >
< param name = " message " value =" Message pour les Licence GL " >
</ applet >
</ div >
/ body >

M. Belguidoum (UMC) Programmation réseau 24 / 30


Interaction applet-page web

Interaction applet-page web


import java . awt . BorderLayout ;
....
public class ThirdApplet extends JApplet {
......
private JSObject jso ;
public void init (){
setSize (300 , 80);
try { // On initialise l ' objet
jso = JSObject . getWindow ( this );
} catch ( JSException e ) {
// TODO Auto - generated catch block
e. printStackTrace ();}
......
this . bouton . addActionListener ( new ActionListener (){
public void actionPerformed ( ActionEvent arg0 ) {
String str = " Vous avez cliqué " + (++ count ) + " fois sur le bouton ";
label . setText ( str );
try { // On appelle la fonction Javascript
jso . call (" affiche " , new String [] { String . valueOf ( str )});
}
catch ( Exception ex ) { ex . printStackTrace ();}}});
...
}}
M. Belguidoum (UMC) Programmation réseau 25 / 30
Interaction applet-page web

Interaction applet-page web

M. Belguidoum (UMC) Programmation réseau 26 / 30


Conclusion

1 Quelques rappels

2 Principe de fonctionnement des applets

3 Interaction page web-applet

4 Interaction applet-page web

5 Conclusion

M. Belguidoum (UMC) Programmation réseau 27 / 30


Conclusion

Applets et sécurité

Javascript et les applets Java n'ont pas le droit d'accéder à la machine


du client

Les applets n'ont pas tous les droits sur une page web, au même titre
que Javascript.

Il ya possibilité de signer les applets en lui attribuant un certicat

L'utilisateur doit soit accepter le certicat, soit le refuser au


chargement de la page

Ce certicat stipule que l'applet peut accéder à des ressources de sa


machine, et lui demande s'il veut lui faire conance .

M. Belguidoum (UMC) Programmation réseau 28 / 30


Conclusion

Conclusion

Les applets peuvent dériver de java.awt.Applet ou de


javax.swing.JApplet.
Les applets n'ont pas de constructeur mais une méthode init().
les applets se comportent comme des applications fenêtrées.

La communication à partir de la page web vers l'applet se fait par


document.applets.
l'instruction Javascript :

La communication inverse se fait via l'objet JSObject qui se trouve


dans l'archive plugin.jar dans le dossier /lib de JRE (ou JDK).

Par défaut, les applets n'ont pas accès aux ressources de la machine
client.

Pour accéder à la machine du client, l'applet doit être signée

M. Belguidoum (UMC) Programmation réseau 29 / 30


Conclusion

Références

The java tutorials : Applets


http:
//download.oracle.com/javase/tutorial/deployment/applet/
Tutorial des applets : le site du zéro
http:
//www.siteduzero.com/tutoriel-3-10564-les-applets.html
support cours de F. Gayral

JDK 1.4 Demo Applets :


http://java.sun.com/applets/jdk/1.4/index.html ou dans le
répertoire demo du jdk installé sur votre machine

...

M. Belguidoum (UMC) Programmation réseau 30 / 30

Vous aimerez peut-être aussi