Top Banner
1 02/03/98 SF Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 [email protected] lyon.fr http://lisisun1/~sfrenot/ cours/
39

02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 [email protected] sfrenot/cours

Apr 03, 2015

Download

Documents

Ninette Pepin
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

1

02/03/98 SF

Programmation Internetet Intranet

*Java complément de cours

S. Frénot INSA Lyon 1998

[email protected]

http://lisisun1/~sfrenot/cours/

Page 2: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

2

02/03/98 SF

Paquetage Standards

Page 3: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

3

02/03/98 SF

Package java.net

• Application Réseau :

– URL : représente un objet de type URL

– URLConnection/HttpURLConnection : représente la

gestion d'une connexion

– Socket et ServerSocket représente les points de

connexion TCP

– DatagramPacket et DatagramServer représente les points

de connexion UDP

– InetAdress représente une adresse TCP/IP

Page 4: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

4

02/03/98 SF

Package java.io• Gestion des flux

– Octets : InputStream et OutputStream– Char (2octets) : Dérivent de Reader et Writer– Tubes : PipeInputStream, PipeOutputStream

• Accès aux fichiers– File, FilenameFilter, RandomAccesFile

• Classe de sérialisation d'objets– ObjectInputStream, ObjectOutputStream

• Classes de service– Buffered, Zipped, StreamTokenizer

• exemple : BufferedInputStream(InputStream in, int size)

• Serialisation– interface Serializable, writeObject et readObject

Page 5: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

5

02/03/98 SF

Package java.lang• La classe Objet

• Types de base : Boolean, Character, Byte, Short, Interger, Long, Float, Void

• Math : fonctions mathématiques avancées

• String et StringBuffer

• Runtime et System: Machine Virtuelle

• Thread, ThreadGroup et Process (Runnable)

• Throwable

Page 6: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

6

02/03/98 SF

Package java.lang.reflect• Nécessaire d'Introspection

– Interface member : décrit les membres d'une classe• Classes : Constructor, Field, Method

• Classe : Modifier– public, private, protected, static, final, synchronized, interface, abstract,

native

– transient : non persistant

– volatile : variable à jour dans un thread

• Classe : Array

• ==> très utile pour les composants logiciels– JavaBean

Page 7: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

7

02/03/98 SF

Package java.math

• abstract class Number implements Serializable

BigInteger : Entiers de longueur variable

=> cryptographie

BigDecimal : Nombre réels avec une bonne précision => calcul financier

Page 8: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

8

02/03/98 SF

Packetage java.security• Provider : fournisseur d'algorithmes de cryptage et de

gestion de clés. • Identity : entité identifiée par le système de sécurité• KeyPair : clé privée, clé publique pour la gestion des

certificats et des signatures• Certificate : atteste qu'une clé publique est celle du

propriétaire. Notion d'attestion par une entité tierce dite de confiance

• Signature : mécanisme d'authentification d'un message et intégrité

• Signer : générer des signatures

Page 9: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

9

02/03/98 SF

Package java.sql• Principes de connexion sur une base de données

• Connection : connexion sur un moteur de bases de données

• Driver : Sous couche permettant de dialoguer avec le moteur SQL

• DataBaseMetaData : Meta données du moteur

• CallableStatement : Procédures stockées

• Statement, ResultSet : Execution– ==> Wrapper d'ODBC : JDBC

Page 10: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

10

02/03/98 SF

Package java.text• Internationalisation

– Traduction de texte– Encodage de caractères – Format de nombres– Date et Heures– Techniques de tri

• Classes – NumberFormat, DateFormat– Collator : tri de chaînes de caractères– BreakIterator : cesures de mots et de phrases

Page 11: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

11

02/03/98 SF

Package java.util• Hashtable, Vector, Enumeration--------------------------------

• Calendar, Date, TimeZone--------------------------------

• Locale, ResourceBundle----------------------------

• EventObject, EventListener---------------------------

• StringTokenizer, BitSet, Observer et Observable

java.util.zip– Sommes de contrôles CRC32 et Alder32– GZIPInputStream, ZIPInputStream ...

Page 12: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

12

02/03/98 SF

Package java.applet

getAppletInfo, getParameterInfo, init, start, stop, destroy--------------------------URL getDocumentBase( ); URL getCodeBase( ); String getParameter(String name); boolean isActive( ); void appletResize (int width, int heigt);

-------------------------AppletContext getAppletContext( ); void showDocument(URL url, String target);void showStatus(String status);Applet getApplet(String name);Enumeration getApplets();

-------------------------AudioClip getAudioClip(URL url);Image getImage(URL url);

Classe : Applet Interfaces : AppletContext AppletStub AudioClip

Page 13: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

13

02/03/98 SF

Package java.rmi

• java.rmi : classe pour les proxy clients.

– Exception et interface Remote

• java.rmi.server : classe pour les objets serveurs

– RemoteObject, Serialisation...

• java.rmi.dgc : Distributed Garbage Collector

• java.rmi.registry : Dénomination des objets

Page 14: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

14

02/03/98 SF

Divers

Page 15: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

15

02/03/98 SF

Environnement JDK• JDK1.0 ==> JDK 1.1.5 ==> JDK 1.2beta

• /bin/javac, java, appletviewer, javadoc ...

• /demo/

• /include/

• /lib/classes.zip

• /src/

Page 16: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

16

02/03/98 SFRessources Java : Livres• JavaSeries O'Reilly

– Français et Anglais– Couvre tous les aspects : tutorial, thread, jdbc, Beans– Ecris par les concepteurs du langage : Exploring Java (valise)

• Bibles de référence– The Java Language Specification : James Gosling, Bill Joy, Guy Steele Addison-

Wesley– Titanium, Sam's Net

• Java client-server – Cédric Nicolas, Christophe Avare, Frédéric Najman, Eyrolle

• Sun (http://www.sun.com/)– Spécifications : Java, VM, JavaBeans...

• Conception Objets– Design Patterns Erich Gamma ITP

Page 17: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

17

02/03/98 SF

Ressources Java : Web

• http://www.sun.com

jdk, documents, pointeurs, projets

• http://www.gamelan.com

Applet, Scripts, JavaScripts

• http://www.stars.com

Codes, Exemples, Tutoriels (pas que java)

• JavaDevelopperConnexionhttp://java.sun.com/jdc

http://java.sun.com/jdc/techDocs/newsletter/index.html

Page 18: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

18

02/03/98 SF

Règles d'écriture de code Java• Un fichier .java par classe

• Entête classique : description...

• Commentaires : JavaDoc– Début de bloc : /** .... **/– Balises : @author, @version, @see, @param, @return, @exception

• Exemple/** * Affiche un bouton rond* <pre> * BoutonRond b = new BoutonRond(titre);* monPanel.add(b);* </pre>*@see awt.button*@author C. Nicolas**/

Page 19: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

19

02/03/98 SF

Convention de nommage• paquetages minuscule• classes MajusulePourLaPremiereLettreDeChaqueMot• méthodes minusculePourLaPremiereCommeLaClasseAprès• constantes MAJUSCULE_AVEC_SOULIGNE• variables/méthodes priv/protected termineParSouligne_• variables/méthodes statiques termineParDeuxSoulignes__• variables locales à une méthode minuscules_avec_soulignes

• méthodes fabriquant des objets de classe X newX• méthodes de conversion retournant des objets de type X toX• accesseur d'un attribut y de type X X getY()• accesseur de modification void setY(X valeur)

• classe de définition d'une exception FinDeLaClasseAvecLeMotException• interface se distinguant d'une classe similaire InterfaceSeTermineParIfc• classe qui se distingue de son interface ClasseSeTermineParImp

Page 20: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

20

02/03/98 SF

Recommandations 1/2• Pas de variables d'instance publiques

• Pas d'accesseurs inutiles

• Identifier les variables immuables (pas de synchro)

• Peu de variables/méthodes statiques (classe)

• Long plutôt que int et double / float– moins d'erreur de dépassement

• Protected mieux que Private

• Minimiser les accès aux variables d'instance dans les méthodes– utiliser des accesseurs protected

• Pas de surcharge sans nouveau paramètre (sinon utiliser instanceof())

• Méthodes simples

• Préferer void : x.methode1().methode2()

• méthodes publiques = synchronized

• Si surcharge de Object.equals() alors surcharge de Object.hashcode( )

• Pas de clonage intempestif

• Utiliser notifyAll plutot que notify ou resume

Page 21: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

21

02/03/98 SF

Recommandations 2/2• Si possible créer un constructeur sans paramètre

– Class.newInstance()

• Pas de final sinon pour de l'optimisation de performances

• Interfaces mieux que classes abstraites (héritage simple)

• Préférer abstract void maMethodeVide(); à void maMethodeVide(){ }

• Import java.awt.Button mieux que java.awt.*

• Nommer les thread pour le débogage en distant

• Utiliser plutôt implements Runnable que extends Thread

• Ne pas abuser du Garbage Collector (-verbosegc et -prof)

• BufferedInputStream : optimisation des performances

• Surcharger toString des classes définies (debogage)

Ne pas croire tout ce qu'on dit !

Page 22: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

22

02/03/98 SF

Serveurs Java

• http://jeeves.javasoft.com/

• http://www.acme.com/java/software/

Acme.Serve.Serve.html (Jef Poskanzer) 1500lignes

+ sources

• http://www.w3.org/pub/WWW/Jigsaw/

==> Dynamiques

==> Multithreads

Page 23: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

23

02/03/98 SF

Serveur

Page 24: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

24

02/03/98 SF

Java Par L'exemple : Le serveur• import java.net.*;• import java.io.*;

• public class MonServeurWeb {• public static void main( String argv[]) throws IOException {• ServerSocket ss=new

ServerSocket(Integer.parseInt(argv[0]));• while (true) new UneConnexion(ss.accept()).start();• • class UneConnexion extends Thread{• Socket client;• UneConnexion (Socket client) throws SocketException {• this.client = client;• setPriority(NORM_PRIORITY -1);• }

Page 25: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

25

02/03/98 SF

Java Par l'Exemple : Le serveur• public void run() {• try {• bufferedReader in=new BufferedReader(• new InputStreamReader(client.getInputStream(), "8859_1"););• OutputStream out=client.getOutputStream();• PrintWriter pout=new PrintWriter(• new OutputStreamWriter(out, ""8859_1"), true);• String larequete=in.readLine();

• StringTokenizer st=new StringTokenizer(larequete);• if ((st.countTokens()>=2) && st.nextToken().equals("GET")){• if ((request=st.nextToken()).startsWith("/"))• request=request.substring(1);• if ((request.endsWith("/") ||request.equals(""))• request=request+"index.html";• try { • FileInputStream fis=new FileInputStream(request);• byte[] data=new byte[fis.available()];• fis.read(data);• out.write(data);• out.flush();• catch(FileNotFoundException e){• pout.println("404 Object not found");• } else pout.println("400 Bad Request");• client.close();• catch (IOException e) {• System.out.println("I/O error" + e);}• } //fin run()• }//fin class

Page 26: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

26

02/03/98 SF

Relocalisation

Page 27: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

27

02/03/98 SF

Relocalisation de page + traces• Shell :

trace=/tmp/logrealocations.logecho $REMOTE_ADDR >> $traceecho "Location: http://www.insa-lyon.fr:8000"echo

• Servletimport java.io.*;import java.servlet.*;import java.servlet.http.*;public class gotoUrl extends HttpServlet { public void service(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException { DataOutputStream log = new DataOutputStream(new

FileOutputStream("goto.log", true)); log.writeChars(req.getRemoteAddr()+"\n"); log.close(); res.sendRedirect(req.getQueryString());}}

Page 28: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

28

02/03/98 SF

Les Layouts

Page 29: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

29

02/03/98 SFLayoutManager : exemples• import java.awt.*;• public class Grid extends java.applet.Applet {• public void init() {• setLayout(new GridLayout(3,2)); //ligne, colonne (2,0)• add(new Button("Un");• ...• add(new Button("cinq");}}

• import java.awt.*;• public class Flow extends java.applet.Applet{• public void init() {• add (new Button("Un"));• add (new Button("Deux"));• add (new Button("Trois"));• add (new Button("Quatre"));• add (new Button("Cinq"));}}

Page 30: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

30

02/03/98 SF

LayoutManager : BorderLayout• import java.awt.*;• • public class uneBordure extends java.applet.Applet {• public void init() {• setLayout (new java.awt.BorderLayout());• Panel p new Panel();• p.add(new Button("Est"));• add(p, "East");• p = new Panel();• p.add(new Button("Ouest"));• add (p, "West");• p=new Panel();• p.add(new Button("Nord"));• add (p, "North");• }• }

Page 31: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

31

02/03/98 SF

LayoutManager : CardLayout• import java.awt.*;• public class main extends java.applet.Applet {• CardLayout cards = new CardLayout();• public void init() {• setLayout(cards);• add(new Button("Un"), "NomCarteUn");• add(new Button("Deux"), "NomCarteDeux");• }• public void agir() {• cards.next(this);• return true;}• }

Page 32: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

32

02/03/98 SF

Calculatrice 1/3

• import java.awt.*;

• import java.awt.event.*;

• public class Calculator extends java.applet.Applet implements ContainerListener, ActionListener {

• GridBagConstraints gbc = new GridBagConstraints(); {

• gbc.weightx=1.0; gbc.weihty=0; gbc.fill=GridBagConstraints.BOTH";}

• TextField lAffichage = new TextField();

• private void addGB(Container cont, Component comp, int x, int y) {

• if (!(cont.getLayout() instanceof GridBagLayout))

• cont.setLayout(new GridBagLayout());

• gbc.gridx=x; gbc.gridy=y;

• cont.add(comp, gbc);

• }

Page 33: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

33

02/03/98 SF

Calculatrice 2/3public void init() {

setFont(new Font("Monospaced"), Font.BOLD, 24);

addContainerListener(this);

gbc.gridwidth=4;

addGB(this, lAffichage, 0, 0);

// haut de la calculatrice

Panel topRow=new Panel( );

topRow.addContainerListener(this);

gbc.gridwidth=1;

gbc.weightx=1.0;

addGB(toprow, new Button("C"),0,0);

gbc.weightx=0.33;

addGB(toprow, new Button("%"),0,0);

gbc.weightx=1.0;

addGB(toprow, new Button("+"),0,0);

gbc.gridwidth=4;

addGB(this, topRow, 0, 1);

gbc.weightx=1; gbc.gridwidth=1;

//Les chiffres

for (int j=0; j<3:; j++)

addGB(this, new Button("", ((2-j)*3+i+1)), i, j+2);

// -, x, /

addGB(this, new Button("-"), 3,2);

addGB(this, new Button("x"), 3,2);

addGB(this, new Button("\u00F7"), 3,2);

// Ligne du bas

Panel bottomRow=new Panel( );

bottomRow.addContainerListener(this);

gbc.weightx=1.0;

addGB(bottomRow, new Button("0"),0,0);

gbc.weightx=0.33;

addGB(bottomRow, new Button("."),0,0);

gbc.weightx=1.0;

addGB(bottomRow, new Button("="),0,0);

gbc.gridwidth=4;

addGB(this, bottomRow, 0,5);

}

Page 34: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

34

02/03/98 SF

Calculatrice 3/3public void componentAdded(Container e) {

Component comp e.getChild( );

if (comp instanceof Button)

((Button)comp).addActionListener(this);

}

public void componentRemoved(ContainerEvent e) { }

public void actionPerformed(ActionEvent e) {

if (e.getActionCommand( ).equals("C"))

theDisplay.setText("");

else

theDisplay.setText(theDisplay.getText( ) + e.getActionCommand( ) );

}

}

Page 35: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

35

02/03/98 SF

Application 1/3 (traitement)import java.awt.*;import java.awt.event.*;

public class ApplicationSimple{ // La classe principale sert de délégué

public void quitterAppli() { System.exit(0); } public void maximiser(Frame f){ f.setSize(f.getToolkit().getScreenSize()); } public static void main(String args[]){ ApplicationSimple monAppli=new ApplicatioSimple(); IHMSimple monIHM = new IHMSimple(monApli);}

Page 36: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

36

02/03/98 SF

Application 2/3 (IHM)class IHMSimple { public IHMSimple(ApplicationSimple uneAppli) { Frame maFrame; = new Frame(); maFrame.setLayout(new FlowLayout());

//Premier bouton Button monBoutonQuitter=new Button("ATCHAW!"); //On lui donnne un adapatateur monBoutonQuitter.addActionListener(new MonAdaptateur(MonAdaptateur.QUITTER, uneAppli)); //2nd bouton Button monBoutonAgrandir=new Button("Maximise"); //On lui donnne un adapatateur monBoutonAgrandir.addActionListener(new MonAdaptateur(MonAdaptateur.MAXIMISER, uneAppli));

maFrame.add(monBoutonQuitter); maFrame.add(monBoutonAgrandir); maFrame.pack); maFrame.setVisible(true);}}

Page 37: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

37

02/03/98 SF

Application 3/3 : Adaptateur class MonAdaptateur implements ActionListener

{

static final int QUITTER = 1; static final int MAXIMISER = 2; protected int typeAction; protected ApplicationSimple lAppli;

public MonAdaptateur(int unTypeAction, ApplicationSimple uneAppli) {

typeAction=unTypeAction; lAppli=uneAppli;

} public actionPerformed(ActionEvent e){ Object unComposant=e.getSource(); do {unComposant=((Component)unComposant).getParent; } while (!(unComposant instanceof Window)); Window fenetremere=(Window) unComposant;

switch (typeAction) { case QUITER : lAppli.quitterAppli(); break; case AGRANDIRlAppli.maximiser((Frame)fenetremere);

break; }}}

Page 38: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

38

02/03/98 SF

Objets : Exemples de codes d'appels<P><OBJECT classid="http://www.miamachina.it/analogclock.py"></object>

<OBJECT codetype="application/java" classid="AudioItem" witdh="15" height="15"> <PARAM name="snd" value="Hello.au"></OBJECT>

<OBJECT id="clock1" classid ="clsid:663C8FEF-1EF9--11CF-A3DB-080036F12502" data="data:application/x-oleobject;base64, .donn base64."> A clock</object>

! <APPLET code="Bubble.class" width="500" heigth="500"> Des bulles </APPLET>

Page 39: 02/03/98 SF 1 Programmation Internet et Intranet * Java complément de cours S. Frénot INSA Lyon 1998 stephf@lisiflory.insa-lyon.fr sfrenot/cours/

39

02/03/98 SF

Applet / Standalonepublic class HelloWeb extends Applet { publc void paint (java.awt.Graphics gc) { gc.drawStrings ("Hello Web!", 125, 95); } public static void main (String[] args) { Frame laFrame=new Frame(); Applet helloWeb = new HelloWeb(); laFrame.add("Center",helloWeb()); laFrame.setSize(200,200); helloWeb.init(); helloWeb.start(); theFrame.show(); }

}