ePrometeusCorsoJavaJava
testi articoli
Testi Articoli  Download
Home | Eshop | Java | Tools | Web | 
CorsoJava è ora Video! Free for all!
Clicca Qui!

SERVLET
Server side programming con Java Servlet
Le Servlet
Supporto per le servlet
Panoramica
Programmare con l'HTTP
Le Servlet HTTP
Richieste e risposte
Un esempio
Conclusioni
Bibliografia
L'Autore

<<< Panoramica >>>
Tabella 1

java.servlet.Servlet

Interfaccia che specifica l'API delle servlet

javax.servlet.ServletConfig

Interfaccia per passare informazioni di configurazione alle servlet.

javax.servlet.ServletRequest

Interfaccia che rappresenta le richieste di servizio poste ad una servlet

javax.servlet.ServletResponse

Interfaccia che rappresenta la risposta ad una richiesta generata da una servlet

javax.servlet.GenericServlet

Classe base che implementa l'interfaccia Servlet

javax.servlet.http.HttpServlet

Classe base derivata da GenericServlet per le servlet http

javax.servlet.http.HttpServletRequest

Interfaccia per le richieste che vengono fatte ad una servlet http

javax.servlet.http.HttpServletResponse

Interfaccia per la risposte che genera una servlet http

In Tabella 1 sono elencate le principali classi per la gestione delle servlet. I package delle servlet forniti con il JSDK 1.0 sono quattro: javax.servlet, javax.servlet.http, sun.servlet e sun.servlet.http. I primi due hanno prefisso javax,e non java, ad indicare che non si tratta della “Core API”, ovvero delle API che devono essere ufficialmente supportate in qualunque implementazione che desideri fregiarsi del logo “Java”. Si tratta comunque di una Standard Extension, ovvero di estensioni progettate per essere uno standard, definite da JavaSoft per scopi speciali. La API delle servlet vera e propria è definita dai primi due, mentre i secondi, sun.*, sono particolari implementazioni fornite da JavaSoft, sostituibili con implementazioni di altri produttori. Notare che invece i package javax.* non possono essere modificati se si vuole aderire allo standard.

Il package javax.servlet definisce il framework generale delle servlet. Le servlet infatti non sono pensate specificamente per estendere server http, ma sono progettate più in generale per dei server. Può trattarsi infatti di un Web Server come di un Mail Server, un Ftp Server o altro. Questo framework infatti rispecchia il paradigma comune nei server Internet, che in sostanza sono degli esecutori di comandi. Per esempio, consideriamo un server di posta (tanto per non insistere troppo sui server HTTP). Quando un client si collega ad un server di posta, il primo interagisce col secondo inviando una serie di richieste: per esempio "invia una mail ad un utente x", oppure "elenca i messaggi in attesa per l’utente y". Per estendere il mail server e offrire nuovi servizi, dovremmo implementare nuovi comandi. Per esempio, supponiamo di voler aggiungere un servizio di mailing list: una servlet potrebbe implementare questa funzione. Questa ipotetica servlet dovrebbe anche interpretare speciali indirizzi di posta e gestirli come invii multipli agli utenti di una lista di distribuzione. Il paradigma delle servlet è infatti proprio basato sui servizi: l'interfaccia javax.servlet.Servlet è una interfaccia che ha il suo perno nel metodo void service(ServletRequest, ServletResponse). Le classi ServletRequest e ServletResponse rappresentano delle generiche richieste e una generica risposta. Sono previste anche delle fasi di inizializzazione e di finalizzazione, ma quando una servlet è in attività non fa altro che fornire un servizio, generando delle risposte a delle richieste. Se Servlet è una interfaccia, GenericServlet è invece una classe che implementa questa interfaccia, e che è l'ideale per essere estesa quando si deve implementare una servlet. Il package javax.servlet.http invece fornisce i servizi per la gestione di servlet specifiche per l'HTTP. Quando si programmano servlet http, nella maggior parte dei casi si estende HttpServlet, derivata da GenericServlet. Le richieste e le risposte specifiche per l'HTTP sono rappresentate da HttpServletRequest e HttpServletResponse.

ePrometeus s.r.l. - Web Software House & Open Source System Integrator
MILANO - SAN BENEDETTO DEL TRONTO(AP)
Contatti: info@eprometeus.com