Tecnologie lato Client: Applet © 2005 Stefano Clemente Stefano Clemente

Slides:



Advertisements
Presentazioni simili
UNO STRUMENTO PER INTERAGIRE CON GLI UTENTI DELLE PAGINE WEB
Advertisements

Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 51 Applet configurabili Grazie alla sezione parametri aggiuntivi del comando di HTML è possibile.
Programmazione in Java
Corso di Fondamenti di Informatica
Unit à E4 Applet. Obiettivi Saper progettare e realizzare Applet Java allinterno di pagine HTML Comprendere le interazioni tra il browser e lapplet Saper.
A. Ferrari Alberto Ferrari. Un form html è una sezione di documento che contiene Testo normale e markup Elementi speciali chiamati controlli (checkbox,
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A1 Introduzione a Java.
Applet Java.
JavaScript 8. Altri oggetti JavaScript. history Contiene lelenco delle pagine visitate Sintassi: window.history frame.history history Proprietà length.
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
PHP.
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
Java2 Esercitazioni del corso di Sistemi Informativi Marina Mongiello
Il linguaggio java Esercitazioni del corso di Sistemi Informativi
S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele.
Modulo o Form in Html.
Laboratorio di Applicazioni Informatiche II mod. A
JavaScript Laboratorio di Applicazioni Informatiche II mod. A.
Applet Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA Uff
1 Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dellambiente di sviluppo, compilazione.
Gestione dei Progetti Software 2 (a.a. 204/05) - Lezione 4 1 Il package java.awt Gestione dellI/O orientato alla grafica: le finestre Sviluppo di interfacce.
Corso di Informatica A.A
CAPITOLO 1 JAVA: UN TUFFO NEL LINGUAGGIO E NELL'AMBIENTE.
Sistemi Operativi GESTIONE DEI PROCESSI.
Windows Sistema operativo con interfaccia grafica per PC IBM compatibili (varie versioni dal 95) La gestione dei file viene fatta secondo le modalità.
JAVA Security. Jdk1.0 sandBox Ilo sistema di sicurezza JAVA si basa sulla struttura della seandBox. In base a tale politica tutte le applicazioni eseguite.
Argomenti della lezione
Corso di PHP.
Guida IIS 6 A cura di Nicola Del Re.
Cosa è una applicazione distribuita?
HTML Lezione 5 Immagini. URL Un Uniform Resource Locator o URL (Localizzatore di risorsa uniforme) è una sequenza di caratteri che identifica univocamente.
HTML Creazione di moduli Prof.ssa Daniela Decembrino.
HTML Lezione 8 I collegamenti ipertestuali (link).
Corso di Informatica A.A Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Maria Vittoria Avolio Laurea.
Creare pagine web Xhtlm. Struttura di una pagina.
Java come linguaggio di programmazione
BIOINFO3 - Lezione 101 GLI IPERTESTI Una delle innovazioni introdotte da HTML e dal WWW in generale, rispetto ad un testo normale è sicuramente la possibilità
BIOINFO3 - Lezione 111 CGI-BIN CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. Il server web (httpd) della.
BIOINFO3 - Lezione 301 CGI-BIN Abbiamo visto che CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. In particolare.
Amministrazione della rete: web server Apache
ASP – Active Server Pages - 1 -Giuseppe De Pietro Introduzione ASP, acronimo di Active Server Pages, sta ad indicare una tecnologia per lo sviluppo di.
HTML HyperText Markup Language Linguaggio per marcare un’Ipertesto
HTML I Form in HTML5.
ASP.NET. …un po’ di ASP ASP (Active Server Pages) è una tecnologia Microsoft che consente di scrivere codice eseguibile (script) lato server, inserendo.
INTRODUZIONE A JAVASCRIPT
Introduzione. Introduzione Un’applet Java: Una applet ("applicazioncina") è una applicazione non autonoma, ma pensata per far parte di una pagina Internet.
HTML I tag HTML (parte 1). I tag HTML  I comandi che il browser interpreta  Etichette per marcare l’inizio e la fine di un elemento HTML  Formato e.
Un ambiente di sviluppo User Friendly per Java
CORSO Di WEB DESIGN prof. Leonardo Moriello
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
I collegamenti ipertestuali. I collegamenti ipertestuali si creano associando l'indirizzo (percorso/nome file) del nodo di destinazione ad un elemento.
Internet e HTML Diffusione di informazioni mediante la rete Internet.
Introduzione a Javascript
HTML 4.01 Apogeo. I tag di base Capitolo 1 I tag SintassiEsempi:
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Fondamenti di Markup Languages: Richiami di HTML © 2005 Stefano Clemente Stefano Clemente
La gestione degli eventi
CORSO INTERNET la Posta elettronica
Tecnologie lato Server: i Server Web © 2005 Stefano Clemente I lucidi sono in parte realizzati con materiale tratto dal libro di testo adottato tradotto.
Lezione 6: Form.  In alcuni documenti HTML può essere utile creare dei moduli (form) che possono essere riempiti da chi consulta le pagine stesse (es.
Eprogram informatica V anno.
I Sistemi Operativi. Definizione Per Sistemi Operativi (di seguito SO) si intendono quei pacchetti software, a loro volta costituiti da più sottoprogrammi.
Programmazione orientata agli Oggetti Introduzione a Java.
Eprogram informatica V anno. Programmare in rete.
Corso di programmazione di sistemi mobile 1 1 Android Activity, View e Layout.
Gestire i dati: download e salvataggio. L’importanza dei dati La quasi totalità delle applicazioni hala necessità di gestire varie funzionalità relative.
Controlli. Storyboard L’assistant editor consente una visualizzazione contestuale in cui sono affiancati verticalmente il ViewController nello storyboard.
Transcript della presentazione:

Tecnologie lato Client: Applet © 2005 Stefano Clemente Stefano Clemente

18 Ottobre 2005Stefano Clemente2 Riferimenti bibliografici Java Tutorial on-line − Downloadable Java Tutorial −

18 Ottobre 2005Stefano Clemente3 Introduzione Permettono di eseguire del codice Java incluso nelle pagine web Java è platform-independent − non c’è bisogno di sapere quale browser è in uso sui client Le pagine web sono più potenti Si possono fornire programmi agli utenti, ma eseguiti sulle loro macchine − minor carico per i server devono soltanto trasferire il codice − maggior carico per i client devono disporre della potenza di calcolo necessaria per l’esecuzione dei programmi Java

18 Ottobre 2005Stefano Clemente4 Introduzione Le applet sono soggette ad alcuni limiti, perché − è pur sempre codice scaricato da siti remoti − devono essere eseguiti su macchine di utenti di qualsiasi tipo − è indispensabile la sicurezza e la fiducia − devono essere applicate alcune restrizioni − devono essere eseguite in modo sicuro applet security managerL’utente è protetto dall’applet security manager

18 Ottobre 2005Stefano Clemente5 Introduzione Limiti − non possono essere utilizzate per “spiare” il client, ma possono leggere solo alcune informazioni versione di Java utilizzata nome e versione del sistema operativo i caratteri utilizzati come separatori di linea e di file il linguaggio e le impostazioni locali le valute − non possono alterare il sistema dell’utente − non possono eseguire programmi residenti sul client − non possono comunicare con host diversi dal server di origine − non possono leggere/scrivere sul file-system del client − le finestre aperte da una applet sono diverse dalle finestre aperte dalle altre applicazioni

18 Ottobre 2005Stefano Clemente6 Introduzione Possibilità delle applet − visualizzazione di immagini − riproduzione di suoni − ricezione di input dall’utente (azioni del mouse e pressione dei tasti della tastiera) − l’input può essere inviato al server − esecuzione di calcoli complessi

18 Ottobre 2005Stefano Clemente7 Strumenti Il programmatore che crea la applet − scrive con un editor il programma javac − lo compila utilizzando il Software Development Kit – SDK ( javac ) − crea con un editor la pagina web sorgente Per eseguire la applet − bisogna disporre di Java Runtime Environment (JRE) − si scarica la pagina web e il codice dell’applet appletviewer − si visualizza la pagina con un browser o con appletviewer

18 Ottobre 2005Stefano Clemente8 HTML: il tag applet... Attributi CODE= CODEBASE= WIDTH= HEIGHT= ARCHIVE=... In HTML 4.0 è sconsigliato l’uso del tag applet che si intende sostituire con il più generico tag

18 Ottobre 2005Stefano Clemente9 Applet AppletOgni applet viene implementata mediante la creazione di una sottoclasse della classe Applet La gerarchia dell’ereditarietà della classe Applet è mostrata nella figura accanto

18 Ottobre 2005Stefano Clemente10 Il ciclo di vita dell’applet Caricamento dell’applet Applet − viene creata un’istanza della classe che controlla l’applet (sottoclasse di Applet ) − l’applet si inizializza − l’applet comincia la sua esecuzione Quando si abbandona la pagina l’applet si arresta e quando si ritorna nella pagina l’applet si riavvia − anche per riduzione a icona e ripristino della finestra Alcuni browser permettono all’utente di ricaricare l’applet, il che si traduce in − arresto dell’applet − pulizia finale – l’applet rilascia le risorse che detiene − caricamento dell’applet

18 Ottobre 2005Stefano Clemente11 Il ciclo di vita dell’applet Uscita dal browser − arresto dell’applet − pulizia finale – l’applet rilascia le risorse che detiene Riassumendo, gli eventi del ciclo di vita dell’applet sono − inizializzazione − avvio − arresto − pulizia finale

18 Ottobre 2005Stefano Clemente12 Esempio 1

18 Ottobre 2005Stefano Clemente13 Esempio 1

18 Ottobre 2005Stefano Clemente14 Esempio 1

18 Ottobre 2005Stefano Clemente15 Commenti sull’esempio 1 L’applet Esempio1 è una sottoclasse della classe Applet class Ridefinisce quattro metodi della classe Applet − init – per inizializzare l’applet ogni volta che viene caricata o ricaricata − start – per avviare l’esecuzione in seguito al caricamento o a una nuova visita da parte dell’utente − stop – per arrestare l’esecuzione in seguito a chiusura del browser o abbandono della pagina da parte dell’utente − destroy – per la pulizia finale in seguito a arresto dell’applet Non è sempre necessario ridefinire i metodi − es. applet che non fanno altro che disegnarsi

18 Ottobre 2005Stefano Clemente16 Commenti sull’esempio 1 Il metodo init dovrebbe essere ridefinito quando l’inizializzazione è da eseguire una sola volta e non richiede dei tempi eccessivi Alcuni browser chiamano il metodo init più volte dopo il caricamento dell’applet Il metodo start dovrebbe essere ridefinito quando l’applet deve eseguire qualcosa dopo l’inizializzazione − Il metodo start può eseguire il lavoro dell’applet (non molto bello) avviare dei thread per l’esecuzione del lavoro (meglio)

18 Ottobre 2005Stefano Clemente17 Commenti sull’esempio 1 La maggior parte delle applet che ridefiniscono il metodo start dovrebbero ridefinire anche il metodo stop − Il metodo stop sospende l’esecuzione dell’applet e quindi non impegna risorse se l’utente non visualizza la pagina (es. animazione) La maggior parte delle applet non hanno bisogno di ridefinire il metodo destroy perché il metodo stop fa solitamente già tutto il necessario. Viene ridefinito per rilasciare risorse aggiuntive

18 Ottobre 2005Stefano Clemente18 Metodi di Drawing Nell’esempio 1 la ridefinizione del metodo paint definisce il modo in cui l’applet visualizza dei messaggi I metodi che un’applet può ridefinire per la visualizzazione sono − paint – metodo principale per la visualizzazione di informazioni − update – utilizzato in combinazione con paint per migliorare le prestazioni Sono ereditati dalla classe Applet, che li eredita a sua volta dalla classe Component dell’Abstract Window Toolkit (AWT)

18 Ottobre 2005Stefano Clemente19 Eventi Dalla classe Component è ereditato anche un insieme di metodi per la gestione degli eventi − action − mouseDown − handleEvent – “qualsiasi evento” Per gestire un evento bisogna ridefinire il relativo metodo nell’applet

18 Ottobre 2005Stefano Clemente20 Esempio 2

18 Ottobre 2005Stefano Clemente21 Metodi per aggiunta componenti interfaccia utente AWT fornisce anche le seguenti componenti per l’interfaccia utente − Bottoni (java.awt.Button) − Single-line text field (java.awt.TextField) − Checkbox (java.awt.Checkbox) − Larger text display e aree di editing (java.awt.TextArea) − Etichette (java.awt.Label) − Liste (java.awt.List) − Liste pop-up (java.awt.Choice) − Slider e scrollbar (java.awt.Scrollbar) − Aree di disegno (java.awt.Canvas) − Menu (java.awt.Menu, java.awt.MenuItem, java.awt.CheckboxMenuItem) − Contenitori (java.awt.Panel, java.awt.Window e sottoclassi)

18 Ottobre 2005Stefano Clemente22 Metodi per l’uso delle componenti Interfaccia Utente addadd − Aggiunge la componente removeremove − Rimuove la componente setLayoutsetLayout − Predispone il layout manager Metodi per aggiunta componenti interfaccia utente

18 Ottobre 2005Stefano Clemente23 Esempio 3

18 Ottobre 2005Stefano Clemente24 I vantaggi della API Applet La API applet permette di trarre vantaggi dalla relazione tra applet e browser La API è fornita dal package java.applet Grazie a API le applet possono: − ricevere dal browser la notifica su inizializzazione, esecuzione, arresto, ecc. − caricare file di dati relativi alla URL dell’applet o alla pagina nella quale viene eseguita − visualizzare delle brevi stringhe di stato − far visualizzare un documento al browser − trovare altre applet eseguite nella stessa pagina − riprodurre suoni − ricevere parametri specificati nel tag

18 Ottobre 2005Stefano Clemente25 API applet: cercare e caricare i file I file che un’applet ha bisogno di caricare sono indicati con una URL relativa; normalmente la applet usa − code-base – metodo getCodeBase − document-base – metodo getDocumentBase A meno di specifiche diverse indicate nel tag la code-base coincide con la document-base I dati di cui un’applet ha sempre bisogno sono solitamente relativi alla code-base I dati che l’utente che usa l’applet specifica (per mezzo di parametri) sono solitamente relativi alla document-base La classe Applet definisce dei modi convenienti per il caricamento di suoni e immagini relativamente a una URL base; per esempio se una applet è configurata con una delle seguenti strutture di directory per caricare l’immagine a.gif che si trova nella directory imgDir si può scrivere Image image = getImage(getCodeBase(), "imgDir/a.gif");

18 Ottobre 2005Stefano Clemente26 API applet: visualizzazioni di brevi stringhe di stato Sia i browser che altri visualizzatori di applet (es. programma appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestra − Nei browser le applet e il browser condividono la stessa barra Questa possibilità non dovrebbe essere utilizzata per visualizzare informazioni critiche − se le informazioni devono essere fornite a molti utenti dovrebbero essere visualizzate nell’area dell’applet − se le informazioni interessano pochi utenti dovrebbero essere visualizzate nello standard-output Unix = shell X-windows = finestra terminal Browser = Console Java La riga di stato può essere sovrascritta in qualsiasi momento da altre applet o dal browser showStatusIl metodo relativo è showStatus − showStatus("MyApplet: Loading image file " + file);

18 Ottobre 2005Stefano Clemente27 API applet: visualizzazioni di documenti all’interno del browser Un’applet può visualizzare del testo HTML showDocumentAttraverso il metodo showDocument di AppletContext l’applet dice al browser quale URL visualizzare e in quale finestra − non funziona con appletviewer showDocumentshowDocument ha due forme − public void showDocument(java.net.URL url) dice semplicemente al browser di visualizzare il documento all’URL specificata

18 Ottobre 2005Stefano Clemente28 API applet: visualizzazioni di documenti all’interno del browser − public void showDocument(java.net.URL url, String targetWindow) aggiunge la finestra nella quale il documento deve essere visualizzato; il secondo argomento può assumere i valori: − "_blank" nuova finestra senza nome. − "windowName" finestra dal nome “windowName” – se non esiste viene creata − "_self" stessa finestra o frame che contiene l’applet − "_parent" Stessa finestra che contiene l’applet, ma nel parent frame – se non esiste il parent frame è uguale a “_self” − "_top" Stessa finestra che contiene l’applet, ma nel frame principale – se non esiste il frame principale è uguale a “_self”

18 Ottobre 2005Stefano Clemente29 API applet: invio di messaggi ad altre applet Le applet possono parlare con altre applet entro i seguenti limiti − la maggior parte dei browser richiedono che le applet provengano dallo stesso server abbiano la stessa code-base La API richiede inoltre che le applet siano in esecuzione − sulla stessa pagina − sulla stessa finestra del browser Una applet può individuare un’altra applet − per nome – metodo getApplet di AppletContext − cercando tutte le applet della pagina – metodo getApplets di AppletContext in entrambe i casi vengono restituiti uno o più oggetti Applet sui quali l’applet invocante può richiamare dei metodi

18 Ottobre 2005Stefano Clemente30 Esempio 4: Applet Receiver

18 Ottobre 2005Stefano Clemente31 Esempio 4: Applet Sender

18 Ottobre 2005Stefano Clemente32 Esempio 1: Applet Sender

18 Ottobre 2005Stefano Clemente33 Esempio 4: Applet Sender

18 Ottobre 2005Stefano Clemente34 Esempio 4: HTML

18 Ottobre 2005Stefano Clemente35 Esempio 5: getApplets

18 Ottobre 2005Stefano Clemente36 Esempio 5: getApplets

18 Ottobre 2005Stefano Clemente37 Esempio 5: HTML

18 Ottobre 2005Stefano Clemente38 API applet: Riproduzione di suoni Il supporto per i suoni è fornito dalla classe Applet è dall’interfaccio AudioClip del package Java.Applet ".au"È supportato un solo formato – 8 bit, µlaw, 8000 Hz, one-channel, file ".au" di Sun I metodi do Applet relativi ai suoni sono − getAudioClip(URL)getAudioClip(URL, String) − getAudioClip(URL), getAudioClip(URL, String) restituiscono un oggetto che implementa l’interfaccia AudioClip − play(URL)play(URL, String) − play(URL), play(URL, String) Eseguono l’AudioClip relativo alla URL specificata getDocumentBasegetCodeBaseLa forma a due parametri prende una URL di base (restituita da getDocumentBase o da getCodeBase ) e l’URL del file sonoro relativa alla base. È consigliato utilizzare − la code-base per i suoni distribuiti con l’applet − la document-base per i suoni specificati dall’utente

18 Ottobre 2005Stefano Clemente39 API applet: Riproduzione di suoni I metodi dell’interfaccia AudioClip sono: − play riproduce il suono una sola volta − loop ripete continuamente il suono − stop arresta la riproduzione del suono sia con loop che con play

18 Ottobre 2005Stefano Clemente40 Il tag : i parametri Finora abbiamo visto la forma più semplice Alcune applet permettono all’utente di personalizzare la loro configurazione attraverso l’immissione di parametri − I parametri non sono altro che tag da inserire all’interno del tag applet secondo la sintassi seguente

18 Ottobre 2005Stefano Clemente41 Il tag : i parametri public String getParameter(String name)Per leggere i parametri specificati dall’utente le applet usano il metodo public String getParameter(String name) getParameter restituisce sempre stringhe, per cui l’applet deve provvedere alla conversione in altri tipi se necessario (es. Integer.parseInt) − Se necessario bisogna definire nell’applet dei valori di default per i parametri. − getParameter può essere utilizzata anche per recuperare i valori degli attributi del tag applet CODE, WIDTH, HEIGHT…

18 Ottobre 2005Stefano Clemente42 Il tag : codice HTML e testo alternativo Il browser non conosce il tag applet Il browser non conosce il tag applet La stringa “Il browser non conosce il tag applet” nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag. Questo tipo di stringa − è detto codice HTML alternativo − deve essere inserita tra i tag e e comunque dopo i tag Se il browser è in grado di eseguire Java, il codice HTML alternativo è ignorato. In questo caso può essere definito del testo alternativo attraverso attributo ALT del tag applet (nell’esempio la stringa “Non riesco a eseguire l’applet”) − L’uso dell’attributo ALT è per segnalare all’utente che il browser, sebbene abilitato all’esecuzione di codice Java, non è riuscito a eseguire l’applet

18 Ottobre 2005Stefano Clemente43 Il tag : la directory dell’applet I browser assumono per default che il codice java dell’applet sia nella stessa directory (URL base) del documento HTML in cui l’applet è richiamata Spesso però il codice Java è in altre directory del server In questi casi l’attributo CODEBASE dice al browser in quale directory recuperare i file dell’applet Se aURL è una URL − relativa, allora va intesa relativa alla document-base, cioè alla directory della pagina HTML − assoluta, allora l’applet può essere scaricata da una qualsiasi directory, anche su un altro server

18 Ottobre 2005Stefano Clemente44 Il tag : la directory dell’applet

18 Ottobre 2005Stefano Clemente45 Il tag : la directory dell’applet In questo caso, l’URL è assoluta e può indicare anche una directory su un altro server

18 Ottobre 2005Stefano Clemente46 Il tag : raggruppare in un unico file i file dell’applet Se un’applet è composta da più file, potrebbe essere conveniente raggruppare tutti questi in un unico file archivio Occorre valutare: − la dimensione dell’applet − le performance − l’ambiente che il generico utente potrebbe aver Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP) Si possono ottenere migliori prestazioni nel download comprimendo l’archivio

18 Ottobre 2005Stefano Clemente47 Il tag : raggruppare in un unico file i file dell’applet La specifica di file archivio produce il seguente comportamento del browser − il browser cerca prima di tutto i file archivio nella stessa directory dell’applet − successivamente cerca la classe applet all’interno dei file archivio − se non lo trova prova allora a caricarlo come se nessun archivio fosse stato specificato Il formato standard per gli archivi Java è JAR, introdotto in JDK 1.1 ed è basato sul formato ZIP Gli archivi sono specificati attraverso l’attributo ARCHIVE del tag applet; archivi multipli sono specificati separando i nomi degli stessi con virgole

18 Ottobre 2005Stefano Clemente48 Il tag : raggruppare in un unico file i file dell’applet Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory: jar cvf file.zip *.class *.gif Per creare un archivio Jar per le classi nel package com.mycompany.myproject: jar cvf file.zip com/mycompany/myproject/*.class *.gif