# Java applet

In informatica, gli applet Java sono programmi scritti in linguaggio Java che possono essere eseguiti da un web browser (elaborazione lato client). applet sono state deprecate a partire da Java 9 nel 2017. Gli applet appaiono visivamente collocati all'interno di pagine web, e sono solitamente usati per creare pagine dotate di funzioni interattive con l'utente non realizzabili con altre tecnologie per il web statico, appartenendo dunque al paradigma del web dinamico.
Annunciati per la prima volta da Sun Microsystems, nel 1995, i Java applets sono eseguibili dai web browser che utilizzano la Java Virtual Machine (JVM). In alternativa possono essere eseguiti utilizzando il Sun AppletViewer, un programma nato per testare gli applet.

## Descrizione
### Creazione e ciclo di vita di un applet

Gli applet sono applicazioni incapsulate in una pagina web ed eseguite sul client dell'utente che accede al sito. Ciò significa che il browser scaricherà sul computer il codice dell'applet e si occuperà, mediante la Java Virtual Machine di interpretarlo e tradurlo in un'applicazione.
In tempi in cui la potenza dei server rappresentava un costo ragguardevole e le potenzialità di internet apparivano notevoli ma ancora inespresse, gli applet diventarono la soluzione ottimale per migliorare aspetto, interattività e popolarità dei siti web. Un applet di fatto è una applicazione priva di main, ma dotata di un proprio ciclo di vita costituito da un caricamento iniziale, un'esecuzione (con eventuali sospensioni e riprese dell' esecuzione) e una distruzione finale.
Al momento del caricamento iniziale viene invocato il metodo init, che serve a inizializzare dati, immagini e oggetti. Subito dopo viene invocato il metodo start che fa partire l'applet e se durante l'esecuzione il browser viene ridotto ad icona, si invoca il metodo stop, cui segue nuovamente il metodo start quando l'applet torna in primo piano. Quando si esce dal browser invece viene invocato destroy che consente di effettuare eventuali azioni contestuali alla chiusura dell'applet.
Una volta completato l'applet, sarà necessario includerlo in una pagina web utilizzando i tag HTML per specificare la classe che implementa l'applet, le dimensioni della pagina e altri parametri opzionali.
Una volta copiato il jar contenente l'applet nella stessa directory dove è salvata la pagina HTML, il codice per visualizzare l'applicazione è il seguente:
Chiaramente è possibile che un applet sia costituito da una classe senza utilizzo di un archivio jar e in questo caso si scriverà semplicemente:
È importante notare infine che è possibile passare dalla pagina HTML dei parametri all'applet, per effettuare tale operazione è sufficiente specificare i parametri e i relativi valori all'interno della definizione di applet.

### Firmare un applet

Per consentire una maggiore flessibilità e potenza agli applet e, allo stesso tempo, garantire il rispetto della sicurezza è stata definita la possibilità di firmare un applet.
La firma di un applet non è altro che l'attestazione di proprietà e di origine del software. Così chi si ritrova a caricare tale applicazione ha la possibilità di decidere se ritenere o meno affidabile l'origine dell'applet e, solo in caso affermativo, di rimuovere le limitazioni ad essa imposte.

### Utilizzo

Incapsulati all'interno di pagine web, gli applet sono utilizzati per fornire contenuti interattivi che il linguaggio HTML non è in grado di offrire. Per eseguirne il contenuto, la maggioranza dei web browser utilizza una sandbox, in modo da impedire agli applet di accedere alle informazioni salvate in locale sul computer. Il codice sorgente degli applet viene scaricato dal web server attraverso il web browser ricevendo anche la pagina HTML che lo contiene. In alternativa, l'applet può provvedere ad aprire una finestra personale senza doversi appoggiare al codice HTML per mostrare l'interfaccia grafica.
Gli applet mostrati nelle pagine web sono identificati dal tag HTML <applet>...</applet> (non ufficiale), al quale è preferibile <object></object>. Il tag HTML utilizzato specifica la posizione del sorgente dell'applet da scaricare.
Dato che il bytecode Java è indipendente dalla piattaforma, gli applet Java possono essere eseguiti senza problemi dai browser delle principali piattaforme.