La Servlet API

Si accenna in breve ad alcune istruzioni pratiche per scrivere ed eseguire semplici servlet. E' necessario possedere una conoscenza di base del protocollo HTTP oltre ad avere un base del linguaggio Java.

Le servlet usano le classi e interfacce provenienti da due pacchetti: javax.servlet e javax.servlet.http
Il primo contiene le classi e le interfacce necessarie per supportare servlet generiche, indipendenti dal protocollo. Queste classi vengono estese dalle classi presenti nel pachetto javax.servlet.http per aggiungere funzionalità specifiche del protocollo HTTP. Il nome del pacchetto di livello superiore è javax invece del piu' comune java, per indicare che le Servlet API sono un pacchetto opzionale. Tutte le servlet devono implementare l'interfaccia javax.servlet.Servlet.
La maggior parte delle servlet implenta questa questa interfaccia estendendo una di quests classi speciali: javax.servlet.GenericServlet o javax.servlet.http.HttpServlet.
Una servlet indipendente dal protocollo deve trasformare in sottoclasse GenericServlet, mentre una servlet HTTP deve trasformare in sottoclasse HttpServlet, che è essa una sottoclasse di GenericServlet a cui sono state aggiunte funzionalità specifiche di HTTP.

A differenza di un programma Java e come un'applet, una servlet non possiede un metodo main(). Certi metodi di una servlet, invece, vengono richiamati dal server nel processo della gestione delle richieste: ogni volta che il server recapita una richiesta a un servlet, invoca il metodo service() di quest'ultima.

Una servlet generica deve ridefinire il suo metodo service() per gestire le richieste in modo appropriato. Questo metodo accetta due parametri: un oggetto richiesta e un oggetto risposta.
Il primo informa la servlet sulla richiesta, mentre il secondo viene impiegato per restituire una risposta.

Al contrario, una servlet HTTP in genere non ridefinisce il metodo service(), bensì doGet() per gestire le richieste GET e doPost() per quelle POST.
Una servlet HTTP può ridefinire uno di questi metodi o entrambi, in relazione al tipo di richiesta che deve gestire. Il metodo service() di HttpServlet gestisce l'impostazione e il recapito di tutti i metodi doXXX(), che è il motivo per cui in genere non dev'essere ridefinito.

La parte restante dei pacchetti javax.servlet e javax.servlet.http è costituita in gran parte da classi di supporto.    

Privacy Policy