Authentication  Classe (abstraite) AuthenticatorAuthenticator  PasswordAuthentication représente un couple password + user PasswordAuthentication  Méthode.

Slides:



Advertisements
Présentations similaires
Réaliser en Java un programme client d’une Base de Données
Advertisements

Masters IIGLI et ILGII – Intranet internet extranet – – Claude Montacié 1 Cours n° 8 Langage HTML.
Sérialisation des objets
Le mécanisme des exceptions
1 I. Bus logiciel ? Mireille Blay-Fornarino Daprès et Sacha Et (cf. références en bas.
Communication par diffusion : Multicast Clientn Serveur Client1 Client2 Gr.
Les Sockets et Java Cours Harmonisation Anne-Marie Déry.
Programmation Réseaux Illustration : Les Sockets en Java Anne-Marie Déry À travailler seuls Concepts généraux Mise en œuvre Java.
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
Programmation Web Les JSP.
Page 1 Les applets Jacques Lonchamp. Page 2 Présentation Une applet est téléchargée à partir dune machine distante qui fournit le code. Ce chargement.
(Classes prédéfinies – API Java)
Plan du cours La sérialisation: – comment stocker et restaurer les Objets? Les interfaces graphiques et la programmation évènementielle. –Comment concevoir.
Les Interfaces graphiques Les Swing. Les interfaces graphiques: Introduction Une application est une boîte noire. Prend des entrées et produit des sorties.
Cours 6 : XML et les architectures N-tiers – Tier Applicatif
Programmer en JAVA par Tama


JSP Java Server Pages. Introduction Afin dimplémenter les règles métiers, coté serveur dans une application Web, larchitecture Java propose trois solutions.
Servlet JAVA.
1 Le mécanisme des exceptions Qu'est-ce qu'une exception? Comment définir et signaler des exceptions? Comment récupérer des exceptions?
COURS DE PROGRAMMATION ORIENTEE OBJET :
UNIVERSITE CHOUAIB DOUKKALI Département des mathématiques
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Écouteurs de click d'une fenêtre
Langage Oriente Objet Cours 4.
SERVLETS PRESENTATION
POO-L3 H. Fauconnier1 C) Méthodes: Redéfinition Un classe hérite des méthodes des classes ancêtres Elle peut ajouter de nouvelles méthodes Elle peut surcharger.
Java Héritage, interfaces.
Classes abstraites et Interfaces
POO-L3 H. Fauconnier1 Supplément gratuit…. POO-L3 H. Fauconnier2 Entrée-sortie public static void main(String[] args) { // sortie avec printf ou double.
1 Les paquetages («packages»). 2 L'objectif avec les paquetages («packages») est de rendre accessibles aux utilisateurs des classes définies par d'autres.
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
Java /internet. URL sbn=56888#toc sbn=56888#toc
Cours 4 Héritage (suite).
Cours 5 Héritage, Interfaces, classes internes. POO-L3 H. Fauconnier2 La classe Object Toutes les classes héritent de la classe Object Object méthodes:
COURS DE PROGRAMMATION ORIENTEE OBJET :
1 CSI 2532 Lab6 Application Web et DB Février 27, 2012.
1111 Gestion des exceptions Objectifs À la fin de ce cours, vous serez capables de : • Expliquer les concepts de base de la gestion des exceptions.
1212 Entrée et sortie de fichiers Objectifs À la fin de ce cours, vous serez capables de : • Lire à partir de la console • Écrire sur la console.
J201 (JOC) Java Avancé juin 2007 ~ Brigitte Groléas ~
1 Fichers Binaires, Accès Direct et Objets. 2 Données binaires. Il s'agit ici de lire et écrire des données binaires par opposition à du texte. Pour ce.
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
Cours n°3 rappels. POO-L3 H. Fauconnier2 Entrée-sortie public static void main(String[] args) { // sortie avec printf ou double a = 5.6d ; double b =
Factory Design Patterns. Contents Factory patterns: principesFactory patterns: principes The Factory Method patternThe Factory Method pattern The Abstract.
Cours 9 Exceptions (fin) Généricité. POO-L3 H. Fauconnier2 Chaînage d'exceptions  Une exception peut être causée par une autre.  il peut être utile.
Cours 7 Classes locales Clonage Divers: tableaux.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 6 – Exceptions.
Cours Les flux ou streams. Cours 162 Flux : objet possédant des méthodes capables de lire ou écrire des flots d’octets sur tout support (mémoire,
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
Interfaces graphiques. Composants d'interface utilisateur graphique (GUI) 1 Bibliothèques Awt et Swing Procédures communes pour l'utilisation de ces clases.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 3 – Classes et objets en Java Master 1 SIGLIS1 Java Lecteur - Chapitre 3 Classes et objets en Java.
Strings et Tableaux en Java
Les sockets.
Les classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
Schéma de conception Factory Method Exemple Sylvain Giroux.
Cours 2 Introduction. POO-L3 H. Fauconnier2 D) Un exemple…  Pile abstraite et diverses implémentations.
Cours du 5 novembre.
IUT du Limousin L.U.P Michel Vergnaud Programmation Objet - Java.
Héritage H. Batatia. plan Notion (que signifie l’héritage) Ecriture en java Héritage multiple (interdit) Instanciation (partie propre et partie héritée)
Protocoles réseaux Sommaire (prévision): Couche liaison de données
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
1 Chapitre III (~70 transparents) Compléments. 2 Au sommaire de ce chapitre 1. Les fichiers Les classes utilitaires
Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java
Cours 8 Compléments réseaux. Quelques compléments Java réseaux 2 H. Fauconnier M2-Internet.
Introduction à la programmation objet avec java
Héritage Conception par Objet et programmation Java
JAVA Les Entrées-sorties
Java Swing. Principes de base  Des composants graphiques (exemple: JFrame, JButton …)  Hiérarchie de classes  Des événements et les actions à effectuer.
Transcription de la présentation:

Authentication  Classe (abstraite) AuthenticatorAuthenticator  PasswordAuthentication représente un couple password + user PasswordAuthentication  Méthode getPasswordAuthentication() à redéfinir pour obtenir un PasswordAuthenitcation  Méthode setDefault(Authenticator) définit l'Authenticator pour le système C'est à lui que s'adressera le système à chaque fois que nécessaire 1 H. Fauconnier M2-Internet

Pour apache:  Fichier.htaccess: (il faut aussi un AllowOverride AuthConfig dans httpd.conf ) AuthType Basic AuthName "restreint" AuthUserFile /Users/hf/Sites/.psswd Require user hf .psswd est le fichier des mots de passe  htpasswd –c /Users/hf/Sites/.passwd hf 2 H. Fauconnier M2-Internet

Exemple 3 H. Fauconnier M2-Internet

html et swing  plusieurs packages permettent de visualiser et travailler avec html  swing peut utiliser html  Exemple Exemple 4 H. Fauconnier M2-Internet

Swing  le texte de la plupart des composants utilisant du texte de Swing (labels, buttons, menu items, …) peut être du HTML ExempleExemple: import javax.swing.*; public class HTMLLabelApplet extends JApplet { public void init() { JLabel theText = new JLabel( " Voilà un exemple de HTML dans label bold " + "en italic ici. " + "avce des paragrahes, des nouvelles lignes, " + " couleurs " + "et plus généralement les constructions htmn "); this.getContentPane().add(theText); } 5 H. Fauconnier M2-Internet

JEditorPane  JEditorPane contient une implémentation de HTML 3.2:  constructeurs:  JEditorPane() JEditorPane  JEditorPane(String url) JEditorPaneString  JEditorPane(String type, String text) JEditorPaneString  JEditorPane(URL initialPage) JEditorPaneURL  méthodes  public void setPage(URL page) throws IOException  public void setPage(String url) throws IOException  public void setText(String html) 6 H. Fauconnier M2-Internet

Exemple import java.io.IOException; import javax.swing.JEditorPane; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.WindowConstants; public class BrowserMinimal { public BrowserMinimal(String st) { JEditorPane jep = new JEditorPane(); jep.setEditable(false); try { jep.setPage(st); } catch (IOException ex) { jep.setContentType("text/html"); jep.setText(" impossible de charger "+st+" "); } JScrollPane scrollPane = new JScrollPane(jep); JFrame f = new JFrame("exemple"); f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); f.setContentPane(scrollPane); f.setSize(512, 342); f.setVisible(true);} } 7 H. Fauconnier M2-Internet

Hyperliens  Pour manipuler les hyperliens:  HyperlinkEvent HyperlinkEvent  HyperlinkListener HyperlinkListener avec une seule méthode –public hyperlinkUpdate(HyperlinkEvent e); 8 H. Fauconnier M2-Internet

Exemple import javax.swing.JEditorPane; import javax.swing.event.HyperlinkEvent; import javax.swing.event.HyperlinkListener; public class SuivreLien implements HyperlinkListener{ private JEditorPane pane; public SuivreLien(JEditorPane pane) { this.pane = pane; } public void hyperlinkUpdate(HyperlinkEvent evt) { if (evt.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { try { pane.setPage(evt.getURL()); } catch (Exception ex) { pane.setText(" impossible de trouver " + evt.getURL() + " "); } 9 H. Fauconnier M2-Internet

Exemple SimpleBrowserSimpleBrowser import java.awt.EventQueue; import java.awt.Frame; import java.io.IOException; import javax.swing.JEditorPane; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.WindowConstants; public class SimpleBrowser { public SimpleBrowser(String initialPage) { JEditorPane jep = new JEditorPane(); jep.setEditable(false); jep.addHyperlinkListener(new SuivreLien(jep)); try { jep.setPage(initialPage); } catch (IOException ex) { jep.setContentType("text/html"); jep.setText(" impossible de charger" +initialPage+" "); ex.printStackTrace(); } 10 H. Fauconnier M2-Internet

Exemple (suite) JScrollPane scrollPane = new JScrollPane(jep); JFrame f = new JFrame("Un Browser Simple"); f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); f.setContentPane(scrollPane); f.setSize(512, 342); EventQueue.invokeLater(new FrameShower(f)); } private static class FrameShower implements Runnable { private final Frame frame; FrameShower(Frame frame) { this.frame = frame; } public void run() { frame.setVisible(true); } 11 H. Fauconnier M2-Internet

URLConnection  URLConnection est une classe abstraite qui représente une connexion active spécifiée par une URL URLConnection  Principe:  construire un objet URL  invoquer openConnection() de cet objet URL: retourne un objet URLConnection  configurer la connexion  lire les "headers"  construire une input stream et lire les données  construire une output stream et écrire les données  fermer la connexion 12 H. Fauconnier M2-Internet

Méthodes  setAllowUserInteraction autorise/interdit l'interaction avec un utilisateur  setDoInput autorise/interdit l'entrée  setDoOutput autorise/interdit la sortie  setIfModifiedSince  setUseCaches  getContent  getHeaderField  getInputStream  getOutputStream  getContentEncoding  getContentLength  getContentType  getDate  getExpiration  getLastModifed 13 H. Fauconnier M2-Internet

OuvertureOuverture d'une page: import java.net.*; import java.io.*; public class ConnexionURL { public static void main(String[] args) { BufferedReader Entree = new BufferedReader(new InputStreamReader(System.in)); String url; try { while ((url = Entree.readLine()) != null) { URL u = new URL(url); URLConnection uc = u.openConnection(); InputStream raw = uc.getInputStream(); InputStream buffer = new BufferedInputStream(raw); Reader r = new InputStreamReader(buffer); int c; while ((c = r.read()) != -1) {System.out.print((char) c);} } } catch (MalformedURLException ex) { System.err.println(url + " URL Malformée"); } catch (IOException ex) {System.err.println(ex); } 14 H. Fauconnier M2-Internet

Ouverture d'une page Ouverture d'une page (avec codage correct) public class SourceViewer3 { public static void main (String[] args) { for (int i = 0; i < args.length; i++) { try { // set default encoding String encoding = "ISO "; URL u = new URL(args[i]); URLConnection uc = u.openConnection(); String contentType = uc.getContentType(); int encodingStart = contentType.indexOf("charset="); if (encodingStart != -1) { encoding = contentType.substring(encodingStart+8); } InputStream in = new BufferedInputStream(uc.getInputStream()); Reader r = new InputStreamReader(in, encoding); / H. Fauconnier M2-Internet

Date dernière modification public class DerniereModif { public static void main(String args[]) { for (int i=0; i < args.length; i++) { try { URL u = new URL(args[i]); HttpURLConnection http=(HttpURLConnection)u.openConnection(); http.setRequestMethod("HEAD"); System.out.println(u + "a été modifiée " + new Date(http.getLastModified())); } // end try catch (MalformedURLException ex) { System.err.println(args[i] + " URL??"); } catch (IOException ex) { System.err.println(ex); } } // end for } // end main } // end DernierModif 16 H. Fauconnier M2-Internet

//... int c; while ((c = r.read()) != -1) { System.out.print((char) c); } catch (MalformedURLException ex) { System.err.println(args[0] + " URL?"); } catch (IOException ex) { System.err.println(ex); } } // end if } // end main } // end SourceViewer3 17 H. Fauconnier M2-Internet

Lire les headers public class HeaderViewer { public static void main(String args[]) { for (int i=0; i < args.length; i++) { try { URL u = new URL(args[i]); URLConnection uc = u.openConnection(); System.out.println("Content-type: " + uc.getContentType()); System.out.println("Content-encoding: " + uc.getContentEncoding()); System.out.println("Date: " + new Date(uc.getDate())); System.out.println("Last modified: " + new Date(uc.getLastModified())); System.out.println("Expiration date: " + new Date(uc.getExpiration())); System.out.println("Content-length: " + uc.getContentLength()); } // end try 18 H. Fauconnier M2-Internet

(Suite) //... catch (MalformedURLException ex) { System.err.println(args[i] + "URL?? "); } catch (IOException ex) { System.err.println(ex); } System.out.println(); } // end for } // end main } // end HeaderViewer 19 H. Fauconnier M2-Internet

Afficher le header public class afficheHeaders { public static void main(String args[]) { for (int i=0; i < args.length; i++) { try { URL u = new URL(args[i]); URLConnection uc = u.openConnection(); for (int j = 1; ; j++) { String header = uc.getHeaderField(j); if (header == null) break; System.out.println(uc.getHeaderFieldKey(j) + ": " + header); } // end for } // end try catch (MalformedURLException ex) { System.err.println(args[i] + "URL ???"); } catch (IOException ex) { System.err.println(ex); } System.out.println(); } // end for } // end main } // end afficheHeaders 20 H. Fauconnier M2-Internet

Protocoles  À partir d'une url, openConnection() permet d'obtenir une URLConnection  La classe concrète correspondante est déterminée par la partie protocole (exemple http) de l'url.  Protocole: interactions avec le client, génération des requêtes, interprétation des headers etc.  Content: conversion des données dans un format java 21 H. Fauconnier M2-Internet

Protocoles  Classes  URL  URLConnection (abstraite) URLConnection  URLStreamHandler (abstraite) URLStreamHandler  URLStreamHandlerFactory (interface) URLStreamHandlerFactory  Pour un nouveau protocole: Écrire une sous classe concrète URLConnection, une sous classe concrète URLStreamHandler Pour utiliser ce protocole: implémenter URLStreamHandlerFactory 22 H. Fauconnier M2-Internet

Protocoles…  À partir d'une url extraction de la partie protocole (exemple mailto)  transmettre à URLStreamHandlerFactory  qui détermine l'URLStreamHandler correspondant au protocole 23 H. Fauconnier M2-Internet

Protocole…  Construction d'un objet URL  Extraction partie protocole  Le constructeur de l'URL détermine l'URLStreamHandler:  Dans le cache  Si un URLStreamHandlerFactory est installé lui demander  Essayer plusieurs instanciations (…)  Si échec MalformedURLException  Appel openConnection()  Demander à l'URLStreamHandler de retourner une URLConnnection adaptée (IOExeception)  Interagir avec la ressource distante par cette URLConnection 24 H. Fauconnier M2-Internet

Exemple (finger) % telnet rama.poly.edu 79 Trying Connected to rama.poly.edu. Escape character is '^]'. Login Name TTY Idle When Where jacola Jane Colaginae *pts/7 Tue 08: marcus Marcus Tullius pts/15 13d Tue 17:33 farm-dialup11.poly.e matewan Sepin Matewan *pts/17 17: Thu 15: hengpi Heng Pin *pts/10 Tue 10: nadats Nabeel Datsun pts/12 56 Mon 10: H. Fauconnier M2-Internet

FingerURLConnection public class FingerURLConnection extends URLConnection { private Socket connection = null; public final static int DEFAULT_PORT = 79; public FingerURLConnection(URL u) { super(u); } public synchronized InputStream getInputStream( ) throws IOException { if (!connected) this.connect( ); InputStream in = this.connection.getInputStream( ); return in; } public String getContentType( ) { return "text/plain"; }//… 26 H. Fauconnier M2-Internet

(Suite) public synchronized void connect( ) throws IOException { if (!connected) { int port = DEFAULT_PORT; } this.connection = new Socket(url.getHost( ), port); OutputStream out = this.connection.getOutputStream( ); String names = url.getFile( ); if (names != null && !names.equals("")) { names = names.substring(1); names = URLDecoder.decode(names); byte[] result; try { result = names.getBytes("ASCII"); } catch (UnsupportedEncodingException ex) { result = names.getBytes( ); } out.write(result); } out.write('\r'); out.write('\n');out.flush( ); this.connected = true; } 27 H. Fauconnier M2-Internet

Handler import java.net.*; import java.io.*; public class Handler extends URLStreamHandler {Handler public int getDefaultPort( ) { return 79; } protected URLConnection openConnection(URL u) throws IOException { return new FingerURLConnection(u); } 28 H. Fauconnier M2-Internet

URLStreamHandlerFactory import java.net.*; public class MaFactory implements URLStreamHandlerFactory {MaFactory public URLStreamHandler createURLStreamHandler(String protocol) { if (protocol.equalsIgnoreCase("finger")) { return new Handler( ); } else { //... return null; } 29 H. Fauconnier M2-Internet

Et ensuite public class SourceViewer {SourceViewer public static void main (String[] args) { URL.setURLStreamHandlerFactory(new MaFactory( )); try { URL u = new URL(args[0]); InputStream in = new BufferedInputStream(u.openStream( )); Reader r = new InputStreamReader(in); int c; while ((c = r.read( )) != -1) {System.out.print((char) c); } } catch (MalformedURLException ex) {System.err.println(args[0]+" mauvaise URL"); } catch (IOException ex) { System.err.println(ex); } } } 30 H. Fauconnier M2-Internet