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


Programmazione Server Side, Dispense di Informatica

Una panoramica sulla programmazione server-side, dove la richiesta di un documento html da parte del client viene gestita ed elaborata dal server. Vengono discusse le principali tecnologie utilizzate per la programmazione server-side, come cgi, servlet, jsp e php, evidenziandone le caratteristiche, i vantaggi e le modalità di implementazione. Inoltre, il documento approfondisce l'utilizzo di jdbc per l'interfacciamento tra servlet e database, presentando diversi tipi di driver e le fasi di connessione, interrogazione e gestione dei risultati. Infine, vengono introdotti i database embedded, come sqlite, hypersql, h2 e apache derby, che possono essere facilmente integrati all'interno di applicazioni java, offrendo prestazioni elevate e dimensioni ridotte.

Tipologia: Dispense

2022/2023

Caricato il 03/08/2024

lorenzo-ortolan
lorenzo-ortolan 🇮🇹

3 documenti

1 / 6

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
PROGRAMMAZIONE SERVER SIDE
Dove la richiesta del client di un documento HTML viene gestita ed elaborata tramite un processo
webServer
PROGRAMMAZIONE SERVER-SIDE DISTINTA TRA (in relazione all’html):
-Codice separato
Associato a una URL:
-CGI common gateway interface
-Java servlet
-NSAPI o server API
-Codice embedded
In HTML:
-server side includes (SSI)- apache
-active server pages-microsoft
-PHP
-JSP (java server pages)
HTML
Rende possible l’invio di informazioni da un web browser client-side a un programma in
esecuzione server-side.
Metodo GETinvio dati attraverso la URL mediante query string
Metodo POSTfunzione analoga a get ma a differenza di get i dati non sono visibili a tutti
MODELLO A CODICE SEPARATO
Common Gateway Interface (CGI)
Programma eseguito sul server e al quale vengono passati i dati letti nel form.
Programmi CGI
Scritti dal SO perciò meno portabili di una servlet scritta per una JVM.
Vantaggi: può essere scritto in qualsiasi linguaggio
SERVLET
Componente software scritto in java che contiene procedure per la risposta al client.
E’ necessaria una servlet per dare una risposta specifica per l’elaborazione personalizzata che
richiede il client.
Tutto questo è generato dal server con l’ausilio di una servlet.
Prevede tutti i vantaggi di java.
STRUTTURA DI UNA SERVLET
La servlet è gestita da una web container (sarà l’ambiente di esecuzione anche delle JSP)
Il container gestisce la servlet per tutto il ciclo di vita svincolando il programmatore dalla sua
gestione.
Web container gestisce:
Comunicazione con i client, sicurezza, multithreading, attivazione e terminazione.
Permette allo sviluppatore di concentrarsi sullo sviluppo della logica dell’applicazione.
Servlet e Web container interagiscono tramite paradigma di comunicazione request/response.
pf3
pf4
pf5

Anteprima parziale del testo

Scarica Programmazione Server Side e più Dispense in PDF di Informatica solo su Docsity!

PROGRAMMAZIONE SERVER SIDE

Dove la richiesta del client di un documento HTML viene gestita ed elaborata tramite un processo webServer

PROGRAMMAZIONE SERVER-SIDE DISTINTA TRA (in relazione all’html):

- Codice separato Associato a una URL: -CGI common gateway interface -Java servlet -NSAPI o server API - Codice embedded In HTML: -server side includes (SSI)- apache -active server pages-microsoft -PHP -JSP (java server pages)

HTML

Rende possible l’invio di informazioni da un web browser client-side a un programma in esecuzione server-side. Metodo GET invio dati attraverso la URL mediante query string Metodo POST funzione analoga a get ma a differenza di get i dati non sono visibili a tutti

MODELLO A CODICE SEPARATO

Common Gateway Interface (CGI) Programma eseguito sul server e al quale vengono passati i dati letti nel form. Programmi CGI Scritti dal SO perciò meno portabili di una servlet scritta per una JVM. Vantaggi: può essere scritto in qualsiasi linguaggio

SERVLET

Componente software scritto in java che contiene procedure per la risposta al client. E’ necessaria una servlet per dare una risposta specifica per l’elaborazione personalizzata che richiede il client. Tutto questo è generato dal server con l’ausilio di una servlet. Prevede tutti i vantaggi di java. STRUTTURA DI UNA SERVLET La servlet è gestita da una web container (sarà l’ambiente di esecuzione anche delle JSP) Il container gestisce la servlet per tutto il ciclo di vita svincolando il programmatore dalla sua gestione. Web container gestisce: Comunicazione con i client, sicurezza, multithreading, attivazione e terminazione. Permette allo sviluppatore di concentrarsi sullo sviluppo della logica dell’applicazione. Servlet e Web container interagiscono tramite paradigma di comunicazione request/response.

FLUSSO DI ESECUZIONE:

  1. Richiesta CLIENT per una SERVLET a un WEB APPLICATION SERVER
  2. Se è la prima richiesta il server istanzia e carica la servlet
  3. Si attiva un thread che gestisce comunicazione tra client e server
  4. Il server inoltra al thread-servlet la richiesta del client
  5. Il thread-servlet genera la response e la inoltra al server
  6. Il server invia la risposta al client. Se si verificano richieste contemporanee di più clienti vengono attivati nella servlet container più thread. Servlet Container più diffusoTomCat del gruppo Apache che è open source, free software, scritto in java e integra web server come Apache e IIS. REALIZZAZIONE DI UNA SERVLET Le servlet HTTP sono le più comuni: **- Processano HTTP REQUEST
  • Processano HTTP RESPONSE** Import java.io.* Import javax.servlet.* contiene la definizione dell’interfaccia della servlet e le classi per la comunicazione tra client e server Import javax.servlet.http.* ImplementaService(): Invocato ogni volta che un client accede a una servlet  doGet(): Processa richieste di tipo GET effettuate dalla pagina html  doPost(): Processa richieste di tipo POST effettuate dalla pagina html HTTPServletRequest Passato da Service() contiene la richiesta del client, permette di ottenere i parametri inviati dal client. HTTPServletResponse Passato da Service() contiene la risposta per il client, permette di inviare la risposta al client in formato HTML  getOutputStream() per l’invio di dati in forma binaria  getWriter() per l’invio attraverso il canale system

CICLO DI VITA DI UNA SERVLET

Init(): Corrisponde all’inizializzazione della servlet e a settaggio delle variabili globali. Viene chiamato una sola volta all’atto del caricamento.  Service(): Funzionalità di risposta della servlet che gestiscono le richieste mediante gli oggetti ServletRequest e ServletResponse  Destroy(): Terminazione servlet al termine dell’esecuzione del webserver utilizzato per salvare info utili al successivo della servlet stessa.

SVANTAGGI SERVLET:

  • Mescolarsi della logica dell’applicazione con la presentazione
  • Se il codice HTML è complesso, è oneroso implementarlo
  • No prototipazione rapida, ossia una modifica richiede l’intera ricompilazione o riavvio dell’applicazione o del server.

SERVLET E DATABASE

Ausilio di JDBC (Java Database Connectivity) Situato tra database e servlet, permette l’interfacciamento con una servlet. Tipi di Driver JDBC:

  1. Bridge JDBC-ODBC
  2. API Native
  3. Pure Java Driver for Database Middleware
  4. Direct to database pure Java Driver

UTILIZZO JDBC STANDALONE TRAMITE MySQL

1. Driver

  • Caricare driver idoneo all’utilizzo del database
  • Aggiungere percorso dell’archivio jar nella variabile di sistema classpath Per settare il driver ne fornisco il percorso sfruttando le librerie di java.sql 2. Connessione Si apre una connessione verso un DB necessario all’applicazione, sfruttando il driver caricato precedentemente. Definiamo 2 variabili:
    1. Per memorizzare l’indirizzo del Database che include host, info porta e nome DB
    2. Variabile per contenere la stringa di query del linguaggio SQL La query SELECT preleva informazioni FROM da una tabella. Dopo aver creato l’oggetto Connection cerchiamo di stabilire la connessione in un blocco try-catch poiché è a rischio di eccezione. (Interrogazione sul database: congiunzione. Serve ad unire il prelevare dei dati da diverse tabelle, tramite le chiavi primarie ed esterne. Passando dal metodo getConnection() i parametri: nome e indirizzo del DB, nome utente e password. Come si effettua la connessione? Definisco driver, dbms, nome host, n.porta e nome del database 3. Statement Se la connessione va a buon fine viene creato l’oggetto Java.sql.statement, necessario per interagire con il DBMS, attraverso query SQL
  1. ResultSet I risultati ottenuti vengono memorizzati nell’oggetto java.sql.ResultSet. Prevede i parametri della query precedente.

SERVLET CON CONNESSIONE A MYSQL

Implementazione servlet con linguaggio Java e messa all’interno della pagina HTML: Richiesta tramite servlet visualizzata poi come pagina HTML. L’unica cosa che cambia è la stampa finale.

CODICE PER SERVLET:

Per poter utilizzare un DBMS access relativo ad una servlet i passaggi sono:

  1. indicare il nome della libreria
  2. aggiungere al nome del database il parametro che indica la modalità di gestione della memoria ponendo il parametro memory=false
  3. indicare il nome del driver il resto della servlet non richiede interventi degni di particolari osservazioni

SERVLET CON DATABASE EMBEDDED

DB EMBEDDED

Integrati all’interno dell’applicazione, non sono quindi DB autonomi. Utilizzati spesso in fase di sviluppo, test, configurazione. Utilizzati nelle applicazioni Mobile o in situazione dove si necessita di DB snelli, di dimensioni ridotte e strettamente legati all’applicazione in uso. Soluzione ottimale quando sono richieste:  Elevate prestazioni  Dimensioni ridotte I DATABSE EMBEDDED PER JAVASQLite Database scelto per quasi tutti i SO mobili Android, IOS e Symbian E’ un DB relazionale, basato su linguaggio SQL, ottimizzato per ambienti con poche risorse. SQLite realizza la base di dati incorporata in un unico file, come Access. La struttura architetturale di Java permette di utilizzarlo anche per applicazioni Client- Server in quanto il codice eseguibile viene incorporato con le primitive al database.  HyperSQL Database E’ un RDBMS (Relational Database Management System) E’ un DBMS

  • basato sul modello relazionale
  • scritto in java puro
  • supporta le JDK
  • gratuito
  • distribuito con licenza
  • compatibile con la maggior parte delle licenze open source. La connessione è molto simile a quella vista in MySQL in quanto utilizza anch’essa API JDBC Class.forName(“org.hsqldb.jdbcDriver”) Connection miaConnessione=DriverManager.getConnection(“jdbc:hsqldb:NomeDB,,”)  H Database java open source Molto leggero