Esecuzioni client-side: le Applet
|
|
|
- Roberta Ceccarelli
- 9 anni fa
- Visualizzazioni
Transcript
1 Esecuzioni client-side: le Applet Introduzione Le Applet sono programmi Java che vengono eseguiti all interno dei browser Utente finale BROWSER HTML doc (visualizzato) Applet HTTP Requests HTTP Responses Web Server Embedded JVM (Interprete) 2
2 Esempi di Applet Visualizzazione di molecole ( Tracker di satelliti artificiali, NASA ( ml) 3 Un esempio di codice Un Applet è una classe Java che estende java.applet.applet In alternativa, si può far uso della libreria grafica Swing, e in questo caso l Applet deve estendere javax.swing.japplet import javax.swing.*; import java.awt.*; public class PrimaJApplet extends JApplet { public void init() { Container contentpane = getcontentpane(); JLabel label = new JLabel( Questa e la mia prima Applet", SwingConstants.CENTER); contentpane.add(label); } } 4
3 Una pagina HTML per l Applet L Applet deve essere integrata all interno di una pagina HTML che la ospita A questo scopo viene utilizzato un apposito tag HTLM Esempio: <html> <body> <H2> Esempio di pagina con Applet </H2> <applet code= PrimaJApplet.class width=300 height=300> </applet> </body> </html> La dimensione è specificata qui, non dentro l Applet! 5 Compilazione ed esecuzione Compilazione: javac PrimaJApplet.java Esecuzione: Si fa riferimento al file HTML che contiene la Applet, e la si visualizza con il browser In alternativa, si può utilizzare una utility standard di Java: appletviewer Questa utility non visualizza l intero contenuto HTML, ma solo la Applet 6
4 Risultato: 7 Il codice: commento import javax.swing.*; import java.awt.*; public class PrimaJApplet extends JApplet { public void init() { Container contentpane = getcontentpane(); JLabel label = new JLabel( Questa e la mia prima Applet", SwingConstants.CENTER); Package utilizzati Classe Swing Si ottiene il Container su cui operare Si definisce una JLabel } } contentpane.add(label); Si posiziona sul Container 8
5 Osservazioni Le Applet sono create, eseguite e distrutte dal browser La dimensine di una Applet è stabilita nel relativo file HTML Le Applet non hanno un titolo, come le pagine HTML (ma possono avere menù) Il codice per la costruzione dell Applet viene collocato nel metodo init(). Non c è la necessità di fornire un main() Una Applet non può essere chiusa: la terminazione è determinata dal browser. Non occorre invocare il metodo show(), come nelle applicazioni grafiche Java: una Applet viene visualizzata automaticamente. 9 Applet con più file.class Un Applet può essere sviluppata con più di una classe In questo caso, la sua esecuzione coinvolge tutti i relativi file.class, ma dentro l HTML ci si riferisce soltanto alla classe applet Il caricamento delle classi viene svolto dal modulo class loader che provvede a scaricarsi dal server i.class necessari, al momento del loro primo utilizzo. 10
6 Trasporto di Applet con file JAR Per praticità, si possono raggruppare i file richiesti dalla Applet, e trasferirli con un unica connessione di rete A questo scopo si usano i file.jar (Java Archive). Si tratta di file.zip che contengono un file manifest, usato per descrivere il contenuto dell archivio. Il Class Loader cerca nel JAR I file necessari, prima di provare a ottenerli tramite le rete. 11 Riferimento a JAR da HTML Se si utilizzano file JAR, occorre specificare qualche informazione in più nel documento HTML che contiene la Applet, p.es.: Classe applet, entro i JAR <APPLET CODE= MiaApplet.class" ARCHIVE= ClassiEImmagini.jar,AltroMateriale.jar" WIDTH = 65 HEIGHT = 20 > </APPLET> JAR da scaricare 12
7 Creare JAR Un file.jar può essere creato con l apposito comando, p.es. jar cf ClassiEImmagini.jar *class *.gif -> Inserisce nel jar tutti i file.class e.gif presenti nella directory, creando anche il manifest 13 Esempio: : Applet complessa Contenuto (parziale) del JAR relativo 14
8 Ciclo di vita di una Applet A differenza di una normale applicazione, l esecuzione di una Applet è controllata dal browser attraverso alcuni metodi: init() Invocato al caricamento start() Invocato dopo init e quando il browser ritorna sulla pagina stop() Invocato quando esce dalla pagina destroy() Invocato alla terminazione del browser Non-existent init() On-page destroy( ) start( ) stop( ) Off-page destroy( ) 15 Ciclo di vita: metodi (I) Per controllare il comportamento della Applet, il programmatore deve ridefinire (overriding) i metodi che ne regolano il ciclo di vita: public void init() Eseguito una sola volta al caricamento dell Applet: deve contenere le azioni di inzializzazione public void start() Chiamato ogni volta che il browser torna alla pagina con la Applet, dopo essersi spostato su altre pagine. Usato per riprendere attività interrotte (p.es. animazioni). 16
9 Ciclo di vita: metodi (II) public void stop() Chiamato ogni volta che il browser lascia la pagina con la Applet. Usato per fermare temporaneamente attività che impegnano la CPU (p.es. animazioni) public void destroy() Chiamato allo shut-down del browser Usato per rilasciare risorse acquisite Tipicamente poco utilizzato 17 Applet come programma standalone Per poter eseguire una Applet come un programma a se stante, occorre: Fornirla di un metodo main che: istanzi la Applet all interno di un Frame (o JFrame) ne specifichi le dimensioni richiami su tale istanza i metodi init() e start() 18
10 Esempio di Applet standalone Browser Standalone... public static void main( String args[] ) { GraphApplet applet = new GraphApplet(); Frame fr = new Frame("GraphApplet in a Frame"); fr.add( applet ); fr.setsize( 300, 200 ); applet.init(); applet.start(); fr.setvisible(true); } Applet e sicurezza: la sandbox Possiamo scaricare Applet dalla rete, ed eseguirle sul nostro computer: ci fidiamo? Non abbiamo la possibilità di controllare direttamente l esecuzione delle Applet: esistono problemi di sicurezza Risposta al problema: si impongono restrizioni a ciò che un Applet può fare (sandbox) Si impiega un Applet security manager, che lancia una SecurityException ogni volta che un Applet tenta un accesso non consentito 20
11 Restrizioni di default (I) Di default, l esecuzione di una Applet è forzata dentro la sandbox, ovvero con restrizioni molto strette Le cosiddette signed Applets possono avere maggiori privilegi. 21 Restrizioni di default (II) Ciò che un Applet normalmente non può fare: Leggere, scrivere, cancellare e avere informazioni su qualsiasi file locale Eseguire un altro programma Leggere alcune proprietà di sistema Connettersi a una porta che non sia sull host da cui proviene Caricare una libreria Java Invocare exit 22
12 Proprietà di sistema inaccessibili alle Applet "java.class.path Java classpath "java.home" Directory di installazione di Java "user.dir Directory corrente del client "user.home Home directory del client "user.name User account corrente 23 Comunicare con l Home Server Tipicamente le Applet utilizzano la rete solo per accedere a risorse presenti sul server da cui provengono Quale tipo di risorse? Testi Multimedia Qualsiasi tipo, tramite connessioni TCP-like 24
13 Dov è l Home Server? Una risorsa web si localizza tramite un URL; in Java, una classe apposita gestisce oggetti di questo tipo: java.net.url Come recuperare l URL del server di provenienza? Da una sottoclasse di Applet: getcodebase() restituisce l URL della Applet getdocumentbase() restituisce l URL della pagina HTML che contiene la Applet Una volta ottenuto l URL, si possono aprire stream in input da esso 25 Esempio: accedere a un file di testo Un file di testo può essere letto utilizzando un InputStream L InputStream può essere ottenuto direttamente da un oggetto URL import java.net.*;... InputStream in = url.openstream();... 26
Applets. Java. Restrizioni delle applets. Restrizioni delle applets
Java creare applets G. Prencipe [email protected] Applets Java offre la capacità di creare applets Sono piccoli programmi che possono essere eseguiti all interno di un browser Web Dato che questi programmi
Corso sul linguaggio Java
Corso sul linguaggio Java Modulo L6 (JAVA9) 1 Introduzione alle applet 1 Prerequisiti Architettura client/server Elementi di base HTML Programmazione Java Utilizzo package awt di Java 2 1 Introduzione
Java Applet. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu [email protected] Java Applet 1 Application VS Applet Una
Java: la libreria delle classi
Java: la libreria delle classi Applet anatomia di un applet cenni di html La libreria JDBC per l accesso ai database il package java.sql 213 Applet Un applet è una applicazione Java che ha una forma particolare
Programmazione in rete e laboratorio
Programmazione in rete e laboratorio 2001-02 JAVA Alberto Martelli PROGRAMMAZIONE GRAFICA Molti programmi interagiscono con l utente attraverso una interfaccia grafica GUI - Graphical User Interface Java
Applets: Applicazioni Java in pagine Web
Applets: Applicazioni Java in pagine Web Gli applets sono dei particolari programmi Java studiati per essere eseguiti all'interno delle pagine web. Dal punto di vista dell'utente di un browser (Explorer,
TECNOLOGIE APPLICAZIONI WEB Linguaggio Java: Le Applet
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE APPLICAZIONI WEB Linguaggio Java: Le Applet Prof. Franco Zambonelli Lucidi realizzati in collaborazione
19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso
Interfacce grafiche. Una GUI (Graphic User Interface) contiene vari componenti: bottoni, etichette, immagini...
Interfacce grafiche Una GUI (Graphic User Interface) contiene vari componenti: bottoni, etichette, immagini... Alcuni componenti ne contengono altri (ad esempio le finestre), e sono detti contenitori.
Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e polimorfismo
Esempi al calcolatore su: 1) 2) Subtyping e polimorfismo 1 Esempio 1: 2 Introduzione Java prevede due automatismi legati ai costruttori: Se una classe non ha costruttori viene creato automaticamente il
Cosa è importante: pom.xml Goal Plug-in Repository
Cos è Maven? Maven è un software usato principalmente per la gestione di progetti Java e build automation, ma è utile anche per gestire documentazione, report, dipendenze... Cosa è importante: pom.xml
APPLICAZIONI & APPLET
APPLICAZIONI & APPLET Java è un ottimo linguaggio per costruire applicazioni anche non per Internet anche non grafiche ma si è diffuso storicamente, e trae forza, dal concetto di applet come piccola (?)
Guida introduttiva su Eclipse. Ing. Marco Dell'Unto [email protected]
Guida introduttiva su Eclipse Ing. Marco Dell'Unto [email protected] Introduzione Eclipse è un ambiente di sviluppo (IDE) multilinguaggio e multipiattaforma scritto in Java. E Open Source. Può
Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi
Java Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java
programmi sorgente: files.java compilatore Indipendenza di java dalla macchina ospite Programmi java Programmi java Programmi java files.class bytecode linker/loader bytecode bytecode Java API files.class
GESTIONE DEGLI ERRORI
GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori
Introduzione al package grafico Swing
Introduzione al package grafico Swing Architettura di javax.swing Java supporta direttamente nella propria architettura il concetto di applicazione grafica, tramite il package javax.swing, in cui i componenti
Programmazione ad Oggetti. JFrame è la classe di base per le finestre Fornisce tutte le caratteristiche di una finestra vuota
Programmazione ad Oggetti Interfacce grafiche V 1.2 Marco Torchiano 2005 JFrame JFrame è la classe di base per le finestre Fornisce tutte le caratteristiche di una finestra vuota Barra del titolo Pulsanti
PROVA FINALE Ingegneria del software
PROVA FINALE Ingegneria del software Ing. Jody Marca [email protected] Laboratorio N 3 Cosa faremo oggi 2 Interfaccia grafica e SWING Lettura e scrittura di Files di properties Internazionalizzazione
testo Saveris Web Access Software Istruzioni per l'uso
testo Saveris Web Access Software Istruzioni per l'uso 2 1 Indice 1 Indice 1 Indice... 3 2 Descrizione delle prestazioni... 4 2.1. Utilizzo... 4 2.2. Requisiti di sistema... 4 3 Installazione... 5 3.1.
GUI e java swing. Elmenti della GUI. Eventi e listener contenitori componenti layout manager. caratteristiche speciali
GUI e java swing Raffaella Brighi, a.a. 2005/06 Corso di Laboratorio II. A.A. 2005-06 CdL Operatore Informatico Giuridico. Elmenti della GUI Eventi e listener contenitori componenti layout manager caratteristiche
Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals()
Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals() Ereditarietà (Inheritance) RIASSUMIAMO DALLA SCORSA
Grafica swing in Java
Grafica swing in Java JFrame Costruttori public JFrame() Crea un nuovo Frame inizialmente invisibile public JFrame(Stringtitle) Crea un nuovo frame, inizialmente invisibile, con un testo specificato. Metodi
Parte II.4 World Wide Web
Parte II.4 World Wide Web Elisabetta Ronchieri Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Dicembre 1, 2015 Argomenti World Wide Web URL Pagine Web World Wide
RMI: metodi equals e hashcode
RMI: metodi equals e hashcode Per verificare se due oggetti remoti contengono gli stessi dati, la chiamata indirizzata al metodo equals() avrebbe bisogno di contattare i server dove si trovano gli oggetti
Programmazione ad Oggetti
Programmazione ad Oggetti Java Eccezioni Eccezioni in breve Un eccezione è un oggetto che descrive una situazione anomala o di errore L eccezioni vengono lanciate da una parte di un programma e possono
Lab 1: Java Multithreading
Dept. of Computer Science Lab 1: Java Multithreading Matteo Camilli [email protected] Laboratorio di Sistemi Operativi a.a. 2015/16 Università degli Studi di Bergamo 1 Outline Programmazione multithreading
Le basi del linguaggio Java
Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una
Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB Http con java, URL Ing. Marco Mamei Anno Accademico 2004-2005 M. Mamei - Tecnologie
Classi astratte. Master in Web Technology e Security luglio - settembre 2000. Interfacce
Master in Web Technology e Security luglio - settembre 2000 JAVA Alberto Martelli Parte III Programmazione grafica Classi astratte Vogliamo implementare un algoritmo di ordinamento di un array che sia
ESERCIZIO 1 (FILE DI TESTO)
ESERCIZIO 1 (FILE DI TESTO) Scrivere su un file di testo righe inserite da console, fino a quando non viene inserita la linea vuota. Passare il nome del file come parametro al programma. Bisogna incapsulare
Basi di Dati. JDBC - Esercitazione n. 4 Quaderno n. 4. Passi preliminari per lo svolgimento delle esercitazioni
Basi di Dati JDBC - Esercitazione n. 4 Quaderno n. 4 La finalità di questa esercitazione è scrivere le parti mancanti di una semplice applicazione Java che utilizza JDBC per accedere ad una base di dati.
Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli
I Layout Manager di java. Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni
I Layout Manager di java Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni Creazione di interfacce complesse con i layout manager La posizione di un componente aggiunto
File binari e file di testo
I file File binari e file di testo distinzione tra file binari file di testo si possono usare funzioni diverse per la gestione di tipi di file diversi Programmazione Gestione dei file 2 File binari e file
Esercitazione n.1 13 Ottobre Obiettivi:
Esercitazione n.1 13 Ottobre 2009 Obiettivi: Introduzione al laboratorio Gestione dei pthreads: creazione: pthread_create terminazione: pthread_exit join: pthread_join Gestione dei thread java : Thread
Installazione. Eclipse. Workspace. Primo Avvio. Fondamenti di Informatica T2 Modulo 2. Università di Bologna A.A. 2008/2009
Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 Integrated Development Environment (IDE)
