Il 0% ha trovato utile questo documento (0 voti)
4 visualizzazioni18 pagine

L08 - Servlet Parte2

Il documento fornisce esercizi pratici per la creazione di servlet in un progetto Eclipse, inclusa la modifica dell'output HTML e la generazione di contenuti dinamici come liste e tabelle. Viene inoltre spiegato il processo di deployment delle applicazioni web, la configurazione tramite il file web.xml e l'uso di annotazioni per la mappatura delle servlet. Infine, si discute l'accesso ai parametri di configurazione delle servlet e la gestione delle eccezioni.

Caricato da

donmatteo
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
4 visualizzazioni18 pagine

L08 - Servlet Parte2

Il documento fornisce esercizi pratici per la creazione di servlet in un progetto Eclipse, inclusa la modifica dell'output HTML e la generazione di contenuti dinamici come liste e tabelle. Viene inoltre spiegato il processo di deployment delle applicazioni web, la configurazione tramite il file web.xml e l'uso di annotazioni per la mappatura delle servlet. Infine, si discute l'accesso ai parametri di configurazione delle servlet e la gestione delle eccezioni.

Caricato da

donmatteo
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 18

Exercises

• Make a new Eclipse project called exercises-basics (or some such).


1. Modify the firstservlet HTML output so that it says “Hello Your-Name”.
2. Create a servlet that makes a bulleted list of four random numbers. Don’t type in the
servlet code by hand; start by copying and renaming an existing servlet like TestServlet,
then edit it. However, when you copy the servlet, be sure to change its address (by using
@WebServlet). If you have two servlets in the same project that have the same
address, the server will completely ignore one of the servlets.
• Reminder 1: you use Math.random() to output a random number in Java.
• Reminder 2: you make a bulleted list in HTML as follows
<ul>
<li>List item 1</li> <li>List item 2</li> ...
</ul>
Exercises (2)
• Create a servlet that uses a loop to output an HTML table with 25 rows
and 10 columns. For instance, each row could contain “RowX, Col1”,
“RowX Col2”, and “RowX Col3”, where X is the current row number.
Esempio di doPost: gestione del form
• I form dichiarano i campi utilizzando l’attributo name

• Quando il form viene inviato al server, nome dei campi e loro valori sono
inclusi nella request:
• agganciati alla URL come query string (GET)
• inseriti nel body del pacchetto HTTP (POST)
Altri aspetti di request
• HttpRequest espone anche il metodo InputStream getInputStream();

• Consente di leggere il body della richiesta (ad esempio dati di post)


Echo: reading all request parameters
response
• The response is what goes back to the client
• The thing the browser gets, parses, and
renders for the user
• Typically, you use the response object to get
an output stream (usually a Writer) and you
use that stream to write the HTML (or some
other type of content) that goes back to the
client
• The response object has other methods
besides just the I/O output
Output choices (when you do not use JSP)
Deployment
• Un’applicazione Web deve essere installata e questo
processo prende il nome di deployment
• Il deployment comprende:
• La definizione del runtime environment di una Web
Application
• La mappatura delle URL sulle Servlet
• La definizione delle impostazioni di default di
un’applicazione, ad es. welcome page e pagine di
errore
• La configurazione delle caratteristiche di sicurezza
dell’applicazione
web.xml (API 2.5)
• È un file di configurazione (in formato XML) che contiene una serie di elementi descrittivi
• Descrive la struttura dell’applicazione Web
• Contiene l’elenco delle Servlet e per ognuna di loro permette di definire una serie di
parametri come coppie nome-valore
• Nome
• Classe Java corrispondente
• Una serie di parametri di configurazione (coppie nome-valore, valori di
inizializzazione)
• Contiene mappatura fra URL e Servlet che compongono l’applicazione IMPORTANTE!

• Dalla versione 3.0 è possibile utilizzare le annotazioni:


• @WebServlet
• @ServletFilter
• @WebListener
• @WebInitParam
Mappatura Servlet-URL
• Esempio di descrittore con mappatura:

• Esempio di URL che viene mappato su myServlet:


Servlet configuration
• Una Servlet accede ai propri parametri di configurazione mediante
l’interfaccia ServletConfig
• Ci sono 2 modi per accedere a oggetti di questo tipo:
1. Il parametro di tipo ServletConfig passato al metodo init()
2. il metodo getServletConfig() della Servlet, che può essere invocato in
qualunque momento

• ServletConfig espone un metodo per ottenere il valore di un parametro in


base al nome:
• String getInitParameter(String parName)

• Es: getServletConfig().getInitParameter(“parName”)
You can’t use Servlet init parameters until the
Servlet is initialized
• When the Container initializes a
Servlet, it makes a unique
ServletConfig for the Servlet
• The Container “reads” the Servlet init
parameters from web.xml and gives
them to the ServletConfig, then
passes the ServletConfig to the
servlet’s init() method
The Servlet init parameters are read only ONCE
The Servlet init parameters are read only ONCE (2)
Esempio di parametri di configurazione
• Estendiamo il nostro esempio rendendo parametrico il titolo della pagina
HTML e la frase di saluto:

@WebServlet(name = "/HelloServ”, urlPatterns = { "/hello" },


initParams = {@WebInitParam(name = ”title", value = ”Hello Page"),
@WebInitParam(name = ”greeting", value = ”Ciao") })
HelloServlet parametrico
• Ridefiniamo quindi anche il metodo init(): memorizziamo i valori dei
parametri in due attributi
Il metodo doGet() con parametri
Pagine di errore

• Si possono gestire anche le eccezioni:

• Dalle Servlet 3.0:

Potrebbero piacerti anche