|
Appunti informatica |
|
Visite: 2718 | Gradito: | [ Picolo appunti ] |
Leggi anche appunti:Architettura 68000dArchitettura 68000d Il 68000 possiede i tipi binari Byte, Word, Longword I collegamenti con l'esternoI collegamenti con l'esterno La struttura di un calcolatore comprende non Progetto per la realizzazione di un robot comandato da computer tramite WiFi |
LE SERVLET
La servlet è un particolare programma, scritto in Java, avente lo scopo di estendere le funzionalità del server web. Quando il server web riceve una richiesta che fa riferimento a una servlet, invoca l'esecuzione di un metodo particolare della servlet stessa con lo scopo di soddisfare la richiesta. In generale, il risultato dell'esecuzione di una servlet è una pagina web, costruita dinamicamente, che viene restituita al browser.
Le servlet consentono di trattare i dati acquisiti tramite i form HTML e possono essere utilizzate per accedere ai database condivisi che si trovano sul server.
È possibile fare un confronto tra applet e server.
Entrambe hanno in comune i seguenti aspetti: introducono elementi dinamici all'interno delle pagine web, non sono programmi autonomi ma vengono comandati da un'altra applicazione.
Le differenze tra applet e servlet sono le seguenti:
Le applet introducono dinamicità dal lato client, estendendo le funzionalità del browser web; le servlet sono un'estensione del server web e introducono dinamicità dal lato server;
Il codice delle applet viene inviato al browser web insieme alla pagina html e solo quando arriva sul computer dell'utente può essere eseguito; le servlet, al contrario, sono programmi che vengono eseguiti dal server e che inviano il risultato della loro elaborazione al browser;
Nelle applet l'interfaccia grafica è molto importante ed è utile per l'interazione con l'utente; le servlet, invece, non hanno bisogno di interfaccia grafica per eseguire i loro compiti.
Una servlet è rappresentata in pratica da una classe che viene definita estendendo la classe HttpServlet.
import javax.servlet.http.* ;
public class <nome servlet> extends HttpServlet
La classe HttpServlet contiene vari metodi che vengono ereditati dalla servlet e possono essere da questa ridefiniti. I metodi principali sono init, doGet, doPost e destroy.
Il metodo init viene invocato nella fase di inizializzazione di una servlet e contiene tutte le operazioni da eseguire una sola volta, per esempio l'apertura della connessione con un database.
Poi in base alla modalità viene attivata l'esecuzione del metodo doGet oppure doPost. Questi metodi rappresentano la parte fondamentale della servlet e hanno il compito di generare una risposta, solitamente sotto forma di pagina web, da spedire al browser del client.
Il metodo destroy viene richiamato quando il server decide di disattivare la servlet.
Le richieste e le risposte sono gestite rispettivamente dalle classi HttpServletRequest e HttpServletResponse. Gli oggetti generati dalla classe HttpServletRequest contengono tutte le informazioni relative alla richiesta ricevuta dal client. Gli oggetti generati dalla classe HttpServletResponse consentono di generare la risposta che deve essere restituita al client.
Tramite un oggetto di classe PrintWinter, contenuta nel package java.io, si può aprire un canale per inserire tutti i dati testuali che vengono restituiti al client in risposta alla richiesta ottenuta: questo canale viene creato richiamando il metodo getWriter.
Avendo a disposizione l'oggetto out si può utilizzare il metodo println per aggiungere tutte le stringhe che fanno parte della risposta.
Dopo aver creato una servlet, occorre disporre di un ambiente adatto per poterla eseguire. È necessaria la presenza di un server web che sia abilitato per la gestione delle servlet. Si deve quindi copiare il codice compilato della servlet, cioè il file con estensione .class, in una particolare directory del server web, che contiene tutte le servlet.
Tomcat è l'ambiente di esecuzione all'interno del quale la servlet e le pagine JSP vengono eseguite. Tomcat ingloba un piccolo server Web e questo consente di provare le servlet sul proprio computer locale, anche se non si dispone di un server web in rete.
Anche la compilazione di una servlet richiede particolare attenzione, perché la libreria che contiene l'API relativa alle servlet non fa parte dell'insieme di librerie fornite con il JDK del linguaggio Java. Si deve indicare al compilatore dove trovare le librerie specificando il classpath. La libreria necessaria si chiama servlet.jar. Per poter utilizzare l'ambiente Tomcat si devono impostare alcune variabili d'ambiente.
Il software Tomcat viene lanciato con il file startup.bat e chiuso con il file shutdown.bat che sono due file batch.
Per lanciare l'esecuzione di una servlet si deve aprire il browser web e indicare l'indirizzo corretto della servlet. Se si sta utilizzando Tomcat l'indirizzo da indicare è:
https://localhost:8080/nomeservlet dove nomeservlet deve essere sostituito dal nome del file compilato senza considerare l'estensione.
La servlet funziona così:
L'esecuzione della servlet avviene su richiesta di un client, il browser web
Il server web comunica questa richiesta al contenitore delle servlet, chiamato Servlet Engine
I risultati prodotti dalla servlet vengono restituiti al server web
Il server web invia i risultati dell'elaborazione, sotto forma di pagina web, al browser.
Le servlet possono essere invocate anche tramite un form contenuto in una pagina web. In questo modo i dati contenuti nei campi del form vengono spediti alla servlet e sono utilizzabili per l'elaborazione. Il passaggio di parametri tra il client e il server si concretizza tramite l'utilizzo di un modulo che prevede l'attivazione di una servlet. Il nome della servlet da eseguire deve essere specificato nell'attributo ACTION del tag <FORM>. L'input dell'utente viene acquisito usando i campi del modulo. Le servlet riescono a recuperare il valore di un certo parametro usando il metodo getParameter all'interno dei metodi doGet o doPost.
La sigla JSP (Java Server Page) indica una tecnologia multipiattaforma per creare pagine web con contenuto dinamico. Tramite JSP sono definiti alcuni tag che estendono i classici tag del linguaggio HTML e che contengono righe di codice in linguaggio Java. Le parti contenenti tag HTML vengono restituite così come sono, mentre i comandi contenuti nel codice JSP vengono eseguiti inviando al browser il risultato.
Il server web interpreta le pagine JSP nel seguente modo: durante una prima fase compila il codice JSP e lo traduce in servlet, generando automaticamente i metodi doGet e doPost, successivamente esegue la servlet che restituisce il risultato al browser. Quello che l'utente vede al termine di tutto il processo è solo la pagina web contenente l'HTML.
In una servlet il contenuto statico di una pagina HTML è incorporato nel programma all'interno dei metodi println, quindi può essere difficile riconoscerlo e identificarlo. Al contrario una pagina JSP incorpora il codice all'interno della pagina HTML.
Le pagine JSP hanno cercato di liberare il programmatore dalla necessità di compilare il codice Java. La compilazione viene eseguita automaticamente dal server web, in particolare dal modulo che gestisce le pagine JSP. Le pagine JSP sono un'evoluzione delle servlet Java e sono state create per separare i contenuti, solitamente recuperati da un database, dalla loro presentazione tramite un linguaggio HTML.
Per produrre le pagine JSP si può utilizzare un qualsiasi editor per pagine web e non è necessario avere un ambiente di sviluppo software, come JDK, per compilare il codice Java. Le pagine JSP, rispetto alle pagine scritte con il codice ASP e il linguaggio PHP, hanno il vantaggio di utilizzare il linguaggio di programmazione Java e di poter ereditare tutte le sue caratteristiche: in particolare la programmazione ad oggetti e la portabilità del codice.
La prima volta che si effettua la richiesta di una pagina JSP, questa viene compilata, creando un oggetto servlet che sarà mantenuto in memoria per soddisfare le richieste successive.
L'output della servlet, cioè la pagina contenente solo i tag HTML, viene restituito al browser.
Ad ogni richiesta successiva della stessa pagina JSP, il server controlla se è stata effettuata qualche modifica alla pagina:
Gli scriptlet rappresentano le istruzioni Java da eseguire in sequenza e vengono racchiuse tra i tag <% e %>. Negli scriptlet si possono dichiarare variabili, ma non è possibile definire i metodi.
Le dichiarazioni consentono di specificare le variabili o i metodi all'interno della pagina JSP e sono racchiuse tra i tag <%! e %>.
Le espressioni consentono di stampare sul video il valore di una variabile o il valore di ritorno di un metodo e sono racchiuse tra i tag <%= e %>. Il risultato che si ottiene usando questi tag è del tutto simile a quello utilizzando il metodo out.println per stampare un'espressione.
La tecnologia JSP è fondata su un modello orientato agli oggetti. Durante l'esecuzione di un'applicazione web il server crea automaticamente nella propria memoria un insieme di oggetti predefiniti, tra cui i principali sono descritti nella tabella che segue. Il container JSP inserisce in modo automatico le istruzioni per creare gli oggetti della tabella; in tal modo i programmatori possono richiamare in modo implicito questi oggetti nelle loro pagine JSP.
OGGETTO |
DESCRIZIONE |
ApplicationImplementa l'interfaccia ServletContent |
Rappresenta l'oggetto che contiene informazioni sull'esecuzione di tutte le servlet e le pagine JSP attive in un sever web |
Session Della classe HttpSession |
Descrive la sessione http associata all'esecuzione di una pagina JSP |
Request Della classe HttpServletRequest |
Definisce un insieme di metodi per recuperare i dati passati dal browser al server web durante l'invio di una pagina con uno o più form HTML |
Response Della classe HttpServletResponse |
Definisce la pagina di risposta HTML, generata dalla pagina JSP, inviata dal server al browser. Per l'output s'impiega l'oggetto predefinito out. |
Out Della classe JSPWriter |
Rappresenta il flusso di output impiegato per inserire del testo nella pagina HTML di risposta inviata dal browser. |
Appunti su: appunti server engine tomcat, |
|