Cosa sono e cosa fanno i
servlet java
by Fabrizio Salvo (xfab@lycosmail.com)
http://utenti.tripod.it/xfab/
In questo articolo vedremo che cosa sono, cosa fanno e come si
realizzano i Servlet Java.
SOMMARIO
- Cosa sono
- Cosa fanno
- Prepariamo l'ambiente
- Un semplice esempio
- Commentiamo il codice
- Visualizziamo il servlet
- Conclusioni
1) Cosa sono
I Servlet sono moduli scritti in Java che estendono le funzionalità dei server
request/response, conosciuti anche come web server. Essendo scritti in Java possono essere
inseriti nella maggior parte di essi. Questo perche' Java e' indipendente dalla
piattaforma (Write once and Run everywhere ). I servlet vengono usati al posto dei normali
script CGI, e risiedono sul lato server. Essi forniscono un modo per generare
dinamicamente web pages. Essendo applicazioni studiate per Internet/Intranet si pone però
il problema della sicurezza. Tutto ciò è però agevolmente superato grazie a un Security
Manager simile a quello degli applet, che rende queste aplicazioni libere da bugs.
2) Cosa fanno
I Servlet sono un' ottima alternativa alle usuali CGI. Essi consentono di generare
dinamicamente pagine web
che sono sia facili da scrivere che veloci da visualizzare. Grazie ai Servlet, dal lato
client si puo' interagire con Data Base remoti attraverso il protocollo HTTP con gli
usuali metodi di Post e Get. Vediamo ora dei possibili usi dei Servlet:
- Supportare richieste multiple in modo concorrente, come per
esempio conferenze on-line
- Aggiornare, eliminare o consultare dati contenuti in un Db remoto
tramite protocollo TCP/IP
- Applicazioni di E-Commerce
- Fare dei forward ad altri Servlet in altri server, allo scopo di
bilanciare il carico di lavoro
La differenza principale tra i Servlet e le comuni CGI è che i Servlet non
richiedono la creazione di un nuovo processo, consentendo un utilizzo più efficiente
della memoria e del processore. Tutto ciò grazie alla presenza della Java virtual machine
che carica dinamicamente una nuova classe, in poche parole il Servlet diventa parte
integrante del server www.
3) Prepariamo l'ambiente
Per poter scrivere un servlet dobbiamo prima di tutto prepare l'ambiente di lavoro.
Se non abbiamo un web server che supporta i Servlet dobbiamo procedere nel segunte modo :
- Scarichiamo dal sito http://java.sun.com il programma jdk1.1.8 o superiori e installiamolo sul nostro pc
- Scarichiamo dal sito http://java.sun.com il programma jsdk2.0 e installiamolo sul nostro pc
- Apriamo il file autoexec.bat e inseriamo le seguenti righe:
- PATH C:\jdk1.1.8\bin
- SET CLASSPATH=.;c:\jdk1.1.8\lib\classes.zip
A questo punto l'ambiente e' pronto, facciamo un restart del computer e possiamo
passare a scrivere il nostro Servlet.
4) Un semplice esempio
Passiamo ora a scrivere il Servlet .Quello che segue è solo un semplice esempio
che non fa altro che stampare la scritta "CIAO A TUTTI" sullo schermo. E'
pero' utile per capire come si scrive e si richiama un Servlet. Apriamo
ora un editor di testo (notepad va benissimo) e scriviamo il seguente codice :
public class MioServlet extends HttpServlet
{
public void doGet (HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
PrintWriter out;
String title = "CIAO A TUTTI";
response.setContentType("text/html");
response.setHeader("Pragma", "no-cache");
out = response.getWriter();
out.println("<HTML><HEAD><TITLE>");
out.println(title);
out.println("</TITLE></HEAD><BODY>");
out.println("<H1>" + title + "</H1>");
out.println("<P>CIAO A TUTTI");
out.println("</BODY></HTML>");
out.close();
}
}
5) Commentiamo il codice
Vediamo ora di commentare il codice:
- Nella prima riga "MioServlet" estende
la classe HttpServlet che implementa l'interfaccia dei Servlet
- "MioServlet" sovrascrive il metodo doGet
nella classe HttpServlet. Questo metodo è chiamato quando il client vuole
recuperare delle informazioni dal server, e il risultato è una semplice pagina HTML
restituita al client stesso. Il metodo doGet è il metodo di default del protocollo
HTTP.
- con il metodo setContentType stabiliamo il tipo
MIME della pagina di risposta. In questo caso e' HTML
- con il metodo setHeader possiamo avere un
controllo su alcuni parametri della pagina che mandiamo al client. In questo caso settando
l' attributo "pragma no-cache", impediamo al browser, che visualizzera'
la pagina, di metterla nella cache.
- Il metodo getWriter è un modo per restituire
dati all'utente. Il metodo getWriter ritorna un writer, cioè un
outputstream con il quale sarà possibile ritornare la pagina di risposta al client.
Bisogna settare l'header HTTP prima di accedere al writer. La classe HttpServletResponse
fornisce metodi per accedere all'header dei dati. Un
esempio di ciò, è stato mostrato prima con il metodo setContentType.
6) Visualizziamo il servlet
Per visualizzare il servlet procediamo nel seguente modo :
- Mettiamo il file MioServlet.class sotto la directory C:\jsdk2.0\examples
- apriamo il file property con un editor di testo sotto la
directoty C:\jsdk2.0\examples e aggiungiamo la seguente riga: servlet.MioServlet.code=MioServlet
- apriamo una finestra con il Prompt di Ms-Dos e digitiamo
servletrunner
- apriamo il browser e digitiamo http://localhost:8080/servlet/MioServlet
N.B. : se volessimo passare dei parametri al servlet dovremmo scrivere http://localhost:8080/servlet/MioServlet?parametro1=pippo
ma dovremmo modificare il codice.
7) Conclusioni
Concludendo: i Servlet sono un potente mezzo per creare applicazioni lato server
per Internet/Intranet. Essendo scritti in Java si hanno tutti i vantaggi che offre questo
linguaggio e cioè sicurezza, robustezza e portabilità. Al momento
non tutti i web server supportano i Servlet ma possono essere facilmente adattati per il
supporto.Si prevede in un futuro molto prossimo che tutti i web server supporteranno i
Servlet esattamente come oggi la maggior parte dei browser supporta gli applet.

Vuoi
ricevere gli aggiornamenti del sito? Clicca qui!
|