Présentation générale de Java

publicité
Les applets
Plan
Architecture mise en œuvre (matérielle et logicielle)
Implémentation d’une applet
Transformation d’une application graphique en
une applet
Le chargement des applets
Les fichiers JAR
Le cycle de vie d’une applet
Passage de paramètres à une applet
Restrictions imposées à une applet
2
Architecture matérielle et logicielle
mise en œuvre
Serveur WEB
Poste Client
Protocole HTTP
Héberge :
• Une Page HTML
• Une Applet
Possède :
• Un navigateur WEB
OU
• Le programme exécutable
appletviewer (fourni avec le JDK)
3
Implémentation d’une applet
(1/4)
Il faut tout d’abord écrire un programme Java.
import java.awt.*;
import javax.swing.*;
class Panneau extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawString("Bienvenue dans mon applet !", 75, 100);
}
}
4
Implémentation d’une applet
(2/4)
public class Applet1 extends JApplet
{
public void init()
{
// Le gestionnaire mise en forme par défaut est de type
// BorderLayout.
Container contentPane = getContentPane();
contentPane.add(new Panneau());
}
}
Ce programme doit être compilé en un fichier de
classes (fichier(s) « .class »).
5
Implémentation d’une applet
(3/4)
Enfin, écrire un fichier HTML indiquant le fichier
à charger
<HTML>
<BODY>
<APPLET
CODE="Applet1.class"
WIDTH=300
HEIGHT=300
>
</APPLET>
</BODY>
</HTML>
Début fichier HTML
Début corps
Commande applet
Nom du fichier contenant les
bytecodes de l’applet
Largeur initiale de la
fenêtre consacrée à l’applet
Hauteur initiale de la
fenêtre consacrée à l’applet
Fin commande applet
Fin corps
Fin fichier HTML
6
Implémentation d’une applet
(4/4)
L’arbre d’héritage de cette application est :
<<Abstrait>>
Container
(from awt)
Panel
JComponent
(from awt)
(from swing)
Applet
JPanel
(from applet)
(from swing)
JApplet
Panneau
(from swing)
Applet1
7
Remarques
 La gestion événementielle dans une applet est
identique à celle vue lors de la programmation
graphique.
 Une applet peut être téléchargée à partir d’un
répertoire autre que le répertoire de base. Par
exemple :
< APPLET CODE="Applet1.class" CODEBASE="Rep"
WIDTH=300 HEIGHT=300
>
8
Transformation d’une application
graphique en une applet (1/2)
 Pour convertir une application graphique en
une applet, il faut :
1 Supprimer la méthode main de l’application. Le
premier objet devant être créé est spécifiée dans la
page HTML.
2 Remplacer la classe JFrame par une classe JApplet .
Rendre cette classe public, c’est indispensable au
chargement de l’applet. Généralement, cette classe
ne sera pas dotée d’un constructeur : les activités
réalisées dans le constructeur de la fenêtre principale
de l’application seront reportées dans la méthode init
9
de l’applet.
Transformation d’une application
graphique en une applet (2/2)
3 Eliminer l’appel à setSize. Pour les applets, le
dimensionnement dépend des paramètres WIDTH et
HEIGHT du fichier HTML. De même, si l’application
effectue un appel à setTitle, il faut le supprimer. En
effet, les applets n’ont pas de barre de titre, mais
rien n’empêche de donner un titre à la page Web en
tant que telle via la balise HTML <TITLE>.
4 Il faut aussi supprimer l’appel à
addWindowListener, car une applet ne peut être
fermée : elle s’achève quand on sort du navigateur.
5 Créer une page HTML avec la balise appropriée au
chargement du code de l’applet.
10
Exercice
Transformer le programme Java “ Calculatrice ” afin qu’il devienne
une applet.
Puis écrire le fichier HTML qui permettra le chargement de l’applet
précédente dans le navigateur du poste client.
11
Correction exercice
Fichier source AppletCalculatrice.java
Fichier source AppletCalculatrice.html
12
Le chargement des applets
(1/2)
Que se passe-t-il lorsque le navigateur rencontre
dans le fichier HTML précédent la ligne suivante
?
<APPLET CODE="AppletCalculatrice.class"
WIDTH=200 HEIGHT=200>
13
Le chargement des applets
(2/2)
Navigateur
WEB
Serveur HTTP
Connexion
Recherche des
références faites aux
autres classes dans
la classe Applet
Calculatrice
Chargement de la classe AppletCalculatrice
Déconnexion
Résolution des références
Recherche des
références faites aux
autres classes dans
la classe
PanneauCalculatrice
Connexion
Chargement de la classe PanneauCalculatrice
Déconnexion
Résolution des références
14
Les fichiers JAR
(Java Archive 1/2)
Ils permettent de regrouper dans un seul fichier
tous
les
éléments
nécessaires
au
fonctionnement de l’applet (fichiers de classes,
images, audio) => Diminution du nombre de
connexions.
Pour créer un fichier d’archive
jar cvf AppletCalculatrice.jar AppletCalculatrice.class
PanneauCalculatrice.class 
ou
jar cvf AppletCalculatrice.jar *.class 
15
Les fichiers JAR
(Java Archive 2/2)
Pour utiliser une archive JAR dans un fichier
HTML.
<APPLET CODE="AppletCalculatrice.class"
ARCHIVE="AppletCalculatrice.jar"
WIDTH=180 HEIGHT=180>
</APPLET>
Nom de l’applet
Fichier JAR
 Le
fichier
AppletCalculatrice.jar
est
téléchargé depuis le serveur WEB avant le
chargement de l’applet AppletCalculatrice.
 Chaque fois, qu’un fichier de classes est requis, le
navigateur le recherche dans le fichier JAR. S ’il n ’est
pas présent alors il est recherché sur le serveur WEB.
16
Le cycle de vie d’une applet
init( )
Nouveau
Initialisatio
n de
l’applet
start( )
Applet
stoppée
destroy()
stop( )
Applet
active
start( )
Mort
17
Passage de paramètres à une
applet (1/2)
Une applet peut recevoir des paramètres en
provenance du fichier HTML. Par exemple :
<HTML>
<BODY>
<APPLET
CODE = "Infos.class"
WIDTH
= 250
HEIGHT
= 100
>
<PARAM NAME = "Texte", VALUE = "Un message">
<PARAM NAME = "Nombre", VALUE = "2000">
</APPLET>
</BODY>
</HTML>
18
Passage de paramètres à une
applet (2/2)
import javax.swing.* ;
public class Infos extends JApplet
{
public void init ()
{
String nomTexte = getParameter ("Texte") ;
String nomNombre = getParameter ("Nombre") ;
int nombre ;
System.out.println ("Texte = " + nomTexte) ;
System.out.println ("Nombre = " + nomNombre) ;
nombre = Integer.parseInt(nomNombre) ;
}
}
19
Restrictions imposées aux
applets (1/2)
La machine virtuelle Java interdit à une applet
de :
 Lancer un programme exécutable localement.
 Lire ou d’écrire dans le système de fichiers local.
 Communiquer avec un hôte différent du serveur d’où
elle provient.
 Obtenir des informations relatives au système local à
l’exception d’informations banales telles que : version
de Java utilisée, les caractères de fin de ligne, etc.
20
Restrictions imposées aux
applets (2/2)
Ces restrictions pouvant être trop fortes dans
certains cas, il est possible de créer des applets
certifiés.
 L’applet transporte alors un “ certificat sécurisé ” qui
donne l’origine de l’applet. Son origine étant garantie,
il est alors possible d’attribuer à l’applet des droits
supplémentaires.
21
Téléchargement