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.