Applicazioni Web. Flavio De Paoli

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Applicazioni Web. Flavio De Paoli depaoli@disco.unimib.it"

Transcript

1 Applicazioni Web Flavio De Paoli 1 Outline Il web come architettura di riferimento Architettura di una applicazione web Servlet e JSP Gestione delle sessioni: cookies Accesso a database con una servlet 2

2 Perché il web Basato su Internet Ambiente standard (TCP/IP) Larga diffusione Indipendente dalle piattaforme Semplicità d uso Interfaccia grafica (Browsers) Infrastruttura completa Supporta sistemi aperti Strumenti sempre più potenti: evoluzioni di HTML, CGI, JavaScript, Java, 3 Diffusione del web 4

3 Persone on-line September World Total Africa million 6.31 million Asia/Pacific million Europe million Middle East Canada & USA 5.12 million million Latin America million Dic 2000: total world wide: million Source: 5 HTTP/CGI URL definisce un naming globale HyperText Transfer Protocol (HTTP) fornisce un modello tipo RPC basato su socket permette di invocare programmi sul server Common Gateway Interface (CGI) permette al server di attivare un programma e di passargli le richieste e i parametri provenienti dal client 6

4 Architettura web app HTTP server Internet HTTP CGI 7 Architettura CGI 8

5 CGI lato Client La pagina web deve contenere il riferimento allo script <center> <h1> Prova CGI</h1></center> <p><a href=" Click per eseguire </a></p> Il browser invia una richesta tipo: GET /Scripts/nome HTTP/1.0 9 CGI e Form Si possono usare le form per inviare dati... <FORM ACTION= > Server: <INPUT TYPE= text NAME=Jserver VALUE= pippo.pluto.it MAXLENGTH= 256 > <INPUT TYPE= checkbox NAME= inviarisposta VALUE= yes > risposta? <INPUT TYPE= submit > </FORM>... 10

6 CGI e form Il client puo usare uno dei due metodi: GET Include l input in coda alla URL E idempotente: ogni esecuzione ha lo stesso effetto => la risposta viene messa nella cache del client Usata per ottenere pagine html e immagini POST L input segue come documento autonomo Non e idempotente: ogni esecuzione ha un diverso effetto => La risposta NON viene messa nella cache Usata per processare FORM e interagire con DB Esempio GET Scripts/nomeScript/Jserver= pippo.pluto.it /inviarisposta= false HTTP/ Caratteristiche HTTP e CGI stanno tra client e server architettura complessa e quindi scomoda performance penalizzate dal protocollo HTTP a caratteri (lentezza, casting, ) Non c è stato ogni form è un messaggio autonomo per includere le stesse info in froms successive si possono usare - campi nascosti - cookie 12

7 Oltre i limiti delle CGI Numerose proposte per infrastrutture e API proprietarie WinCGI JSP/Servlets (Sun) WebObjects (NeXT/Apple) ASP (Microsoft) 13 Java Servlet 14

8 Java Servlets Sono piccole applicazioni Java residenti sul server Java Web Server di JavaSoft Java Servlet Development Kit per i web server più diffusi Apache/Tomcat 15 Caratteristiche Hanno una interfaccia standard sono limitati sono semplici Sono residenti in memoria Vantaggi mantengono uno stato consentono interfaccia con un altro servlet sono più efficienti e potenti delle CGI sono meno potenti di un ambiente di programmazione distribuito (CORBA, EJB) 16

9 Cos e e e come funziona Una servlet e un componente gestito in modo automatico da un container o engine L interfaccia definisce un set di operazioni predichiarate e (ri)definibili di volta in volta Il container controlla le servlet (attiva/disattiva) in base alle richieste dei client 17 Problema: : Come fa il container ad eseguire la servlet? Ogni servlet definisce un insieme di operazioni standard che il container può invocare Realizzare una servlet significa associare un programma alle operazioni predefinite In questo modo è possibile personalizzare il comportamento di un componente standard 18

10 Interfaccia Servlet Ogni servlet implementa l interfaccia javax.servlet.servlet, con 5 metodi void init(servletconfig config) Inizializza la servlet ServletConfig getservletconfig() Restituisce i parametri di inizializzazione e il ServletContext che da accesso all ambiente void service(servletrequest request, ServletResponse response) Invocato per gestire le richieste dei client String getservletinfo() Restituisce informazioni tipo autore e versione void destroy() Chiamata quando la servlet termina (es: per chiudere un file o una connessione con un database) 19 Classi astratte Sono presenti due classi astratte che implementano i metodi dell interfaccia In pratica si eredita da queste classi e si ridefiniscono i metodi che interessano javax.servlet.genericservlet javax.servlet.http.httpservlet Definisce metodi per l uso in ambiente web 20

11 La classe HTTPServlet Implementa service in modo da invocare i metodi per servire le richieste dal web doget Processa le richieste di tipo GET dopost Processa le richieste di tipo POST Parametri: HTTPServletRequest HTTPServletResponse Eccezioni ServletException IOException 21 Richieste e risposte Interfaccia HTTPServletRequest Viene passato un oggetto da service Contiene la richiesta del client Estende ServletRequest Interfaccia HTTPServletResponse Viene passato un oggetto da service Contiene la risposta per il client Estende ServletResponse 22

12 Richieste e risposte I metodi String getparameter(string name) Restituisce il valore dell argomento name Enumeration getparameternames() Restituisce l elenco dei nomi degli argomenti String[] getparametersvalues(string name) Restituisce i valori dell argomento name Cookie[] getcockies() Restituisce i cookies del server sul client void addcookie(cookie cookie) Aggiunge un cookie nell intestazione della risposta HTTPSession getsession(boolean create) Una HTTPSession dentifica il client. Viene creata se create=true 23 Richieste e risposte I metodi (continua) void setcontenttype(string type) Specifica il tipo MIME della risposta per dire al browser come visualizzare la risposta Es: text/html dice che e html ServletOutputStream getoutputstream() Restituisce lo stream di byte per comunicare con il client PrintWriter getwriter() Restituisce lo stream di caratteri per comunicare con il client 24

13 Un esempio con GET 1) // da Internet e WWW How to program, Dietel&Dietel, Prentice Hall 2) // Creating and sending a page to the client 3) public class HTTPGetServlet extends HttpServlet { 4) public void doget( HttpServletRequest request, 5) HttpServletResponse response ) 6) throws ServletException, IOException { 7) PrintWriter output; 8) response.setcontenttype( "text/html" ); // content type 9) output = response.getwriter(); // get writer 10) // create and send HTML page to client 11) StringBuffer buf = new StringBuffer(); 12) buf.append( "<HTML><HEAD><TITLE>\n" ); 13) buf.append( "A Simple Servlet Example\n" ); 14) buf.append( "</TITLE></HEAD><BODY>\n" ); 15) buf.append( "<H1>Welcome to Servlets!</H1>\n" ); 16) buf.append( "</BODY></HTML>" ); 17) output.println( buf.tostring() ); 18) output.close(); // close PrintWriter stream 19) } 20) } 25 La pagina HTML 1) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2) <HTML> 3) <HEAD> 4) <TITLE>Servlet HTTP GET Example</TITLE> 5) </HEAD> Come processare il form 6) <BODY> 7) <FORM ACTION=" 8) METHOD="GET"> Tipo di richiesta 9) <P>Click the button to have the servlet send 10) an HTML document</p> 11) <INPUT TYPE="submit" VALUE="Get HTML Document"> 12) </FORM> 13) </BODY> Crea un bottone Etichetta esposta 14) </HTML> 26

14 La pagina HTML 27 Un esempio POST 1) // A simple survey servlet. 2) // This servlet writes data to a file on the Web server. 3) import javax.servlet.*; 4) import javax.servlet.http.*; 5) import java.text.*; 6) import java.io.*; 7) public class HTTPPostServlet extends HttpServlet { 8) private String animalnames[] = 9) { "dog", "cat", "bird", "snake", "none" }; 10) public void dopost( HttpServletRequest request, 11) HttpServletResponse response ) 12) throws ServletException, IOException 13) { 14) int animals[] = null, total = 0; 15) File f = new File( "survey.dat" ); 28

15 16) if ( f.exists() ) { 17) // Determine # of survey responses so far 18) try { 19) ObjectInputStream input = new ObjectInputStream( 20) new FileInputStream( f ) ); 21) animals = (int []) input.readobject(); 22) input.close(); // close stream 23) 24) for ( int i = 0; i < animals.length; ++i ) 25) total += animals[ i ]; 26) } 27) catch( ClassNotFoundException cnfe ) { 28) cnfe.printstacktrace(); 29) } 30) } 31) else 32) animals = new int[ 5 ]; 33) // read current survey response 34) String value = 35) request.getparameter( "animal" ); 36) ++total; // update total of all responses 29 37) // determine which was selected and update its total 38) for ( int i = 0; i < animalnames.length; ++i ) 39) if ( value.equals( animalnames[ i ] ) ) 40) ++animals[ i ]; 41) // write updated totals out to disk 42) ObjectOutputStream output = new ObjectOutputStream( 43) new FileOutputStream( f ) ); 44) output.writeobject( animals ); 45) output.flush(); 46) output.close(); 47) // Calculate percentages 48) double percentages[] = new double[ animals.length ]; 49) 50) for ( int i = 0; i < percentages.length; ++i ) 51) percentages[ i ] = * animals[ i ] / total; 30

16 52) // send a thank you message to client 53) response.setcontenttype( "text/html" ); // content type 54) PrintWriter responseoutput = response.getwriter(); 55) StringBuffer buf = new StringBuffer(); 56) buf.append( "<html>\n" ); 57) buf.append( "<title>thank you!</title>\n" ); 58) buf.append( "Thank you for participating.\n" ); 59) buf.append( "<BR>Results:\n<PRE>" ); 60) DecimalFormat twodigits = new DecimalFormat( "#0.00" ); 61) for ( int i = 0; i < percentages.length; ++i ) { 62) buf.append( "<BR>" ); 63) buf.append( animalnames[ i ] ); 64) buf.append( ": " ); 65) buf.append( twodigits.format( percentages[ i ] ) ); 66) buf.append( "% responses: " ); 67) buf.append( animals[ i ] ); 68) buf.append( "\n" ); 69) } 70) buf.append( "\n<br><br>total responses: " ); 71) buf.append( total ); 72) buf.append( "</PRE>\n</html>" ); 73) responseoutput.println( buf.tostring() ); 74) responseoutput.close(); 75) } 76) } 31 La pagina HTML 1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2. <HTML> 3. <HEAD> 4. <TITLE>Servlet HTTP Post Example</TITLE> 5. </HEAD> 6. <BODY> 7. <FORM ACTION=" 8. METHOD="POST"> 9. What is your favorite pet?<br><br> 10. <INPUT TYPE="radio" NAME="animal" VALUE="dog">Dog<BR> 11. <INPUT TYPE="radio" NAME="animal" VALUE="cat">Cat<BR> 12. <INPUT TYPE="radio" NAME="animal" VALUE="bird">Bird<BR> 13. <INPUT TYPE="radio" NAME="animal" VALUE="snake">Snake<BR> 14. <INPUT TYPE="radio" NAME="animal" VALUE="none" 15. CHECKED>None 16. <BR><BR><INPUT TYPE="submit" VALUE="Submit"> 17. <INPUT TYPE="reset"> 18. </FORM> 19. </BODY> 20. </HTML> 32

17 La pagina HTML 33 Esecuzione di una servlet Viene creata un istanza della servlet Condivisa da tutti client Ogni richiesta genera un Thread che esegue la doxxx appropriata servlet HTTP server Servlet container 34

18 Ciclo di vita Una servlet viene creata dal container Quando viene effettuata la prima chiamata Viene invocato il metodo init() per inizializzazioni specifiche Una servlet viene distrutta Quando non ci sono servizi in esecuzione Quando e scaduto un timeout predefinito all occorrenza di uno dei due eventi Viene invocato il metodo destroy() per terminare correttamente la servlet 35 Terminazione Container e richieste dei client devono sincronizzarsi sulla terminazione Bisogna Alla scadenza del timeout potrebbe essere ancora in esecuzione la service() Tener traccia dei thread in esecuzione Progettare il metodo destroy() in modo da notificare lo sutdown e attendere il completamento del metodo service() Progettare i metodi lunghi in modo che verifichino periodicamente se e in corso uno shutdown e comportarsi di conseguenza 36

19 Standard Directory Layout A web application is defined as a hierarchy of directories and files in a standard layout "unpacked" form each directory and file exists in the filesystem separately "packed" form Web ARchive, or WAR file 37 Standard Directory Layout *.html, *.jsp, etc. The HTML and JSP pages, along with other files. WEB-INF/web.xml The Web Application Deployment Descriptor for your application. application's "document root" directory WEB-INF/classes/ This directory contains any Java class files (and associated resources) including both servlet and non-servlet classes, that are not combined into JAR files. WEB-INF/lib/ This directory contains JAR files that contain Java class files (and associated resources) 38

20 Le stato del client HTTP non prevede persistenza Coockies Non si possono mantenere informazioni tra una chiamata e l altra Non si possono identificare i clienti Informazioni memorizzate sul client Permettono di gestire sessioni HTTPSession Gestito automaticamente dal container (con cookie o riscrittura delle URL) 39 Cookie Stringhe di caratteri restituite dal server insieme alle risposte Inserite nell header del messaggio HTTP in risposta Vengono memorizzati nome, valore e host di provenienza tempo di validita (fino a maxcookie) 40

21 User-server interaction: cookies server sends cookie to client in response mst Set-cookie: client presents cookie in later requests cookie: server matches presentedcookie with server-stored info authentication remembering user preferences, previous choices client usual http request msg usual http response + Set-cookie: # usual http request msg cookie: # usual http response msg usual http request msg cookie: # usual http response msg server cookiespectific action cookiespectific action 41 Definire un Cookie // creare un cookie Cookie nomecookie = new Cookie("nome", valore); // definire gli attributi nomecookie.setcomment("questo e un commento " + "al cookie."); nomecookie.maxage(nsecondi); // inviare il cookie con la risposta // NOTA: deve essere aggiunta alla risposta prima // dei dati (prima di invocare getwriter) response.add(nomecookie); 42

22 Recuperare un Cookie Cookie[] cookies = request.getcookies(); for(i=0; i < cookies.length; i++) { Cookie thiscookie = cookie[i]; if (thiscookie.getname().equals("nome") && thiscookie.getvalue().equals(valore)) {... // cancella il cookie mettendo l'eta' a 0 thiscookie.setmaxage(0); } } 43 Le sessioni Java Un oggetto della classe HTTPSession crea una sessione per un cliente-browser Una sessione permette di avere memoria durante una serie di chiamate dallo stesso browser Le sessioni sono condivise da tutte le servlet usate dallo stesso cliente Le azioni possibili sono Creare/ottenere una sessione Memorizzare/recuperare i dati Invalidare una sessione (non necessario) 44

23 Ottenere una sessione Dalla richiesta e possibile estrarre una sessione se l'argomento e' true viene creata se non esiste deve essere ottenuta prima di scrivere i dati in risposta (prima di invocare getwriter) HttpSession session = request.getsession(true);... out = response.getwriter(); 45 Leggere/scrivere dati I dati che si possono memorizzare sono Identificatore di sessione Coppie nome/valore => String/Object I nomi vanno scelti in modo da evitare conflitti dovuti alle condivisioni Es: nomeservlet.nome L API prevede i metodi public void setattribute(java.lang.string name, java.lang.object value) public java.lang.object getattribute(java.lang.string name) // restituisce null se non esiste 46

24 Un esempio HTTPSession 1) // Using sessions. 2) import javax.servlet.*; 3) import javax.servlet.http.*; 4) import java.io.*; 5) public class SessionExample extends HttpServlet { 6) private final static String names[] = 7) { "C", "C++", "Java", "Visual Basic 6" }; 8) private final static String isbn[] = { 9) " ", " ", 10) " ", " " }; 11) private String getisbn( String lang ) { 12) for ( int i = 0; i < names.length; ++i ) 13) if ( lang.equals( names[ i ] ) ) 14) return isbn[ i ]; 15) return ""; // no matching string found 16) } 47 17) public void dopost(httpservletrequest request, 18) HttpServletResponse response ) 19) throws ServletException, IOException { 20) PrintWriter output; 21) String language = request.getparameter( "lang" ); 22) // Get the user's session object. 23) // Create a session (true) if one does not exist. 24) HttpSession session = request.getsession( true ); 25) // add a value for user's choice to session 26) session.setattribute( language, getisbn( language ) ); 27) response.setcontenttype( "text/html" ); 28) output = response.getwriter(); 29) // send HTML page to client 30) output.println( "<HTML><HEAD><TITLE>" ); 31) output.println( "Sessions" ); 32) output.println( "</TITLE></HEAD><BODY>" ); 33) output.println( "<P>Welcome to Sessions!</P>" ); 34) output.println( "<P>" ); 35) output.println( language ); 36) output.println( " is a great language.</p>" ); 37) output.println( "</BODY></HTML>" ); 38) output.close(); // close stream 39) } 48

25 40) public void doget( HttpServletRequest request, 41) HttpServletResponse response ) 42) throws ServletException, IOException { 43) PrintWriter output; 44) // Get the user's session object. 45) // Don't create a session (false) if one does not exist. 46) HttpSession session = request.getsession( false ); 47) // get names of session object's values 48) java.util.enumeration valuenames; 49) if ( session!= null ) 50) valuenames = session.getattributenames(); 51) else 52) valuenames = null; 53) response.setcontenttype( "text/html" ); 54) output = response.getwriter(); 55) output.println( "<HTML><HEAD><TITLE>" ); 56) output.println( "Sessions II" ); 57) output.println( "</TITLE></HEAD><BODY>" ); 49 58) if ( valuenames!= null && valuenames.hasmoreelements() ) { 59) output.println( "<H1>Recommendations</H1>" ); 60) // get value for each name in valuenames 61) for ( ; valuenames.hasmoreelements(); ) { 62) String name = (String) valuenames.nextelement(); 63) String value = (String) session.getattribute( name ); 64) output.println( 65) name + " How to Program. " + 66) "ISBN#: " + value + "<BR>" ); 67) } 68) } 69) else { 70) output.println( "<H1>No Recommendations</H1>" ); 71) output.println( "You did not select a language" ); 72) } 73) output.println( "</BODY></HTML>" ); 74) output.close(); // close stream 75) } 76) } 50

26 Riscrittura dell URL Se un browser non ammette i cookie si ricorre alla riscrittura dell URL Ogni link della risposta deve essere riscritto includendo l ID della sessione Si usano i metodi public java.lang.string encodeurl(java.lang.string url) public java.lang.string redirecturl(java.lang.string url) La getsession provvede a generare correttamente una sessione da una successiva richiesta 51 Comunicazione Una servlet puo comunicare Con una chiamata HTTP (invocazione URL ad altre risorse servlet, JSP, CGI) Attraverso un oggetto RequestDispatcher Scambiandosi i reference agli oggetti con HTTPSession 52

27 Ottenere un dispatcher Si usa la getrequestdispatcher Parametro una URL valida per la risorsa HTML, JSP, Servlet Eventulamente restituisce null // Get the dispatcher; // it gets the main page to the user RequestDispatcher dispatcher = getservletcontext().getrequestdispatcher( "/bookstore/bookstore.html"); Usare un dispatcher Si puo delegare la risposta a un altra risorsa Servlet, HTML, JSP public void forward(servletrequest request, ServletResponse response) throws ServletException, java.io.ioexception Si puo inserire nella risposta quella dell altra risorsa public void include(servletrequest request, ServletResponse response) throws ServletException, java.io.ioexception 54

28 Cookie(ID,#) S1 S2 ID=# Sessione Cookie(ID,#) Cookie(ID,#) 55 Java JSP Flavio De Paoli 56

29 Outline Cos e una JSP Gli elementi che compongono una JSP JSP e JavaBeans 57 Java Server Pages Tecnologia per la creazione di applicazioni web Specifica l interazione tra un contenitore/server ed un insieme di pagine che presentano informazioni all utente Le pagine sono costituite da tag tradizionali (HTML, XML, WML, ) e da tag applicativi che controllano la generazione del contenuto Rispetto ai servlet, facilitano la separazione tra logica applicativa e presentazione Analogo alla tecnologia Microsoft Active Server Page (ASP) Differenze una Java Server Page chiama un programma Java eseguito sul Web server una Active Server Page contiene uno script VBScript o JScript 58

30 Java Server Pages JavaServer Pages (JSP) separano la parte dinamica delle pagine dal template HTML statico Il codice JSP va incluso in tag speciali, delimitati da "<%" e "%>". Esempio una pagina che visualizza Grazie per la scelta di Internet Guida Pratica quando l utente si connette all URL contiene Grazie per la scelta di <I><%= request.getparameter("title") %> </I> La pagina viene convertita automaticamente in una servlet java la prima volta che viene richiesta 59 JSP: esempio <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>Uso di JSP</TITLE> <LINK REL=STYLESHEET HREF="My-Style-Sheet.css" TYPE="text/css"> </HEAD> <BODY BGCOLOR="#FDF5E6" TEXT="#000000" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000"> <CENTER> <TABLE BORDER=5 BGCOLOR="#EF8429"> <TR><TH CLASS="TITLE"> Using JavaServer Pages</TABLE> </CENTER> <P> Some dynamic content created using various JSP mechanisms: <UL> <LI><B>Expression.</B><BR> Your hostname: <%= request.getremotehost() %>. <LI><B>Scriptlet.</B><BR> <% out.println("attached GET data: " + request.getquerystring()); %> <LI><B>Declaration (plus expression).</b><br> <%! private int accesscount = 0; %> Accesses to page since server reboot: <%= ++accesscount %> <LI><B>Directive (plus expression).</b><br> <%@ page import = "java.util.*" %> Current date: <%= new Date() %> </UL> </BODY> </HTML> 60

31 Il risultato 61 Come funziona In entrambe le modalità, il file JSP viene prima compilato la versione compilata viene tenuta in memoria per rendere più veloce una successiva richiesta della pagina 62

32 Ciclo di vita delle applicazioni JSP Web Server JSP Client Servlet JSP compiler Servlet Container 63 Gli elementi di una JSP Template text Le parti statiche della pagina Commenti <%-- questo e un commento --> Direttive <%@ direttiva... di compilazione %> Azioni In XML: <tag attributes> body </tag> Elementi di scripting Istruzioni nel linguaggio specificato nelle direttive Sono di tre tipi: scriplet, declaration, expression 64

33 Direttive page include taglib Liste di attributi/valore Valgono per la pagina in cui sono inseriti page import="java.util.*" buffer="16k" %> page import= java.math.*, java.util.* %> page session= false %> Include in compilazione pagine HTML o JSP <%@ include file="copyright.html" %> Dichiara tag definiti dall utente implementando opportune classi <%@ taglib uri= TableTagLibrary prefix= table %> <table:loop> </table:loop> 65 Direttive JSP forward determina l invio della richiesta corrente, eventualmente aggiornata con ulteriori parametri, all URL indicata <jsp:forward page= login.jsp %> <jsp:param name= username value= user /> <jsp:param name= password value= pass /> </jsp:forward> include invia dinamicamente la richiesta ad una data URL e ne include il risultato <jsp:include page= login.jsp %> usebean localizza ed istanzia (se necessario) un javabean nel contesto specificato Il contesto può essere La pagina, la richiesta, la sessione, l applicazione <jsp:usebean id= cart scope= session class= ShoppingCart /> 66

34 Elementi di scripting Declaration <%! declaration [declaration]...%> Variabili o metodi usati nella pagina <%! int[] v= new int[10]; %> Le var valgono per la durata della servlet Expression <%= expression %> Una espressione nel linguaggio di scripting che viene valutata e sostituita con il risultato <p>la radice di 2 vale <%= Math.sqrt(2.0) %></p> Scriptlet <% codice %> Frammenti di codice che controllano la generazione della pagina, valutati alla richiesta <table> <% for (int i=0; i< v.length; i++) { %> <tr><td> <%= v[i] %></td></tr> <% } %> </table> Le variabili valgono per la singola esecuzione Ciò che viene scritto sullo stream di output sostituisce lo scriptlet 67 Elementi di scripting Linguaggio di script ha lo scopo di interagire con oggetti java gestire le eccezioni java Oggetti impliciti Sono gli elementi delle servlet (sono 9) request response out page pagecontext session application config exception 68

35 Oggetti e loro scope Gli oggetti possono essere creati implicitamente usando le direttive JSP esplicitamente con le azioni direttamente usando uno script (raro) Gli oggetti hanno un attributo che ne definisce lo scope 69 Sessioni Accede ad un oggetto HTTPSession Esempi 70

36 Javaserver Architecture 71 Esecuzione di JSP Il client richiede via HTTP un file.jsp Il file.jsp viene interpretato e accede a componenti lato-server (Java Beans, Servlet) che generano contenuti dinamici il risultato viene spedito al client sotto forma di pagine HTML Browser JSP Pages Beans Database Beans 72

37 JSP e Servlet la richiesta viene inviata ad un Java Servlet che genera i dati dinamici richiesti dall utente Il Servlet successivamente richiama un file.jsp, che si occupa di formattare in HTML i risultati e inviarli all utente Servlet JDBC Database Browser Beans JSP Pages 73 JSP e JDBC 74

38 Azioni Forward Delega la risposta <jsp:forward page="somepage.jsp" /> <jsp:forward page="<%= somepage %>" > <jsp:param name="name1" value="value1" /> <jsp:param name="name2" value="value2" /> </jsp:forward> Include Include la risposta <jsp:include page="shoppingcart.jsp" flush="true"/> 75 JavaBean Un bean è una classe che segue regole precise Deve avere costruttori senza parametri Dovrebbe avere campi (property) private I metodi di accesso ai campi (property) sono set/get setxxx e getxxx/isxxx (xxx = property) class Libro { private String titolo; private boolean disponibile; void settitolo(string t)...; String gettitolo()...; void setdisponivile(boolean b)...; boolean isdisponibile()...; 76

39 JSP e JavaBean Azioni per utilizzare un bean Accedere ad un bean (inizializzazione) <jsp:usebean id="user" class="com.jguru.person" scope="session" /> <jsp:usebean id="user" class="com.jguru.person" scope="session"> <% user.setdate(dateformat.getdateinstance( ).format(new Date())); //etc.. %> </jsp:usebean> Accedere alle proprietà <jsp:getproperty name="user" property="name" /> <jsp:setproperty name="user" property="name" value="jguru" /> <jsp:setproperty name="user" property="name" value="<%=expression %>" /> 77 Accesso ad un JavaBean <jsp:usebean id="attore" class="mythread" scope="session" type="thread"/> Lo scope determina la vita del bean page e lo scope di default: viene messo in pagecontext ed acceduto con getattrubute request: viene messo in ServletRequest ed acceduto con getattrubute session e application: se non esiste un bean con lo stesso id, ne viene creato uno nuovo Il type permette di assegnargli una superclasse Al posto della classe si puo usare il nome del bean beanname="nome" nome e la classe o un file serializzato 78

40 Architettura MVC1 79 Architettura MVC2 80

41 Counter.jsp 1) page import="counterbean" %> 2) <jsp:usebean id="session_counter" class="counterbean" scope="session" /> 3) <jsp:usebean id="app_counter" class="counterbean" scope="application" /> 4) <% session_counter.increasecount(); 5) synchronized(page) { app_counter.increasecount(); } 6) %> 7) <h3> 8) Number of accesses within this session: 9) <jsp:getproperty name="session_counter" property="count" /> 10) </h3> 11) <p> 12) <h3> 13) Total number of accesses: 14) <% synchronized(page) { %> 15) <jsp:getproperty name="app_counter" property="count" /> 16) <% } %> 17) </h3> 81 CounterBean.java public class CounterBean { //declare a integer for the counter int count; } public int getcount() { //return count return count; } public void increasecount() { //increment count; count++; } 82

Architetture Web: un ripasso

Architetture Web: un ripasso Architetture Web: un ripasso Pubblicazione dinamica di contenuti. Come si fa? CGI Java Servlet Server-side scripting e librerie di tag JSP Tag eseguiti lato server Revisione critica di HTTP HTTP non prevede

Dettagli

Sistemi Distribuiti. Prof. Flavio De Paoli. Java Servlet

Sistemi Distribuiti. Prof. Flavio De Paoli. Java Servlet Sistemi Distribuiti Prof. Flavio De Paoli 1 Java Servlet 2 Outline Il web come architettura di riferimento Architettura di una servlet Uso di una servlet Gestione di una sessione 3 Perché il web Basato

Dettagli

Tener traccia del client

Tener traccia del client Tener traccia del client Raramente un applicazione web è costituita da una singola pagina (risorsa). E utile quindi tener traccia dei client che si collegano per rendere più semplice lo sviluppo dell applicazione.

Dettagli

Informatica Distribuita PAS

Informatica Distribuita PAS Informatica Distribuita PAS Flavio De Paoli depaoli@disco.unimib.it ITIS Lab http://www.itis.disco.unimib.it Applicazioni Web ITIS Lab http://www.itis.disco.unimib.it Perché il web Basato su Internet Ambiente

Dettagli

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

Java Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet Java Server Pages (JSP) Introduzione alle JSP Linguaggio di scripting lato server HTML-embedded Una pagina JSP contiene sia HTML sia codice Il client effettua la richiesta per la pagina JSP La parte HTML

Dettagli

Gestire le sessioni con le Servlet

Gestire le sessioni con le Servlet PROGETTO Gestire le sessioni con le Servlet Con il termine sessione si intende un insieme di attività correlate, con una o alcune di queste che sono preliminari ad altre. Si pensi, per esempio, a un qualsiasi

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: Java Servlet Parte a versione 3.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca

Dettagli

Svantaggi delle servlet

Svantaggi delle servlet Svantaggi delle servlet Le servlet sono la tecnologia principale di J2EE per comunicare con i browser dei client. Tuttavia ci sono degli inconvenienti per gli sviluppatori di applicazioni web: le servlet

Dettagli

Introduzione alla programmazione Http lato server in Java

Introduzione alla programmazione Http lato server in Java Introduzione alla programmazione Http lato server in Java Tito Flagella Laboratorio Applicazioni Internet - Università di Pisa Slide API Java Titleper il Protocollo Http Programmazione Client java.net.url

Dettagli

Programmazione server-side: Java Servlet

Programmazione server-side: Java Servlet Programmazione server-side: Java Servlet Corso di Applicazioni Telematiche A.A. 2006-07 Lezione n.11 parte II Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Cos

Dettagli

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

I file WAR. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-1 I file WAR WAR è una contrazione di Web ARchive. I file WAR consentono di archiviare un intera applicazione web in un unico file. Tomcat fornisce (tramite il Tomcat Manager) un interfaccia grafica per

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 9 Architettura Model-View-Controller (MVC) Adottando l'architettura MVC e la tecnologia Servlet-JSP, un'applicazione web può essere realizzata

Dettagli

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

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet e Web Server. Richieste. Servlet. Servlet: e JDBC Programmazione in Rete e Laboratorio Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino e : estensioni del Java API permettono di scrivere

Dettagli

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

Tomcat & Servlet. Contenuti. Programmazione in Ambienti Distribuiti. Tomcat Applicazioni Web. Servlet JSP Uso delle sessioni Tomcat & Servlet Programmazione in Ambienti Distribuiti V 1.2 Marco Torchiano 2005 Contenuti Tomcat Applicazioni Web Struttura Sviluppo Deployment Servlet JSP Uso delle sessioni 1 Tomcat Tomcat è un contenitore

Dettagli

Servlet API. Programmazione in Ambienti Distribuiti A.A. 2003-04

Servlet API. Programmazione in Ambienti Distribuiti A.A. 2003-04 Servlet API Programmazione in Ambienti Distribuiti A.A. 2003-04 Servlet Interfaccia Java che modella il paradigma richiesta/elaborazione/risposta tipico delle applicazioni lato server Presuppone l esistenza

Dettagli

Laboratorio di Basi di Dati e Web

Laboratorio di Basi di Dati e Web Laboratorio di Basi di Dati e Web Docente: Alberto Belussi Lezione 8 Java Server Pages Java Server Pages è essenzialmente un modo più comodo per il programmatore dell applicazione web di scrivere una Servlet.

Dettagli

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

Siti web centrati sui dati (Data-centric web applications) Siti web centrati sui dati (Data-centric web applications) 1 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 2 0 1 2 / 2 0 1 3 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente

Dettagli

Server-side Programming: Java servlets Parte II

Server-side Programming: Java servlets Parte II Corso di Laurea Specialistica in Ingegneria Informatica Corso di Laurea Specialistica in Ingegneria delle Telecomunicazioni Corso di Reti di Applicazioni Telematiche a.a. 2009-2010 Server-side Programming:

Dettagli

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

Applicazioni web centrati sui dati (Data-centric web applications) Applicazioni web centrati sui dati (Data-centric web applications) 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente lo strumento di riferimento

Dettagli

Tipi fondamentali di documenti web

Tipi fondamentali di documenti web Tipi fondamentali di documenti web Statici. File associati al web server il cui contenuto non cambia. Tutte le richieste di accesso conducano alla visualizzazione della stessa informazione. Dinamici. Non

Dettagli

Note pratiche sullo sviluppo di servlet (I)

Note pratiche sullo sviluppo di servlet (I) Note pratiche sullo sviluppo di servlet (I) Nel caso in cui sulla macchina locale (PC in laboratorio/pc a casa/portatile) ci sia a disposizione un ambiente Java (con compilatore) e un editor/ambiente di

Dettagli

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

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB Http con java, URL Ing. Marco Mamei Anno Accademico 2004-2005 M. Mamei - Tecnologie

Dettagli

Flavio De Paoli depaoli@disco.unimib.it

Flavio De Paoli depaoli@disco.unimib.it Flavio De Paoli depaoli@disco.unimib.it 1 Il web come architettura di riferimento Architettura di una applicazione web Tecnologie lato server: Script (PHP, Pyton, Perl), Servlet/JSP, ASP Tecnologie lato

Dettagli

Laboratorio di reti II: Java Server Pages

Laboratorio di reti II: Java Server Pages Laboratorio di reti II: Java Server Pages Stefano Brocchi brocchi@dsi.unifi.it 6 aprile, 2009 Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, 2009 1 / 34 JSP - Java Server Pages Le

Dettagli

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 2 0 1 2 / 2 0 1 3

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 2 0 1 2 / 2 0 1 3 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 2 0 1 2 / 2 0 1 3 Verso l architettura MVC-2 2 Il secondo passo verso l architettura MVC-2 è quello di separare il controllo dell

Dettagli

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

Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008 Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008 Avvertenze: e severamente vietato consultare libri e appunti; chiunque verrà trovato in possesso di

Dettagli

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER L architettura CLIENT SERVER è l architettura standard dei sistemi di rete, dove i computer detti SERVER forniscono servizi, e computer detti CLIENT, richiedono

Dettagli

SERVLET & JSP DISPENSE

SERVLET & JSP DISPENSE SERVLET & JSP DISPENSE PROGRAMMAZIONE LATO SERVER Un server deve rispondere alle richieste del client e permettere di visualizzare le pagine Web. Questo compito è svolto da un software ben definito, il

Dettagli

Architetture Web I Server Web e gli Standard della Comunicazione

Architetture Web I Server Web e gli Standard della Comunicazione Architetture Web I Server Web e gli Standard della Comunicazione Alessandro Martinelli alessandro.martinelli@unipv.it 27 Marzo 2012 Architetture Architetture Web Protocolli di Comunicazione Il Client Side

Dettagli

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

Applicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi Applicazioni web Parte 6 Java Alberto Ferrari 1 Sommario Introduzione alle API ed esempi Tomcat Server per applicazioni web Alberto Ferrari 2 Alberto Ferrari 1 Java: da applet a servlet In origine Java

Dettagli

Il Protocollo HTTP e la programmazione di estensioni Web

Il Protocollo HTTP e la programmazione di estensioni Web Il Protocollo HTTP e la programmazione di estensioni Web 1 Il protocollo HTTP È il protocollo standard inizialmente ramite il quale i server Web rispondono alle richieste dei client (prevalentemente browser);

Dettagli

Architetture Web parte 2

Architetture Web parte 2 Architetture Web parte 2 Programmazione in Ambienti Distribuiti A.A. 2004-05 Sessione Un insieme di richieste, provenienti dallo stesso browser e dirette allo stesso server, confinate in un dato lasso

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Programmazione Web: Architetture versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca mecca@unibas.it

Dettagli

MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.c Cookies e sessioni. Goy - a.a. 2012/2013 Programmazione Web 1

MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.c Cookies e sessioni. Goy - a.a. 2012/2013 Programmazione Web 1 MODULO 1 PARTE 3 Programmazione (scripting) server-side con PHP 3.c Cookies e sessioni Goy - a.a. 2012/2013 Programmazione Web 1 Cookie - I Cookie = variabili che il server salva (*) sul client come file

Dettagli

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

Siti web centrati sui dati Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Architettura MVC-2: i JavaBeans

Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

19. LA PROGRAMMAZIONE LATO SERVER

19. LA PROGRAMMAZIONE LATO SERVER 19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici

Dettagli

PHP e Structured Query Language

PHP e Structured Query Language Esercitazioni del corso di Tecnologie per la Comunicazione Aziendale PHP e Structured Query Language Marco Loregian loregian@disco.unimib.it www.siti.disco.unimib.it/didattica/tca2008 Interrogazioni (ripasso)

Dettagli

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

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Salerno Formazione, società operante nel settore della didattica, della formazione professionale e certificata

Dettagli

Introduzione al linguaggio Java: Servlet e JSP

Introduzione al linguaggio Java: Servlet e JSP Introduzione al linguaggio Java: Servlet e JSP Corso di Gestione della Conoscenza d Impresa A. A. 2006/2007 Dipartimento di Informatica Università degli Studi di Bari 1 Servlet e JSP: il contesto Un applicazione

Dettagli

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo Come funziona il WWW Il funzionamento del World Wide Web non differisce molto da quello delle altre applicazioni Internet Anche in questo caso il sistema si basa su una interazione tra un computer client

Dettagli

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

Java Server Pages. Corso di Applicazioni Telematiche. A.A. 2006-07 Lezione n.18 Prof. Roberto Canonico Java Server Pages Corso di Applicazioni Telematiche A.A. 2006-07 Lezione n.18 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Java Server Pages (JSP) Java Server

Dettagli

APPENDICE A Servlet e Java Server Page

APPENDICE A Servlet e Java Server Page APPENDICE A Servlet e Java Server Page A.1 Cosa è una Servlet e come funziona Una servlet è un particolare tipo di applicazione Java, in grado di essere eseguita all'interno di un web server e di estenderne

Dettagli

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

Database & WWW. Basi di dati Architetture e linee di evoluzione P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone Database & WWW Capitolo 4 Basi di dati Architetture e linee di evoluzione P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone 1 Sommario Protocollo HTTP CGI Java Servlet Server-side scripting

Dettagli

Applicazioni web. Parte 2 JSP. Michele Tomaiuolo tomamic@ce.unipr.it

Applicazioni web. Parte 2 JSP. Michele Tomaiuolo tomamic@ce.unipr.it Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Applicazioni web Parte 2 JSP Michele Tomaiuolo tomamic@ce.unipr.it Sommario JSP: sintassi di

Dettagli

Dott.ssa Maria Vittoria Avolio. Dott.ssa Adriana Pietramala

Dott.ssa Maria Vittoria Avolio. Dott.ssa Adriana Pietramala Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Maria Vittoria Avolio avoliomv@unical.it Dott.ssa Adriana Pietramala a.pietramala@unical.it Riferimenti Manuale PHP http://www.php.net/download-docs.php

Dettagli

Sessioni Applicative in Http. Tito Flagella tito@link.it

Sessioni Applicative in Http. Tito Flagella tito@link.it Sessioni Applicative in Http Tito Flagella tito@link.it Perché le sessioni Solitamente le transazioni http sono anonime e indipendenti Le applicazioni hanno bisogno di correlarle tra di loro User1: http://bank.com/prelievo?amount=10000$

Dettagli

3 ServletContext. Marco Tessarotto Programmazione dei Web Server Anno Accademico 2004-2005

3 ServletContext. Marco Tessarotto Programmazione dei Web Server Anno Accademico 2004-2005 3 ServletContext Marco Tessarotto Programmazione dei Web Server Anno Accademico 2004-2005 ServletContext I interfaccia ServletContext fornisce alla web application (ed i suoi servlet) una serie di funzionalità

Dettagli

Tomcat struttura delle directory

Tomcat struttura delle directory Tomcat struttura delle directory $CATALINA_HOME (oppure $TOMCAT_HOME): rappresenta la directory radice dell installazione di Tomcat e contiene le seguenti directory: bin common (lib nelle versioni più

Dettagli

Tito Flagella - Introduzione alla programmazione di Servlet

Tito Flagella - Introduzione alla programmazione di Servlet Introduzione alla programmazione di Servlet Caratteristiche di base Estensioni del server scritte in Java utilizzando la Servlet API La Servlet API è diventata un estensione standard di Java, dalla versione

Dettagli

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete La prima applicazione Java Programma MyFirstApplication Il programma visualizza una finestra vuota sullo schermo. Importo il package delle classi usate nel seguito. Dichiaro la classe MyFirstApplication

Dettagli

JavaServer Pages: Introduzione

JavaServer Pages: Introduzione JavaServer Pages: Introduzione Gianluca Moro gianluca.moro@unibo.it Dipartimento di Elettronica, Informatica e Sistemistica Università di Bologna Sistemi reali in JSP!! ofoto.com: stampa e gestisce foto

Dettagli

Antonio d Acierno 13/01/2006

Antonio d Acierno 13/01/2006 Introduzione alle Servlet Corso di Sistemi Web e Basi Dati Prof. Antonio d Acierno Servlet Alternativa Java ai CGI-BIN Classi java che estendono le funzionalità di un server Web generando dinamicamente

Dettagli

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

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page» Scaletta Estensioni UML per il Web Michele Zennaro 14-05-2004 Le applicazioni web Scopo di un estensione UML per il web Due punti di vista Uno più astratto Uno più vicino ai file fisici conclusivo Commenti

Dettagli

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment Obiettivi d esame PHP Developer Fundamentals on MySQL Environment 1.0 Ambiente di sviluppo 1.1 Web server e database MySQL Comprendere la definizione dei processi che si occupano di fornire i servizi web

Dettagli

Servlet e JDBC. Programmazione in Rete e Laboratorio

Servlet e JDBC. Programmazione in Rete e Laboratorio Servlet e JDBC Programmazione in Rete e Laboratorio Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino baldoni@di.unito.it http://www.di.unito.it/~baldoni/didattica

Dettagli

Realizzazione di una classe con un associazione

Realizzazione di una classe con un associazione Realizzazione di una classe con un associazione Nel realizzare una classe che è coinvolta in un associazione, ci dobbiamo chiedere se la classe ha responsabilità sull associazione. Diciamo che una classe

Dettagli

Lezione 6: Form 27/04/2012

Lezione 6: Form 27/04/2012 Lezione 6: Form In alcuni documenti HTML può essere utile creare dei moduli (form) che possono essere riempiti da chi consulta le pagine stesse (es. per registrarsi ad un sito). Le informazioni sono poi

Dettagli

Laboratorio di sistemi Prima Web Application JSP [Java]

Laboratorio di sistemi Prima Web Application JSP [Java] Vogliamo scrivere la nostra prima web application che legga da tastiera il nostro nome e fornisca un messaggio di saluto. Per costruire la nostra applicazione creiamo con NetBeans un nuovo progetto. File

Dettagli

Università degli studi dell Aquila. Sistemi di elaborazione delle informazioni

Università degli studi dell Aquila. Sistemi di elaborazione delle informazioni Università degli studi dell Aquila Corsi di studio: I2E, I2I Sistemi di elaborazione delle informazioni 9 C.F.U. Prof. Eliseo Clementini Ing. Gaetanino Paolone Tecnologie per lo sviluppo di Sistemi sul

Dettagli

Laboratorio di reti II: Servlet

Laboratorio di reti II: Servlet Laboratorio di reti II: Servlet Stefano Brocchi brocchi@dsi.unifi.it 16 marzo, 2009 Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 1 / 34 Le servlet Una servlet è una classe Java eseguita

Dettagli

Web & basi di dati. Basi di dati & Web. Problema. Pregi e difetti di basi di dati e Web. Architettura generale a livelli. Una gerarchia di soluzioni

Web & basi di dati. Basi di dati & Web. Problema. Pregi e difetti di basi di dati e Web. Architettura generale a livelli. Una gerarchia di soluzioni Basi di dati & Web Web & basi di dati Obiettivi: : ottenere la generazione dinamica di pagine a partire da dati contenuti in una base di dati sfruttare i pregi di Web e basi di dati, aggirandone i difetti

Dettagli

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: Javadoc Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: /* commenti */ // commenti /** commenti documentazione */ Questi ultimi generano automaticamente

Dettagli

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

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet: Servlet e JDBC Programmazione in Rete e Laboratorio Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino baldoni@di.unito.it http://www.di.unito.it/~baldoni/didattica

Dettagli

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine. ESERCIZIARIO Risposte ai quesiti: 2.1 Non sono necessarie modifiche. Il nuovo protocollo utilizzerà i servizi forniti da uno dei protocolli di livello trasporto. 2.2 Il server deve essere sempre in esecuzione

Dettagli

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

Lezione di Basi di Dati 1 18/11/2008 - TECNOLOGIE PER IL WEB: CGI - AJAX SERVLETS & JSP EVOLUZIONE DEL WEB: PAGINE STATICHE vs PAGINE DINAMICHE Il Web è nato a supporto dei fisici, perché potessero scambiare tra loro le informazioni inerenti le loro sperimentazioni. L HTTP è nato inizialmente

Dettagli

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

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida Breve introduzione curata da Alessandro Benedetti Struts2-Introduzione e breve guida 22-11- 2008 1 Struts 2 Costruisci,attiva e mantieni! Apache Struts 2 è un framework elegante ed estensibile per creare

Dettagli

Implementazione di MVC. Gabriele Pellegrinetti

Implementazione di MVC. Gabriele Pellegrinetti Implementazione di MVC Gabriele Pellegrinetti 2 Come implementare il pattern Model View Controller con le tecnologie JSP, ASP e XML Implementazione del pattern MVC in Java (JSP Model 2) SUN è stato il

Dettagli

Esercizi di JavaScript

Esercizi di JavaScript Esercizi di JavaScript JavaScript JavaScript é un linguaggio di programmazione interpretato e leggero, creato dalla Netscape. E' presente a patire da Netscape 2 in tutti i browser ed é dunque il linguaggio

Dettagli

Servizi web in LabVIEW

Servizi web in LabVIEW Servizi web in LabVIEW Soluzioni possibili, come si utilizzano. 1 Soluzioni possibili WEB SERVER Dalla versione 5.1 di LabVIEW è possibile implementare un Web server che consente di operare da remoto sul

Dettagli

Web Programming. Lezione 4: Cookie e Sessioni. Giulio Rossetti 14/04/2011. Guru@Work

Web Programming. Lezione 4: Cookie e Sessioni. Giulio Rossetti 14/04/2011. Guru@Work Web Programming Lezione 4: Cookie e Sessioni Giulio Rossetti Guru@Work 14/04/2011 Contatti Materiale Tutto il materiale del corso sarà reso disponibile sul sito: www.guruatwork.com (e su blog.giuliorossetti.net)

Dettagli

appunti delle lezioni Architetture client/server: applicazioni client

appunti delle lezioni Architetture client/server: applicazioni client Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un esempio particolarmente

Dettagli

Tecnologie Web L-A. Java e HTTP. Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi. Java e TCP/IP in a Nutshell

Tecnologie Web L-A. Java e HTTP. Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi. Java e TCP/IP in a Nutshell Tecnologie Web L-A Java e HTTP Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi Java e TCP/IP in a Nutshell! java.net.inetaddress: rappresenta un indirizzo IP e

Dettagli

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

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client Versione 25.4.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un

Dettagli

Form Editor. Dove NomeProfilo è personalizzabile.

Form Editor. Dove NomeProfilo è personalizzabile. Form Editor Il tema permette di generare automaticamente dei moduli per la raccolta di dati in tre semplici step: 1. Si crea una tabella nel database per la raccolta dei dati. Per la creazione si parte

Dettagli

Protocolli e architetture per WIS

Protocolli e architetture per WIS Protocolli e architetture per WIS Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di informazioni e servizi Le architetture moderne dei WIS

Dettagli

Socket & RMI Ingegneria del Software - San Pietro

Socket & RMI Ingegneria del Software - San Pietro Socket & RMI Ingegneria del Software - San Pietro Socket È possibile trattare la comunicazione di rete allo stesso modo con cui è possibile trattare la lettura da file. La classe Socket rappresenta la

Dettagli

Corso di PHP. Prerequisiti. 6.1 PHP e il web 1. Conoscenza HTML Tecnica della programmazione Principi di programmazione web

Corso di PHP. Prerequisiti. 6.1 PHP e il web 1. Conoscenza HTML Tecnica della programmazione Principi di programmazione web Corso di PHP 6.1 PHP e il web 1 1 Prerequisiti Conoscenza HTML Tecnica della programmazione Principi di programmazione web 2 1 Introduzione In questa Unità illustriamo alcuni strumenti di programmazione

Dettagli

CORSO DI PROGRAMMAZIONE JAVA

CORSO DI PROGRAMMAZIONE JAVA CORSO DI PROGRAMMAZIONE JAVA Corso di Programmazione Java Standard Edition ( MODULO A) OBIETTIVI ll corso ha come obiettivo quello di introdurre la programmazione a oggetti (OOP) e di fornire solide basi

Dettagli

Internet Architettura del www

Internet Architettura del www Internet Architettura del www Internet è una rete di computer. Il World Wide Web è l insieme di servizi che si basa sull architettura di internet. In una rete, ogni nodo (detto host) è connesso a tutti

Dettagli

SWIM v2 Design Document

SWIM v2 Design Document PROGETTO DI INGEGNERIA DEL SOFTWARE 2 SWIM v2 DD Design Document Matteo Danelli Daniel Cantoni 22 Dicembre 2012 1 Indice Progettazione concettuale Modello ER Entità e relazioni nel dettaglio User Feedback

Dettagli

Informatica. Prof. M. Colajanni Università di Modena Reggio Emilia

Informatica. Prof. M. Colajanni Università di Modena Reggio Emilia Informatica Prof. M. Colajanni Università di Modena Reggio Emilia PARTE 4 - World Wide Web WORLD WIDE WEB La killer application di Internet I motivi alla base del successo del Web ( perché è risultata

Dettagli

Programmazione dei socket con TCP #2

Programmazione dei socket con TCP #2 I Il Server e il Client si scambiano messaggi attraverso la rete mediante un dell API (Application Programming Interface) Telematica II 10. Esercitazione/Laboratorio 3 Server ports Clients user space Socket

Dettagli

Do-Dots Protocollo di comunicazione

Do-Dots Protocollo di comunicazione Do-Dots Protocollo di comunicazione Ultimo aggiornamento 10 maggio 2011 rev3 Spiegazioni 10/05/2011 rev2 Primo aggiornamento con attuali comandi 03/05/2011 rev1 - Stesura iniziale 14/05/2010 DOCUMENTO

Dettagli

SESSION TRACKING DISPENSE

SESSION TRACKING DISPENSE SESSION TRACKING DISPENSE SESSION TRACKING Sessione: In modo generico potremmo dire che una sessione consiste in tutto il tempo in cui un utente, scambiando informazioni con il server, può dire di aver

Dettagli

Programmazione a Oggetti Lezione 10. Ereditarieta

Programmazione a Oggetti Lezione 10. Ereditarieta Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare

Dettagli

Corso di Informatica Modulo T3 B2 - Database in rete

Corso di Informatica Modulo T3 B2 - Database in rete Corso di Informatica Modulo T3 B2 - Database in rete 1 Prerequisiti Programmazione web Applicazione web Modello OSI Architettura client/server Conoscenze generali sui database Tecnologia ADO in Visual

Dettagli

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

Dettagli

Corso basi di dati Introduzione alle ASP

Corso basi di dati Introduzione alle ASP Corso basi di dati Introduzione alle ASP Gianluca Di Tomassi Email: ditomass@dia.uniroma3.it Università di Roma Tre Web statico e Web interattivo In principio il Web era una semplice collezione di pagine

Dettagli

Progetto di Gestione Documenti in Ambiente Web

Progetto di Gestione Documenti in Ambiente Web Progetto di Gestione Documenti in Ambiente Web Sessione Febbraio 2013 Marco Taddei 726523 Federico Valentini 726584 Il progetto SharesShop simula un portale web di una banca che mette a disposizione dei

Dettagli

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l. Progetto SITI Manuale Utente SITI-Reports ABACO S.r.l. ABACO S.r.l. C.so Umberto, 43 46100 Mantova (Italy) Tel +39 376 222181 Fax +39 376 222182 www.abacogroup.eu e-mail : info@abacogroup.eu 02/03/2010

Dettagli

Bibliografia: Utenti e sessioni

Bibliografia: Utenti e sessioni Bibliografia: Utenti e sessioni http: protocollo stateless http si appoggia su una connessione tcp e lo scambio nel contesto di una connessione si limita a invio della richiesta, ricezione della risposta.

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: Struttura dell Applicazione versione 2.4 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

La pagina Web modulo.html utilizza le specifiche di stile descritte nel foglio feedback.css.

La pagina Web modulo.html utilizza le specifiche di stile descritte nel foglio feedback.css. Moduli di feedback Uno degli strumenti per l interattività con gli utenti è la pagina per raccogliere suggerimenti o commenti dai visitatori, formata da moduli sul video da riempire con il nome del mittente,

Dettagli

Java: la libreria delle classi

Java: la libreria delle classi Java: la libreria delle classi Applet anatomia di un applet cenni di html La libreria JDBC per l accesso ai database il package java.sql 213 Applet Un applet è una applicazione Java che ha una forma particolare

Dettagli

Siti interattivi e dinamici. in poche pagine

Siti interattivi e dinamici. in poche pagine Siti interattivi e dinamici in poche pagine 1 Siti Web interattivi Pagine Web codificate esclusivamente per mezzo dell HTML non permettono alcun tipo di interazione con l utente, se non quella rappresentata

Dettagli

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

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer Tecnologie per il Web Il web: architettura e tecnologie principali Una analisi delle principali tecnologie per il web Tecnologie di base http, ssl, browser, server, firewall e proxy Tecnologie lato client

Dettagli

20 - Input/Output su File

20 - Input/Output su File 20 - Input/Output su File Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

1 http://desvino.altervista.org JSPDynPage, componenti portale e Java Server Pages

1 http://desvino.altervista.org JSPDynPage, componenti portale e Java Server Pages 1 http://desvino.altervista.org JSPDynPage, componenti portale e Java Server Pages Le JSP DynPages sono un utile strumento, fornito da SAP Netweaver, per una gestione più evoluta di event handling e session

Dettagli