Introduzione
Questa linea guida si focalizza sull'identificazione di servlet. Un'ulteriore guida ai servlet viene fornita dalla Linea guida: Servlet.
Identificazione di servlet
I servlet sono classi server che interagiscono con client basati su Web. Sono principalmente identificati da classi di
controllo (vedere la Linea guida:
Classe di analisi) nelle architetture Web. Possono essere utilizzati per produrre pagine Web con scopi di
presentazione, ma in generale a questo scopo vengono utilizzati i JSP (consultare la Linea guida: JSP (JavaServer Page)). Possono essere anche utilizzati per interagire
con i database, ad esempio in una configurazione di distribuzione incentrata sul Web, come descritto dal Concetto: Configurazioni di distribuzione J2EE. A partire da J2EE 1.4, i servlet
possono essere anche utilizzati per implementare servizi Web come definito dalla specifica JAX-RPC.
Tuttavia, per applicazioni che hanno una logica di business significativa o che richiedono le funzioni offerte dagli
EJB, è più appropriata una configurazione di distribuzione multi-tier (leggere il Concetto: Configurazioni di distribuzione J2EE). In questo caso, i servlet sono
solitamente utilizzati per coordinare la logica di presentazione e offrire un collegamento alla logica e ai dati di
business forniti dagli EJB.
Un modo comune per utilizzare il servlet è un front controller. I front controller forniscono soltanto un'entrata per
applicazione, rendendo più uniformi e facili da gestire la sicurezza, lo stato dell'applicazione e la presentazione.
Un front controller accetta una richiesta dell'utente, la elabora e determina il giusto componente di
presentazione al quale inoltrarla. Vedere Core J2EE Design Patterns - Front Controller ([ALU01]) per i dettagli.
Se la progettazione contiene molti JSP con codici di controllo simili, introdurre un servlet per consolidare questa
logica in un solo posto.
Modellazione di servlet
In RUP i servlet sono rappresentati dal Prodotto di lavoro: Classe di progettazione e sono poi modellati come
classi. I servlet per la gestione di richieste HTTP sono stereotipati come <<HTTPServlet>>, quelli per la
gestione di altri protocolli come <<GenericServlet>>.
Ogni servlet può essere considerato come fornitore della stessa interfaccia, una singola operazione che soddisfa
richieste e fornisce informazioni standard nei contesti client, sessione e servlet. Quindi, modellare un servlet non
consiste nel definire le operazioni di interfaccia, ma piuttosto le relative responsabilità e il modo in cui
interagisce con altri elementi della progettazione, come client, JSP, classi helper, EJB, ecc.
Endpoint dei servizi Web
Come si è visto in precedenza, i servlet possono essere utilizzati per implementare servizi Web e devono soddisfare i
seguenti requisiti:
-
Avere un costruttore pubblico predefinito.
-
Implementare tutti i metodi elencati dall'Interfaccia endpoint del servizio; i relativi metodi di business devono essere
pubblici e non finali o statici.
-
Devono essere stateless.
-
La classe deve essere pubblica, ma né finale né astratta.
|