Le tecnologie software Internet



Documenti analoghi
Le tecnologie software Internet

Architetture e tecnologie Web

Architetture Web: un ripasso

Introduzione alla programmazione Http lato server in Java

Il Protocollo HTTP e la programmazione di estensioni Web

Programmazione server-side: Java Servlet

Java Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet

Applicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi

Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008

Database & WWW. Basi di dati Architetture e linee di evoluzione P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

Protocolli e architetture per WIS

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer

Siti interattivi e dinamici. in poche pagine

19. LA PROGRAMMAZIONE LATO SERVER

Tecnologie di Sviluppo per il Web

Università di Bergamo Facoltà di Ingegneria. Applicazioni Internet B. Paolo Salvaneschi B6_1 V1.7. JSP parte A

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet e Web Server. Richieste. Servlet. Servlet:

Strutture di accesso ai dati

Architetture Web I Server Web e gli Standard della Comunicazione

Lezione di Basi di Dati 1 18/11/ TECNOLOGIE PER IL WEB: CGI - AJAX SERVLETS & JSP

Linguaggio HTML. Reti. Il Linguaggio HTML. Il Linguaggio HTML

Siti web centrati sui dati (Data-centric web applications)

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

JavaServer Pages: Introduzione

Laboratorio di Basi di Dati

Tipi fondamentali di documenti web

Come funziona internet

Note pratiche sullo sviluppo di servlet (I)

Tomcat & Servlet. Contenuti. Programmazione in Ambienti Distribuiti. Tomcat Applicazioni Web. Servlet JSP Uso delle sessioni

Componenti Web: client-side e server-side

Applicazioni web centrati sui dati (Data-centric web applications)

Implementazione di MVC. Gabriele Pellegrinetti

Flavio De Paoli

Server-side Programming: Java servlets Parte II

Architetture Web I Server Web e gli Standard della Comunicazione

Tener traccia del client

Introduzione al linguaggio Java: Servlet e JSP

Sommario. Introduzione Architettura Client-Server. Server Web Browser Web. Architettura a Due Livelli Architettura a Tre Livelli

Corso di PHP. Prerequisiti. 1 - Introduzione

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

APPENDICE A Servlet e Java Server Page

Esercizi di JavaScript

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

L aspetto dei file HTML

Corso basi di dati Introduzione alle ASP

Indice PARTE PRIMA L INIZIO 1

Gestire le sessioni con le Servlet

Lezione III: Oggetti ASP e interazione tramite form HTML

SWIM v2 Design Document

Architetture Web a tre livelli: CGI, SSI, ISAPI e codice mobile Architetture a 3 livelli (1)

Architetture Web parte 2

Corso di Informatica Modulo T3 B2 - Database in rete

Programmazione Web. Introduzione

Architetture per la comunicazione nel Web

SERVLET & JSP DISPENSE

Architettura MVC-2: i JavaBeans

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Il Web Server e il protocollo HTTP

Esercitazione 8. Basi di dati e web

Applicazioni Web: meccanismi per il passaggio di informazioni tramite HTTP Corso di Applicazioni Telematiche

appunti delle lezioni Architetture client/server: applicazioni client

CORSO DI PROGRAMMAZIONE JAVA

Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O /

FORMMAIL.pl. E'presentata una lista dei campi che possono essere utilizzati all'interno della form: CAMPO NECESSARIO DA INSERIRE NELLA FORM

Framework di Middleware. per Architetture Enterprise

Database e reti. Piero Gallo Pasquale Sirsi

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL

Lezione II: Web server e ambiente di lavoro

Programmazione CGI Facilitata per WEB AS/400

I file WAR. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-1

Servlet e JDBC. Programmazione in Rete e Laboratorio

Corso di Informatica Modulo T3 B1 Programmazione web

Application Server per sviluppare applicazioni Java Enterprise

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida

Introduzione all elaborazione di database nel Web

Tecnologie e Programmazione Web

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet:

sito web sito Internet

Tito Flagella - Introduzione alla programmazione di Servlet

Tecnologie di Sviluppo per il Web

Il Web, HTML e Java Corso di Laurea in Ingegneria Informatica Progetto S.C.E.L.T.E.

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni server

Servlet API. Programmazione in Ambienti Distribuiti A.A

Svantaggi delle servlet

1) Il client(browser utilizzato) invia al server i dati inseriti dall utente. Server

HTML HTML. HyperText Markup Language. Struttura di un documento. Gli elementi essenziali di un documento HTML sono i seguenti TAG: <HTML>...

Dott.ssa Adriana Pietramala

Tito Flagella - Introduzione alla programmazione di Servlet

Esempio di esecuzione di una pagina JSP: Il client chiede la pagina: sdfonline.unimc.it/info/modulo.jsp;

DBMS e Linguaggi di programmazione nell'era di Internet

Sessioni Applicative in Http. Tito Flagella

Web Programming Specifiche dei progetti

Java Server Pages. Corso di Applicazioni Telematiche. A.A Lezione n.18 Prof. Roberto Canonico

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione

Lezione 1 Introduzione

INTRODUZIONE AL LINGUAGGIO HTML. Internet + HTML + HTTP = WWW

Transcript:

Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi B2_1 V1.7 Le tecnologie software Internet Standard aperti / Sun Java Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale e per supporto a lezioni universitarie. Ogni altro uso è riservato, e deve essere preventivamente autorizzato dall autore. Sono graditi commenti o suggerimenti per il miglioramento del materiale B2 TecnSoft Internet Paolo Salvaneschi 1

INDICE Tecnologie (standard aperti + Sun Java) Pagine Web statiche (HTML,CSS) Scripting lato client, JavaScript (DHTML) Java Applet CGI Java Servlet Java Server Pages Connessione con i Data Base B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 2

Tecnologie (standard aperti + Sun Java) Tecnologie Nomenclatura: Linguaggio Tecnologia Esempio di Strumento es. Java es. JSP es. Tomcat B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 3

Tecnologie (standard aperti + Sun Java) Pagine Web statiche (HTML,CSS) Pagine Web dinamiche lato Client Scripting lato client, JavaScript (DHTML) Java Applet Pagine Web dinamiche lato Server CGI Servlet, JSP Connessione con i Data Base B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 4

Pagine Web statiche (HTML,CSS) Server Server Client Data base Sistema Informativo H T T P D HTTP Browser HTML CSS Apache Microsoft Internet Explorer Mozilla Firefox B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 5

File Paginaxx.htm H T T P D Server Pagine Web statiche (HTML,CSS) Richiesta HTTP GET /paginaxx.htm HTTP/1.1 <html> <body> <a href= http://www.pippo.it/paginaxx.htm > chiedi pagina xx</a> </body></html> Risposta HTTP HTTP/1.1 200 <html> <head> <title>paginaxx</title>... </body> </html> http://www.pippo.it:80/. Browser HTML CSS Client B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 6

Pagine Web statiche (HTML,CSS) http://httpd.apache.org B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 7

Pagine Web statiche (HTML,CSS) Pagine Web statiche Server di documenti ipermediali Distribuzione di documenti codificati in HTML Separazione della struttura dalla presentazione (CSS) B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 8

Pagine Web statiche (HTML,CSS) <html> <head> <title>la prima pagina Web di Mario Rossi</title> <link type="text/css" rel="stylesheet" href="es2_css_esterno.css"> </head> h1{font-family: Arial; font-size: 20pt; color: blue; font-weight: bold;} CSS <body> <h1>home page di Mario Rossi</h1> <p>questa è la mia prima pagina in HTML.</p> <h1>intestazione di primo livello</h1> <h2>intestazione di secondo livello</h2> <h3>intestazione di terzo livello</h3> B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 9

Scripting lato client, JavaScript (DHTML) Server Server Client Data base Sistema Informativo H T T P D HTTP Browser HTML CSS JavaScript Apache Microsoft Internet Explorer Mozilla Firefox B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 10

Scripting lato client, JavaScript (DHTML) Pagine Web dinamiche (DHTML) Insieme di tecnologie che permettono di modificare le pagine HTML caricate nel browser senza interagire con il server Es. modifica della formattazione a seguito di interazione con l utente Es. controllo dell input B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 11

Scripting lato client, JavaScript (DHTML) HTML+CSS+Java Script Integrazione di procedure interpretate nella pagina HTML ; Esecuzione lato client Gestione eventi ed interazione locale con l utente Definizione oggetti e attributi (DOM Document Object Model) componenti la pagina e modificabilità da programma B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 12

Scripting lato client, JavaScript (DHTML) Scripting <HTML> <HEAD> <TITLE>javascript</TITLE> <SCRIPT language="javascript"> function presenta() {alert("sei mai stato in cima all'adamello?")} </SCRIPT> </HEAD> <BODY bgcolor="#ffff00"> <BR><BR><BR><BR> <IMG src="..\immagini\ada_sal.jpeg" onmouseover="presenta()"> </BODY> </HTML> Gestore degli eventi B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 13

Scripting lato client, JavaScript (DHTML) <HEAD> <SCRIPT language="javascript"> function uno() {document.all.container1.style.visibility="visible"; document.all.container2.style.visibility="hidden";} function due() {document.all.container1.style.visibility="hidden"; document.all.container2.style.visibility="visible";} </SCRIPT> Scripting DOM B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 14

<STYLE type="text/css"> #container1 { position:absolute; top: 2in; left: 2in; width: 2in; visibility: visible; } #container2 { position:absolute; top: 2in; left: 2in; width: 2in; visibility: hidden; } </STYLE> </HEAD> Scripting lato client, JavaScript (DHTML) <BODY> <DIV id="container1"> <IMG src="..\immagini\ada_sal.jpeg" width="300" height="300" onmouseover="due()"> <P><b>l'Adamello da sud</b></p> </DIV> <DIV id="container2"> <IMG src="..\immagini\ada_lobbie.jpeg" width="300" height="300" onmouseout="uno()"> <P><b>Le Lobbie da Nord</b></P> </DIV> </BODY> </HTML> CSS B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 15 Eventi

Java Applet Server Server Client Data base Sistema Informativo H T T P D HTTP Browser HTML CSS Applet Java Apache Microsoft Internet Explorer Mozilla Firefox (Java Virtual Machine) B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 16

Inserimento oggetto <HTML> <HEAD> <TITLE>A Clock (1.6)</TITLE> </HEAD> <BODY> <h1>a Clock (1.6)</h1> <applet code="clock.class" width="170" height="150"> <param name="bgcolor" value="000000"> <param name="fgcolor1" value="ff0000"> <param name="fgcolor2" value="ff00ff"> </applet> </BODY> </HTML> B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 17

CGI Server Server Client Data base Sistema Informativo Linguaggio di Programmaz. C, Java, Perl CGI H T T P D HTTP Browser Apache Microsoft Internet Explorer Mozilla Firefox B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 18

CGI http://www.pippo.it Setup del Web server: c:\ilmioserver è la directory radice Quando il server riceve una richiesta corrispondente all URL http://www.pippo.it cerca un file di default nella directory radice (index.html, index.htm, default.html, default.htm). Ad ogni richiesta di pagina (http://www.pippo.it/paginax.htm) Il server trasmette la pagina. B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 19

CGI Nella directory radice è creata una directory cgi-bin. Quando il server riceve una richiesta di un file in cgi-bin non serve il file ma lo manda in esecuzione e serve l output dell esecuzione. B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 20

CGI <html> <body> <a href= http://www.pippo.it/ilmioserver/cgi-bin/esempio.cgi > attiva cgi</a> </body></html> HTTP/1.1 200 Content-type: text/html... <html> <body> <h1>hello there!</h1> </body> </html> #include <stdio.h> int main(){ printf("content-type: text/html\n\n"); printf("<html>\n"); printf("<body>\n"); printf("<h1>hello there!</h1>\n"); printf("</body>\n"); printf("</html>\n"); return 0; } B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 21

CGI <html> <body> <a href= http://www.pippo.it/ilmioserver/cgi-bin/esempio.cgi > attiva cgi</a> </body></html> #include <stdio.h> int main(){ Il programma può includere qualsiasi procedura che accede a banche dati o interagisce con il sistema informativo esistente return 0; } B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 22

CGI Invio di dati Metodo GET Nomi e valori sono appesi alla URL http://nome.server/cgi.bin/programma?nome=valore&nome=valore Metodo POST Nomi e valori sono nel corpo del messaggio nome=valore&nome=valore B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 23

Raccolta dati da client via form CGI Method (POST GET) (case insensitive): identifica il metodo HTTP utilizzato per trasmettere i dati della form Action: indirizza l applicazione che elabora i dati <body> <form method="post" action="http://nome.server/cgi.bin/programma">. </form> </body> B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 24

CONTENT_LENGTH CONTENT_TYPE GATEWAY_INTERFACE HTTP_ACCEPT HTTP_USER_AGENT PATH_INFO PATH_TRANSLATED QUERY_STRING REMOTE_ADDR REMOTE_HOST REMOTE_IDENT REMOTE_USER REQUEST_METHOD SCRIPT_NAME SERVER_NAME SERVER_PORT CGI Variabili di ambiente Il programma attivato può accedere ad un insieme di varabili di ambiente Contiene i dati passati dal client con il metodo GET Contiene il metodo usato: GET o POST B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 25

CGI Limiti Ogni richiesta al server via CGI genera un processo che termina a fine elaborazione Se il programma attivato via CGI contiene un accesso a DataBase, ogni volta sarà aperta e chiusa una connessione al DBMS Utilizzo di risorse elevato problemi di scalabilità (es. applicazione B2C) B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 26

Tecnologie (standard aperti + Sun Java) Server Server Integrazione delle tecnologie Client Data base Sistema Informativo Linguaggio di Programmaz. C, Java, Perl CGI H T T P D HTTP Browser HTML CSS JavaScript Java Applet Apache Microsoft Internet Explorer Mozilla Firefox B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 27

Java Servlet Server Server Application Server Client Data base Sistema Informativo Java Servlet H T T P D HTTP Browser Tomcat Apache Microsoft Internet Explorer Mozilla Firefox B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 28

Java Servlet Tomcat http://jakarta.apache.org B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 29

Java Servlet Servlet Oggetti Java particolari che sono caricati ed eseguiti dal web server che li utilizza come proprie estensioni. Il web server mette a disposizione delle Servlet un container che si occupa della gestione dell ambiente all interno delle quali le servlet girano. Il container passa i dati dal client verso le servlet e viceversa. B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 30

Java Servlet Package javax.servlet Package di base delle Servlet API Contiene le classi per definire Servlet standard indipendenti dal protocollo. Una Servlet generica è una classe definita a partire dall interfaccia Servlet contenuta all interno del package javax.servlet. B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 31

Java Servlet Package javax.servlet.http Le classi del package estendono le funzionalità di base di una servlet supportando tutte le caratteristiche della trasmissione di dati con protocollo http compresi cookies B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 32

Java Servlet Ciclo di vita di una Servlet Una servlet è caricata e inizializzata dal web server al momento della prima richiesta http da parte di un client o al momento dell avvio del servizio. All inizializzazione la servlet può, se il caso, aprire una connessione con un DataBase (connessione che resta aperta per servire più richieste del client). B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 33

Java Servlet Ciclo di vita di una Servlet La servlet esegue le richieste del client. Per ogni richiesta è creato un thread. La servlet rilascia le risorse ed è distrutta B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 34

HelloWorldServlet.java. import javax.servlet.* ; import javax.servlet.http.* ; public class HelloWorldServlet extends HttpServlet{ } Java Servlet Metodo invocato al momento dell arrivo di una richiesta da parte di un client public void service (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException{ res.setcontenttype( text/html ); ServletOutputStream out = res.getoutputstream(); out.println( <html> ); out.println( <head><title>hello World</title></head> ); out.println( <body> ); out.println( <h1>hello World</h1> ); out.println( </body></html> ); } B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 35

Java Servlet Application server Tomcat WebLogic Websphere Sun ONE. Open Source BEA IBM Sun Microsystems B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 36

Java Server Pages Server Server Application Server Client Data base Sistema Informativo Java JSP H T T P D HTTP Browser Tomcat Apache Microsoft Internet Explorer Mozilla Firefox B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 37

Java Server Pages Java Server Pages (JSP) Pagina di testo HTML che include codice java Pagina dinamica che è eseguita lato server e restituisce HTML al client B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 38

Java Server Pages Scripting lato client Scopo: rendere dinamica l interfaccia utente Cambiare a seguito di eventi la presentazione Gestire l input dell utente Scripting lato server Scopo: connettersi a programmi e basi dati e modificare di conseguenza la pagina inviata B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 39

Java Server Pages Java Server Pages (JSP) Il server utilizza la pagina JSP come una servlet Al momento del primo accesso la pagina JSP è trasformata in un file Java e compilata ottenendo una classe Java che rappresenta una servlet di tipo HttpServlet che crea una pagina html e la invia al client. B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 40

Java Server Pages Java Server Pages (JSP) Possibile integrazione tra servlet e JSP: il client invia una richiesta ad una servlet che invia gli oggetti prodotti ad una JSP la quale genera l HTML e lo invia JSP: View Servlet: Controller Componenti Java: Model B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 41

Java Server Pages esempio1.jsp Espressioni :iniziano con la sequenza di caratteri <%= e terminano con la sequenza %> Utilizzate per aggiungere alla risposta http il risultato dell esecuzione di un espressione di scripting <html> <body> <h1> Informazioni sulla richiesta http </h1> <br> Metodo richiesto : <%= request.getmethod() %> <br> URI : <%= request.getrequesturi() %> <br> Protocollo : <%= request.getprotocol() %> <br> <body> </html> B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 42

Esempio2.jsp <html> <body> <% for(int i=0; i<10; i++) { if(i%2==0) { %> <h1>pari</h1> <% } else { %> <h2>dispari</h2> <% } </html> %> <body> } Java Server Pages Scriptlet: iniziano con la sequenza <%, terminano con la sequenza %> Possibilità si spezzare il codice Java contenuto all interno delle scriptlet per dar modo al programmatore di non dover fondere tag html all interno del sorgente Java. B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 43

Server Side Include (.shtml) Apache SSI (Server Side Includes) Pagina di testo HTML che include direttive valutate dal server Lo script è eseguito sul server alla richiesta della pagina e modifica dinamicamente la pagina che è trasmessa al client Utile per inserire parti dinamiche limitate (altrimenti si utilizza CGI o JSP) B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 44

Server Side Include (.shtml) Apache SSI (Server Side Includes) SINTASSI DELLE DIRETTIVE: <!--#element attribute=value attribute=value...--> Formattato come commento HTML; se il server non è abilitato non lo elabora ma è visibile nel sorgente HTML Il file che include le direttive deve avere estensione.shtml Esempio: produce la data corrente <!--#echo var="date_local" --> B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 45

Connessione con i Data Base Server Server Client Data base S Q L JDBC (ODBC) H T T P D B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 46

Connessione con i Data Base ODBC (Open DataBase Connectivity) Standard internazionale di accesso a Database Relazionali JDBC Interfaccia ad oggetti java di accesso a sorgenti di dati Connessa ai singoli driver di DataBase attraverso una interfaccia nativa o attraverso un ponte verso ODBC B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 47

J2EE B2 TecnSoft Internet InternetPaolo Paolo Salvaneschi 48