Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


appunti servlet TPS e, Appunti di Informatica

appunti servlet TPS e i vantaggi servlet e gli svantaggi

Tipologia: Appunti

2020/2021

Caricato il 12/04/2021

appuntiscuola
appuntiscuola 🇮🇹

5

(1)

6 documenti

1 / 4

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
SERVLET
Inizialmente quando si dovevano realizzare programmi che consentissero agli utenti di accedere ai dati da
host remoti, venivano utilizzate pagine html che mediante un pulsante submit permettevano all’utente di
compilare i dati presenti in un form. Tali dati venivano inviati ad un server che li elaborava e inviava i dati
richiesti.
La prima tecnica adottata per realizzare queste connessioni client-server utilizzava delle procedure remote
tramite un programma common gateway interface (CGI) che viene eseguito sul server e che elabora i dati
passati dal form. Un programma CGI può essere scritto con qualunque linguaggio di programmazione in gradi
di leggere gli ingressi di standard input e di scrivere su standard output.
In questo caso il Web server si appoggia al programma CGI per eseguire le elaborazioni di input output. Il
programma CGI per poter comunicare con l’utente produce una pagina html la passa al web server che a sua
volta la invia al client in modo che possa visualizzarla sul suo browser.
Qual è il problema dell’utilizzo di queste CGI??
Uno dei problemi è che le CGI sono eseguiti dal sistema operativo e che ogni volta gli script CGI devono
essere caricati per eseguire ogni richiesta, ciò comporta un aumento del tempo di latenza ovvero un
ritardo nel fornire le informazioni al client.
Oltre alle CGI si possono utilizzare le servlet che vengono realizzate in java, queste vengono eseguite dalla
java virtual machine integrata nel web server il vantaggio di queste servlet consiste nel fatto che vengono
caricate una sola volta nel sistema operativo e che per ogni richiesta viene creato un thread. Le servlet
possono essere utilizzate per qualunque tipo di protocollo di comunicazione tra client-server.
La SUN definisce le servlet come :
“La servlet è un componente software scritto in java, gestito da un ‘container’, che produce contenuto web
dinamico ”.
La Sun Microsystems è stata un'azienda della Silicon Valley produttrice di software e semiconduttori nota,
tra le altre cose, per avere prodotto il linguaggio di programmazione Java. Il 27 gennaio 2010, la Sun
Microsystem è stata acquistata dalla Oracle Corporation per 7,4 miliardi di dollari. La Sun Microsystems, Inc.
è stata quindi rinominata Oracle America, Inc.
La caratteristica fondamentale di un sito web dinamico è l’interazione della pagina con una base di dati che
contiene le informazioni da presentare. Non è sufficiente l’utilizzo di un linguaggio di markup (html) per
raggiungere questo obiettivo, sarà necessario utilizzare un linguaggio che permetta l’interazione con una
base di dati, ASP.NET, PHP, JSP, o un CMS (Joomla, Drupal, WordPress) . In questo caso quindi le informazioni
non sono contenute direttamente all’interno della pagina web ma vengono richiamate dalla base di dati in
tempo reale in seguito ad una richiesta dell’utente. Questo comporta una minore performance per quanto
riguarda i tempi di risposta in quanto avviene un’interazione tra la pagina web e la base di dati prima che le
informazioni siano disponibili; nello stesso tempo però ci saranno dei vantaggi considerevoli in termini di
flessibilità negli aggiornamenti e nella manutenzione del sito e ci sarà la possibilità per l’utente finale di
interagire con la pagina web.
pf3
pf4

Anteprima parziale del testo

Scarica appunti servlet TPS e e più Appunti in PDF di Informatica solo su Docsity!

SERVLET

Inizialmente quando si dovevano realizzare programmi che consentissero agli utenti di accedere ai dati da host remoti, venivano utilizzate pagine html che mediante un pulsante submit permettevano all’utente di compilare i dati presenti in un form. Tali dati venivano inviati ad un server che li elaborava e inviava i dati richiesti. La prima tecnica adottata per realizzare queste connessioni client-server utilizzava delle procedure remote tramite un programma common gateway interface (CGI) che viene eseguito sul server e che elabora i dati passati dal form. Un programma CGI può essere scritto con qualunque linguaggio di programmazione in gradi di leggere gli ingressi di standard input e di scrivere su standard output. In questo caso il Web server si appoggia al programma CGI per eseguire le elaborazioni di input output. Il programma CGI per poter comunicare con l’utente produce una pagina html la passa al web server che a sua volta la invia al client in modo che possa visualizzarla sul suo browser. Qual è il problema dell’utilizzo di queste CGI?? Uno dei problemi è che le CGI sono eseguiti dal sistema operativo e che ogni volta gli script CGI devono essere caricati per eseguire ogni richiesta, ciò comporta un aumento del tempo di latenza ovvero un ritardo nel fornire le informazioni al client. Oltre alle CGI si possono utilizzare le servlet che vengono realizzate in java, queste vengono eseguite dalla java virtual machine integrata nel web server il vantaggio di queste servlet consiste nel fatto che vengono caricate una sola volta nel sistema operativo e che per ogni richiesta viene creato un thread. Le servlet possono essere utilizzate per qualunque tipo di protocollo di comunicazione tra client-server. La SUN definisce le servlet come : “La servlet è un componente software scritto in java, gestito da un ‘container’ , che produce contenuto web dinamico ”. La Sun Microsystems è stata un'azienda della Silicon Valley produttrice di software e semiconduttori nota, tra le altre cose, per avere prodotto il linguaggio di programmazione Java. Il 27 gennaio 2010, la Sun Microsystem è stata acquistata dalla Oracle Corporation per 7,4 miliardi di dollari. La Sun Microsystems, Inc. è stata quindi rinominata Oracle America, Inc. La caratteristica fondamentale di un sito web dinamico è l’interazione della pagina con una base di dati che contiene le informazioni da presentare. Non è sufficiente l’utilizzo di un linguaggio di markup (html) per raggiungere questo obiettivo, sarà necessario utilizzare un linguaggio che permetta l’interazione con una base di dati, ASP.NET, PHP, JSP, o un CMS (Joomla, Drupal, WordPress). In questo caso quindi le informazioni non sono contenute direttamente all’interno della pagina web ma vengono richiamate dalla base di dati in tempo reale in seguito ad una richiesta dell’utente. Questo comporta una minore performance per quanto riguarda i tempi di risposta in quanto avviene un’interazione tra la pagina web e la base di dati prima che le informazioni siano disponibili; nello stesso tempo però ci saranno dei vantaggi considerevoli in termini di flessibilità negli aggiornamenti e nella manutenzione del sito e ci sarà la possibilità per l’utente finale di interagire con la pagina web.

Web Container TOMCAT

L’ambiente di esecuzione di una servlet prende il nome di container, questo si occupa di:

  • gestire la comunicazione con il client
  • la sicurezza
  • il multithreading
  • l’attivazione e la terminazione della servlet Una servlet interagisce con un Web client attraverso il paradigma di comunicazione request/response schematizzato nella figura seguente: 1 un client invia una richiesta (request) per una servlet a un Web application server; 2 se si tratta di una prima richiesta allora il server istanzia e carica la servlet; 3 si attiva un thread che gestisce la comunicazione tra il client e la servlet stessa; 4 il server invia alla servlet la richiesta pervenutagli dal client; 5 la servlet costruisce e imposta la risposta (response) e la inoltra al server; 6 il server invia la risposta al client. Tomcat è un server engine (o anche servlet container ) per pagine JSP ; esattamente come Asp con IIS e PHP con Apache , anche la tecnologia JSP ha bisogno di un "motore" per la gestione delle chiamate provenienti dagli utenti e il conseguente invio delle risposte sotto forma di output/codice HTML. Tomcat è una costola di Apache , figlio di sviluppatori appartenenti alla stessa fondazione che ha dato vita al celebre Web server. E' completamente Open source è può essere scaricato gratuitamente dal sito ufficiale in versioni differenti a seconda del file system ( Windows , Linux ..) in cui intendiamo utilizzarlo.

I vantaggi delle Servlet

Qualcuno potrebbe domandarsi per quale motivo possa essere più vantaggioso utilizzare le Servlet

piuttosto che affidarsi a tecnologie, ancora abbastanza utilizzate, come la Common Gateway

Interface (CGI). Beh, le differenze non sono trascurabili. Tra le più evidenti possiamo citare:

 Efficienza. Come abbiamo detto le servlet vengono istanziate e caricate una volta soltanto,

alla prima invocazione. Tutte le successive chiamate da parte di nuovi client vengono gestite

creando dei nuovi thread che si prendono carico del processo di comunicazione (un thread

per ogni client) fino al termine delle rispettive sessioni. Con le CGI, tutto questo non

accadeva. Ogni client che effettuava una richiesta al server causava il caricamento completo

del processo CGI con un degrado delle performance facilmente immaginabile.

 Portabilità : Grazie alla tecnologia Java, le servlet possono essere facilmente programmate e

“portate” da una piattaforma ad un’altra senza particolari problemi.

 Persistenza : Dopo il caricamento, una servlet rimane in memoria mantenendo intatte

determinate informazioni (come la connessione ad un data base) anche alle successive

richieste.

 Gestione delle sessioni : Come è noto il protocollo HTTP è un protocollo stateless (senza

stati) e, pertanto non in grado di ricordare i dettagli delle precedenti richieste provenienti da

uno stesso client. Le servlet sono in grado di superare questa limitazione

Svantaggi delle servlet: I principali inconvenienti delle servlet sono: ■ ◗ con le servlet si “mescola” la logica della applicazione con la presentazione; ■ ◗ se il codice HTML è complesso a volte è “particolarmente oneroso” doverlo “inglobare” all’interno del codice Java per mezzo di istruzioni di println; non è possibile la “prototipazione rapida”: ogni modifica del codice richiede una ricompilazione esplicita e ogni aggiunta il cambiamento del file web.xml con il riavvio dell’applicazione o del server.