Java Servlet
Le servlet sono moduli software scritti in java che vengono eseguiti in applicazioni lato server per
esaudire la richiesta del client.
Utilizzando un linguaggio portabile come java, le servlet consentono di realizzare soluzioni per
estendere le funzionalità dei server web indipendentemente dal sistema operativo in cui vengono
eseguite.
Un Servlet container è un programma Java che fornisce un ambiente persistente di esecuzione per
applicazioni Web ed espone le caratteristiche del Web server come oggetti Java.
Una Web application è una collezione di servlet, pagine JSP, documenti e risorse organizzati in
modo da essere facilmente installati su qualsiasi servlet container.
Svantaggi:
• Programmazione complessa perchè bisogna produrre sia il testo statico che i contenuti
dinamici
• La presentazione HTML è mescolata al codice applicativo
Vantaggi:
• Astrazione object-oriented delle proprietà di un server HTTP esteso (request, response,
session ecc)
Differenze tra java servlet e CGI:
• Con le servlet viene generato per ogni richiesta un thread java più leggero di un processo
CGI;
• Con CGI se ho N richieste avrò N immagini in memoria del programma mentre con le
servlet avrò N thread ma solo una copia della classe in memoria;
• Con CGI non posso mantenere aperta una connessione ad un database mentre con le servlet
posso mantenere aperte più connessioni;
• Java mette a disposizione delle api per la scrittura delle servlet che facilita molto le varie
operazioni di lettura di form HTML ecc..;
• Le servlet possono dialogare direttamente con il server web facilitando la condivisione dei
dati;
• Le servlet possono girare su qualsiasi piattaforma.
Il ciclo di vita di una servlet può essere così schematizzato:
• all'accensione creare ed inizializzare la servlet; metodo init() (viene invocato
successivamente all'istanziazione di una servlet e prima che la servlet gestisca una request;
si usa per inizializzare la servlet magari facendo uso di parametri);
• gestire zero o più invocazioni del servizio dai client; metodo service();
• allo spegnimento distruggere la servlet e fare “garbage collection”; metodo destroy() (si usa
per liberare tutte le risorse che non verranno rimosse dal “garbage collector” e salvare le
informazioni che vogliamo rendere persistenti);
Copyright Andrea Martignoni, All Rights Reserved. Not for commercial use.