Previous Up Next

Chapter 6  Java: applets

6.1  Introduction

Les fondations du langage Java ont été mises en place en 1990 par un groupe de programmeurs de Sun Microsystems. Ils pensaient que la prochaine vague d'informatique serait compacte et personnelle et tournerait autour de produits d'électronique grand-public tels que magnétoscopes et téléphones, et non des ordinateurs de bureau.

De cette idée est né une société FirstPerson et un langage OAK résolument orienté réseau et objet, qui sans clients véritables, l'électronique grand public n'étant pas prêt à investir dans cette technologie, fut repris et amélioré par la maison Sun, et donné à la communauté Internet sous le nom de Java. Le but étant de faire de Java le langage de programmation du NET. Les utilisateurs et diffuseurs du Web, frustrés par l'interactivité limitée disponible avec HTML et CGI (Common Gateway Interface), accueillirent cette nouvelle philosophie avec enthousiasme.

A ces débuts, Java a surtout été utilisé pour créer des applets (petits programmes transmis aux navigateurs), mais cette technique trop liée aux capacités des interpréteurs Java (JVM) a montré ces limites. Aujourd'hui, le déploiement de Java est surtout utilisé coté serveur (voir chapitre 13 page ??)



6.2  Caractéristique de Java

Java a été développé en déterminant les caractéristiques de C et C++ qui pouvaient être éliminées dans le contexte de la programmation orientée-objet tout en conservant une syntaxe semblable.
class HelloWorld {
  static public void main(String args[])
  {
     System.out.println("Hello World!");
  }
}

Java est un langage de programmation complet, pas spécialement lié au Web , il dispose de tous les opérateurs, binaires, logiques arithmétiques




Java est résolument objet, les chaînes, les tableaux, voire les types de bases peuvent être en-capsulés dans des objets. Comme pour tous les langages objets, de nombreux packages , fournissent des solutions évitant de recoder des classes très usitées (help html, mail, jdbc, swing, java2d, java3d,....).


Java est un langage intégrant la technologie réseau, l'accès fichiers se fait par des URL, il dispose en outre d'importantes bibliothèques pour gérer des objets distribués (RMI, JDBC ...)
 String url = "jdbc:postgresql://medias.obs-mip.fr:5432/towns 
 Connection c = DriverManager.getConnection(url); 
 Statement s = c.createStatement();
 ResultSet r = s.executeQuery("SELECT * FROM VILLES");
 while (r.next())
 {
   int    i = r.getInt("Population"); 
   String s = r.getString("Ville");
   System.out.println("Ville "+s+" a "+i+" hab."); ......
 }

Java est à la croisée d'un langage interprété et compilé, il doit être compilé (traduit en byte-code) avant d'être interprété par une JVM (Java Machine) lié au processeur. Cette particularité est liée au compromis temps d'exécution/portabilité. L'architecture du byte-code est neutre(endianess, flottant.....)

Des JIT (Just In Time Compiler) présents dans IE et Netscape , permettent d'accélérer la phase d'interprétation. Des processeurs Java sont ou ont été envisagés (NC) , mais la jeunesse du langage et ses évolutions empêchent d'envisager sérieusement une solution industrielle.


Figure 6.1: Chaine de réalisation d'un programme Java



Java est sur: il a été conçu pour être exploité dans des environnements clients serveurs et distribués. Une applet ne dispose d'aucune ressource coté clients susceptible de nuire à son intégrité (pas d'accès aux périphériques, aux disques ...)

6.3  Construire une applet

Une applet est un objet qui hérite de la classe applet
   import java.applet.Applet;      // la classe applet 
   import java.awt.Graphics;       // la classe graphique
   public class HelloWorld extends Applet {
     public void paint(Graphics g) {   // impléméntation de la méthode paint
         g.drawString("Hello world!", 50, 25);
     }
   }
Le transformer en byte code
  javac hello.java
L'insérer dans du code html en précisant sa taille
 <HTML>
  <HEAD> <TITLE> A Simple Program </TITLE> </HEAD>
  <BODY>
    Here is the output of my program:
    <applet code=Hello.class name=hello 
            width=300 height=300>
    </applet>
  </BODY>
 </HTML>
Dans cet exemple le toolkit graphique utilisé est AWT, qui permet de construire boutons, zone de saisies, listes déroulantes, mais aussi d'utiliser des primitives graphiques pour faire toute sorte de tracés dans les fenêtre de ces objets (ie drawLine, drawString....).

Plusieurs extensions (Swing, java2d, java3d) fournissent des packages supplémentaires permettant d'utiliser des objets plus sophistiqués, ils doivent être évités coté client, pour ménager la bande passante et la patience de l'utilisateur.

Enfin, pour obtenir une certaine portabilité des applets créés, sachez que la plupart des JVM des navigateurs ne comprennent que du java 1.1



Si vous voulez en savoir plus:

http://membres.lycos.fr/slegall/

http://tecfa.unige.ch/tecfa/teaching/formcont/ecole-ete-tunis2001/tie/html/java-awt/java-awt-3.html


Previous Up Next