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

<<< Richieste e risposte >>>
Tabella 3

javax.servlet.ServletRequest

ServletInputStream getInputStream()

Input stream per leggere la richiesta

String getParameter(String)

Ritorna il valore di un parametro; da usare quando ad un parametro è assegnato un solo valore

String[] getParameterValues(String)

Ritorna un array di valori assegnati ad un parametro

String[] getParameterNames()

Ritorna i nome dei parametri correnti

int getContentLenght()

Dimensione della richiesta, o -1 se sconosciuta

int getContentType()

Ritorna il tipo MIME della richiesta, o null se sconosciuta

javax.servlet.http.HttpServletRequest

String getHeader(String)

Ritorna il valore di un header http

String getQueryString()

Ritorna la query string http

String getMethod()

Ritorna il metodo http utilizzato per la richiesta: "GET", "HEAD" o "POST".

String getRemoteUser()

L'utente che ha fatto la richiesta, se è stato richiesto

String getPathInfo()

Ritorna l'Extra Path di una richiesta http

javax.servlet.ServletResponse

ServletOutputStream getOutputStream()

Ritorna l'output stream per la risposta

void setContentLength(int)

Imposta la dimensione della risposta

void setContentType(String)

Imposta il tipo MIME della risposta

javax.servlet.http.HttpServletResponse

void sendRedirect(String s)

Invia una risposta di redirezione

void sendError(int)

Invia uno stato di errore

void setHeader(String, String)

Aggiunge un nuovo header alla risposta

void setStatus(int, String)

Imposta il codice di stato e il messaggio di stato.



In Tabella 3 sono riassunte le classi per la gestione sia di richieste che di risposte. In generale una richiesta, rappresentata da javax.servlet.ServletRequest può essere letta tramite un InputStream (getInputStream) ed è possibile ottenenere il tipo (espresso come tipo MIME) e la lunghezza in byte. Una richiesta viene generalmente interpretata come un insieme di coppie nome valore. Tipicamente infatti l'input da una pagina web proviene da una form ed ogni campo di input ha un nome. I nomi di una richiesta sono elencabili con getParameterNames, e ad ogni nome è associato uno o più valori (ottenibili con String getParameter(String nome) o con String[] getParameterValues(String nome)).

Le coppie sono generalmente il risultato di una decodifica dell'input, mentre lo stream di input consente di leggere direttamente l'input senza decodifica. Una javax.servlet.http.HttpServletRequest fornisce informazioni più specifiche per l'http. Quando il browser invia una richiesta utilizzando POST è possibile utilizzare l'InputStream per leggerlo senza decodifica, mentre nel caso della GET si deve utilizzare getQueryString(). In entrambi i casi comunque l'input decodificato si ottiene con i metodi per la lettura dei parametri visti prima. Questa classe comprende anche tutti i metodi necessari per leggere le varie parti di una richiesta, gli "header" (informazioni di tipo, cookie ed altro) inviati dal server, l'origine della richiesta, l'extra path eccetera.

Nel comporre una risposta, in generale, dobbiamo specificare il tipo MIME con javax.servlet.ServletResponse.setContentType, ed opzionalmente la lunghezza. La parte rilevante di una risposta comunque viene ottenuta scrivendo nell'output stream, ottenibile con getOutputStream. Una risposta http può anche specificare risposte particolari: può causare redirezioni, può aggiungere intestazioni particolari, ritornare messaggi di errore e così via.

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