Università di Bergamo Facoltà di Ingegneria. Applicazioni Internet B. Paolo Salvaneschi B6_3 V1.10. JSP parte C
|
|
- Gianluigi Gianni
- 7 anni fa
- Visualizzazioni
Transcript
1 Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi B6_3 V1.10 JSP parte C 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 B6 JSP Paolo Salvaneschi 1
2 INDICE Utilizzo di JSTL Installazione di JSTL Azioni JSP di JSTL e linguaggio EL Gestione dell input con JSTL Passaggio del controllo tra pagine Model View Controller Passaggio dei dati tra pagine-scope B6 JSP Paolo Salvaneschi 2 B6 JSP Paolo Salvaneschi 2
3 Utilizzo di JSTL Elementi di azione Motivazione:permettere l utilizzo di tag speciali che realizzano funzioni utili per rendere dinamiche le pagine Raggruppati in tag libraries Standard Personalizzate JSTL B6 JSP Paolo Salvaneschi 3 B6 JSP Paolo Salvaneschi 3
4 Utilizzo di JSTL Elementi di azione standard <jsp: Elementi di azione personalizzata Specifica e ambiente di sviluppo per realizzare nuove azioni personalizzate (nuove tag library) JSTL (Java Standard Tag Library) Librerie predefinite di azioni <c: Core <x: <fmt: <sql: Elaborazione XML Formattazione e internazionalizzazione Accesso a database B6 JSP Paolo Salvaneschi 4 B6 JSP Paolo Salvaneschi 4
5 Utilizzo di JSTL Index.htm Esempio Risposta.jsp B6 JSP Paolo Salvaneschi 5 B6 JSP Paolo Salvaneschi 5
6 page contenttype="text/html" %> taglib prefix="c" uri=" %> <html> <head><title>prova</title></head> <body bgcolor="white"> <H1>Pagina di prova</h1> <c:choose> <c:when test="${param.nome == 'Mario'}"> <HR> <H2>Benvenuto <c:out value="${param.nome}" /></H2> </HR> </c:when> <c:otherwise> <HR> <H2>Utente non riconosciuto</h2> </HR> </c:otherwise> </c:choose> B6 JSP Paolo Salvaneschi 6 B6 JSP Paolo Salvaneschi 6 </body></html> Utilizzo di JSTL Utilizzo di un tag Risposta.jsp Dichiarazione di una tag library linguaggio EL
7 Utilizzo di JSTL Installazione taglib jstl Scaricare il distribution jakarta-taglibs-standard zip da Copiare i file dalla cartella lib alla cartella lib di Web-inf dell applicazione Copiare i file dalla cartella tld alla cartella Web-inf dell applicazione B6 JSP Paolo Salvaneschi 7 B6 JSP Paolo Salvaneschi 7
8 Utilizzo di JSTL Files JAR Contengono le classi java che implementano le azioni Files TLD Contengono le definizioni dei tag della libreria, i nomi delle classi, Es. c.tld espressioni con scripting c-rt.tld espressioni con linguaggio EL B6 JSP Paolo Salvaneschi 8 B6 JSP Paolo Salvaneschi 8
9 Utilizzo di JSTL B6 JSP Paolo Salvaneschi 9 B6 JSP Paolo Salvaneschi 9
10 Utilizzo di JSTL Dichiarazione di una tag library prefix= prefisso uri= tagliburi %> Dichiara una tag library utilizzata nella pagina che contiene azioni personalizzate (o JSTL) prefix uri prefisso da utilizzare nei nomi degli elementi di azione stringa utilizzata per localizzare l implementazione della tag library (es. nome simbolico definito nel file TLD della library) B6 JSP Paolo Salvaneschi 10 B6 JSP Paolo Salvaneschi 10
11 Utilizzo di JSTL Utilizzo di una tag library - sintassi <prefix:action_name attr1= value1 attr2= value2 > action_body </prefix:action_name> Esempio <jsp:forward page= userinfovalid.jsp > <jsp:param name= msg value= invalid address /> </jsp:forward> Forma abbreviata <prefix:action_name attr1= value1 attr2= value2 /> B6 JSP Paolo Salvaneschi 11 B6 JSP Paolo Salvaneschi 11
12 Utilizzo di JSTL La libreria JSTL core <c:if> <c:choose> <c:when> <c:otherwise> <c:foreach> <c:fortokens> <c:out> <c:import> <c:redirect> <c:url> <c:param> <c:remove> <c:set> <c:catch> B6 JSP Paolo Salvaneschi 12 B6 JSP Paolo Salvaneschi 12
13 Utilizzo di JSTL <c:if test= espressione booleana > Elementi JSP </c:if> <c:choose> azioni <c:when> ed eventualmente un azione <c:otherwise> </c:choose> Elabora la prima azione <c:when> che ha espressione di test con valore true; se nessuna elabora <c:otherwise> B6 JSP Paolo Salvaneschi 13 B6 JSP Paolo Salvaneschi 13
14 Utilizzo di JSTL <c:when test= espressione booleana > Elementi JSP </c:when> <c:otherwise> Elementi JSP </c:otherwise> B6 JSP Paolo Salvaneschi 14 B6 JSP Paolo Salvaneschi 14
15 Utilizzo di JSTL param Variabile EL implicita <c:choose> <c:when test="${param.nome == 'Mario'}"> <HR> <H2>Benvenuto <c:out value="${param.nome}" /></H2> </HR> </c:when> <c:otherwise> <HR> <H2>Utente non riconosciuto</h2> </HR> </c:otherwise> </c:choose> B6 JSP Paolo Salvaneschi 15 B6 JSP Paolo Salvaneschi 15
16 Utilizzo di JSTL Numero prefissato di iterazioni <c:foreach [var= var ] [varstatus= varstatus ] begin= startindex end= stopindex [step= increment ]> Elementi JSP </c:foreach> Valuta il corpo un numero di volte prefissato indice corrente Variabile che contiene un oggetto LoopTagStatus che definisce lo stato dell iterazione B6 JSP Paolo Salvaneschi 16 B6 JSP Paolo Salvaneschi 16
17 Utilizzo di JSTL Iterazione sugli elementi di una collezione <c:foreach items= collection [var= var ] [varstatus= varstatus ] [begin= startindex ] [end= stopindex ] [step= increment ]> Elementi JSP </c:foreach> Valuta il corpo una volta per ciascun elemento di una collezione collezione elemento corrente della collezione Indice iniziale con base 0 Default: 0 Indice finale con base 0 (incluso nell iterazione). Default: ultimo elemento B6 JSP Paolo Salvaneschi 17 B6 JSP Paolo Salvaneschi 17
18 Utilizzo di JSTL <%-- cinque iterazioni che scrivono 1,2,3,4,5 --%> <c:foreach var= current begin= 1 end= 5 > <c:out value= ${current} /> </c:foreach> <%-- iterazione su tutti i parametri di una richiesta --%> <c:foreach items= ${param} var= current > Name:<c:out value= ${current.key} /> Value:<c:out value= ${current.value} /> </c:foreach> Nome e valore del singolo elemento (java.util.map) B6 JSP Paolo Salvaneschi 18 B6 JSP Paolo Salvaneschi 18
19 Utilizzo di JSTL <c:fortokens items= stringoftokens delims= delimiters [var= var ] [varstatus= varstatus ] [begin= startindex ] [end= stopindex ] [step= increment ]> Elementi JSP </c:fortokens > I token su cui effettuare l iterazione Elenco dei delimitatori elemento corrente Valuta il corpo una volta per ciascun token presente in una String, delimitato da un carattere specificato B6 JSP Paolo Salvaneschi 19 B6 JSP Paolo Salvaneschi 19
20 Utilizzo di JSTL <%-- iterazione su token separati da barre verticali --%> <c:fortokens items= ${tokens} delims= var= current > <c:out value= ${current} /> </c:fortokens> B6 JSP Paolo Salvaneschi 20 B6 JSP Paolo Salvaneschi 20
21 Utilizzo di JSTL page contenttype="text/html" %> taglib prefix="c" uri=" %> <html><head><title></title></head> <c:set var="elemento" value="primo secondo terzo quarto"/> <h3>elemento</h3> <c:out value="${elemento}"/> <h3>tokens</h3> <c:fortokens items="${elemento}" delims=" " var="current"> <c:out value="${current}"/> <br> </c:fortokens> </body> </html> B6 JSP Paolo Salvaneschi 21 B6 JSP Paolo Salvaneschi 21
22 Utilizzo di JSTL <c:out value= espressione [default= espressionedidefault ]/> Valuta un espressione e inserisce il risultato nella risposta convertito in String ( o un valore di default se l espressione vale null) B6 JSP Paolo Salvaneschi 22 B6 JSP Paolo Salvaneschi 22
23 Utilizzo di JSTL <c:import> Importa una risorsa interna (all applicazione web) (come <jsp:include>) o esterna. (può essere salvato il contenuto come String o reso disponibile tramite java.io.reader --- vedi JSTL library X:) <c:redirect> Invia al client una URL che indica di effettuare una nuova richiesta <c:url> Applica regole di conversione ad una URL (es. da percorso relativo al contesto (tomcat) a percorso relativo al server) <c:param> Utilizzata nidificata con le precedenti per inserire un parametro della richiesta in un URL B6 JSP Paolo Salvaneschi 23 B6 JSP Paolo Salvaneschi 23
24 Utilizzo di JSTL <c:set> imposta una variabile di scope <c:set var= " name " value= " myname " scope= " session " /> <c:remove> Cfr. Passaggio dati tra pagine rimuove una variabile di scope <c:remove var= " authenticationtoken " scope= " session " /> <c:catch> intercetta un eccezione lanciata da elementi JSP B6 JSP Paolo Salvaneschi 24 B6 JSP Paolo Salvaneschi 24
25 Utilizzo di JSTL IL linguaggio EL Linguaggio per scrivere le espressioni che impostano dinamicamente gli attributi delle azioni <c:out value="${param.nome} "/> EL fa parte delle specifiche JSTL Non delle azioni standard Linguaggio EL Espressione java <jsp:setproperty name="msg" property="category" value= "<%= request.getparameter('item') %>" /> B6 JSP Paolo Salvaneschi 25 B6 JSP Paolo Salvaneschi 25
26 Utilizzo di JSTL Sintassi <c:out value="${param.nome}"/> Inizio con delimitatore ${ Fine con } Si possono combinare espressioni EL e testo statico <c:out value="risultato:${1+2+3}"/> B6 JSP Paolo Salvaneschi 26 B6 JSP Paolo Salvaneschi 26
27 Utilizzo di JSTL Sintassi Operatori: + - * / <,>,&&,,!,empty (var con valore nullo o vuoto ).. Variabili specifiche dell applicazione Variabili implicite previste da EL B6 JSP Paolo Salvaneschi 27 B6 JSP Paolo Salvaneschi 27
28 Utilizzo di JSTL Variabili implicite previste da EL param collezione di tutti i valori dei parametri della richiesta, un valore String per parametro (java.util.map) paramvalues idem, array di String per ogni parametro (java.util.map) (es. di uso con checkbox) B6 JSP Paolo Salvaneschi 28 B6 JSP Paolo Salvaneschi 28
29 Utilizzo di JSTL Variabili implicite previste da EL pagescope, requestscope, sessionscope, applicationscope collezione di tutte le variabili con scope a livello di pagina, richiesta, sessione, applicazione pagecontext Fornisce l accesso a vari dati relativi alla richiesta (es.pagecontext.request.method).. B6 JSP Paolo Salvaneschi 29 B6 JSP Paolo Salvaneschi 29
30 Gestione dell input con JSTL index.jsp response.jsp Esempio 1 B6 JSP Paolo Salvaneschi 30 B6 JSP Paolo Salvaneschi 30
31 Gestione dell input con JSTL <html><head><title>user Info Entry Form</title></head> <body bgcolor="white"> <form action="response.jsp" method="post"> <table> <tr><td>nome:</td><td><input type="text" name="nome"></td></tr> <tr><td>cognome:</td><td><input type="text" name="cognome"></td></tr> <tr> <td>vini preferiti:</td> <td> <input type="checkbox" name="vino" value="ferrari">ferrari<br> <input type="checkbox" name="vino" value="berlucchi">berlucchi<br> <input type="checkbox" name="vino" value="prosecco">prosecco<br></td> </tr> <tr><td><input type="submit" value="invia"></td></tr> </table> </form> </body></html> B6 JSP Paolo Salvaneschi 31 B6 JSP Paolo Salvaneschi 31
32 page contenttype="text/html" %> taglib prefix="c" uri=" %> <html><head><title>user Info Response</title></head> <body bgcolor="white"> <h2>dati ricevuti</h2> <table border="1"> <tr><td>nome:</td> <td><c:out value="${param.nome}" /></td> </tr> <tr><td>cognome:</td> <td><c:out value="${param.cognome}" /></td> </tr><td>vini preferiti:</td> <td> <c:foreach items="${paramvalues.vino}" var="current"> <c:out value="${current}" /> <br> </c:foreach> </td> Per tutti gli elementi dell array di </table> </body></html> Gestione dell input con JSTL String (da 0 a ultimo) B6 JSP Paolo Salvaneschi 32 B6 JSP Paolo Salvaneschi 32
33 Gestione dell input con JSTL Esempio 2 B6 JSP Paolo Salvaneschi 33 B6 JSP Paolo Salvaneschi 33
34 Gestione dell input con JSTL page contenttype="text/html" %> taglib prefix="c" uri=" %> <html><head><title>request Info</title></head> <body bgcolor="white"> <h2>sono state ricevute le seguenti informazioni:</h2> <ul> <li>request Method: <c:out value="${pagecontext.request.method}" /> <li>request Protocol: <c:out value="${pagecontext.request.protocol}" /> <li>request URL: <c:out value="${pagecontext.request.requesturl}" /> <li>server Port: <c:out value="${pagecontext.request.serverport}" /> <li>remote Address: <c:out value="${pagecontext.request.remoteaddr}" /> </ul> </body></html> B6 JSP Paolo Salvaneschi 34 B6 JSP Paolo Salvaneschi 34
35 Gestione dell input con JSTL Validazione dell input B6 JSP Paolo Salvaneschi 35 B6 JSP Paolo Salvaneschi 35
36 page contenttype="text/html" %> taglib prefix="c" uri=" %> <html><head><title>user Info Entry Form</title></head> <body bgcolor="white"> <form action="index.jsp" method="post"> <input type="hidden" name="forminviata" value="true"> <table> <c:if test="${param.forminviata && empty param.nome}"> <tr><td></td> <td colspan="2"><font color="red"> Scrivere il nome </font></td></tr> Verifica se il valore della </c:if> variabile è not null AND <tr> stringa vuota (" ") <td>nome:</td> <td> <input type="text" name="nome value="<c:out value="${param.nome}" />"> </td> </tr> Gestione dell input con JSTL Validazione dell input Al primo caricamento della pagina non è true (null) B6 JSP Paolo Salvaneschi 36 B6 JSP Paolo Salvaneschi 36
37 Gestione dell input con JSTL <c:if test="${param.forminviata && empty param.cognome}"> <tr><td></td> <td colspan="2"><font color="red"> Scrivere il cognome </font></td></tr> </c:if> <tr> <td>cognome:</td> <td><input type="text" name="cognome" value="<c:out value="${param.cognome}" />"> </td></tr> <tr> <td colspan="3"> <input type="submit" value="send Data"> </td> </tr> </table> </form></body></html> Validazione dell input Nota: quando tutti i parametri sono validati si può passare il controllo ad un altra pagina affinchè elabori i parametri B6 JSP Paolo Salvaneschi 37 B6 JSP Paolo Salvaneschi 37
38 Passaggio del controllo tra pagine <jsp:forward page= nextpage.jsp /> Trasferisce il controllo dell elaborazione della richiesta http ad un altra pagina. Il controllo non torna alla pagina di origine. <jsp:forward page= nextpage.jsp > <jsp:param> <jsp:param>. </jsp:forward > Trasferisce il controllo dell elaborazione della richiesta http ad un altra pagina passando parametri supplementari che si aggiungono ai parametri della richiesta http B6 JSP Paolo Salvaneschi 38 B6 JSP Paolo Salvaneschi 38
39 Passaggio del controllo tra pagine B6 JSP Paolo Salvaneschi 39 B6 JSP Paolo Salvaneschi 39
40 Passaggio del controllo tra pagine <HTML> <HEAD></HEAD> <BODY> <jsp:forward page="forwarded.jsp"/> </BODY> </HTML> page contenttype="text/html" %> taglib prefix="c" uri=" %> <HTML><HEAD></HEAD> <BODY> <H1> Pagina chiamata <HR> <BR> <H2>Nome:<c:out value="${param.nome}" /></H2> <H2>Cognome:<c:out value="${param.cognome}" /></H2> </H1> <HR> </BODY></HTML> B6 JSP Paolo Salvaneschi 40 B6 JSP Paolo Salvaneschi 40
41 Passaggio del controllo tra pagine indirizzo=via Roma 4 B6 JSP Paolo Salvaneschi 41 B6 JSP Paolo Salvaneschi 41
42 Passaggio del controllo tra pagine <HTML> <HEAD></HEAD> <BODY> <HR> <jsp:forward page="forwarded.jsp"> <jsp:param name="indirizzo" value="via Roma 4"/> </jsp:forward> </BODY> </HTML> B6 JSP Paolo Salvaneschi 42 B6 JSP Paolo Salvaneschi 42
43 Passaggio del controllo tra pagine page contenttype="text/html" %> taglib prefix="c" uri=" %> <HTML> <HEAD> </HEAD> <BODY> <H1> Pagina chiamata <HR> <BR> <H2>Nome:<c:out value="${param.nome}" /></H2> <H2>Cognome:<c:out value="${param.cognome}" /></H2> <H2>Indirizzo:<c:out value="${param.indirizzo}" /></H2> </H1> <HR> </BODY> </HTML> B6 JSP Paolo Salvaneschi 43 B6 JSP Paolo Salvaneschi 43
44 Passaggio del controllo tra pagine forwarded.jsp index.jsp index.jsp B6 JSP Paolo Salvaneschi 44 B6 JSP Paolo Salvaneschi 44
45 page contenttype="text/html" %> taglib prefix="c" uri=" %> <html><head><title>user Info Entry Form</title></head> <body bgcolor="white"> <c:if test="${!empty param.nome &&!empty param.cognome}"> <jsp:forward page="forwarded.jsp"/> </c:if> <form action="index.jsp" method="post"> <input type="hidden" name="forminviata" value="true"> <table> <c:if test="${param.forminviata && empty param.nome}"> <tr><td></td> <td colspan="2"><font color="red"> Scrivere il nome </font></td></tr> </c:if> <tr> come prima. Gestione dell input con JSTL Esempio precedente (validazione dell input) modificato Nota: trasferisce il controllo dell elaborazione della richiesta http. Il controllo non torna alla pagina di origine. B6 JSP Paolo Salvaneschi 45 B6 JSP Paolo Salvaneschi 45
46 Model View Controller B6 JSP Paolo Salvaneschi 46 B6 JSP Paolo Salvaneschi 46
47 Model View Controller Form di richiesta index.htm Pagina di risposta valida accetta.jsp Pagina di risposta non valida rifiuta.jsp View submit forward forward Gestione Gestione.JSP Controller Cliente Bean access ClienteBean Model B6 JSP Paolo Salvaneschi 47 B6 JSP Paolo Salvaneschi 47
48 Model View Controller Model contiene dati / comportamenti relativi al dominio View visualizza il modello visualizza ogni informazione necessaria Controller gestisce l input manipola il modello causa l attivazione della view appropriata B6 JSP Paolo Salvaneschi 48 B6 JSP Paolo Salvaneschi 48
49 Model View Controller Form di richiesta index.htm Pagina di risposta valida accetta.jsp Pagina di risposta non valida rifiuta.jsp View Gestione Gestione.JSP Controller Cliente ClienteBean Model Nota: nonostante sembri dalla forma non è una architettura a layer B6 JSP Paolo Salvaneschi 49 B6 JSP Paolo Salvaneschi 49
50 Model View Controller <HTML><HEAD></HEAD> <BODY> <H1>Form di richiesta</h1> <HR> <FORM method= "get" action="gestione.jsp"> Nome: <br><input type="text" name="nome" size="30"><br> Cognome: <br><input type="text" name="cognome" size="30"><br> Codice utente: Form di richiesta <br><input type="text" name="codice" size="10" maxlength ="10"><br><br> Tipo fornitura: <br><input type="radio" name="tipo" Value="tipoC">Prodotto su specifica<br> <input type="radio" name="tipo" Value="tipoD" checked>prodotto a magazzino <br><br> <input type="submit" value="invia"> </FORM> </BODY></HTML> B6 JSP Paolo Salvaneschi 50 B6 JSP Paolo Salvaneschi 50
51 page contenttype="text/html" %> taglib prefix="c" uri=" %> <HTML> <HEAD> </HEAD> <BODY> <HR> <BR> <H2><c:out value="${param.info}" /></H2> </H1> <HR> </BODY> </HTML> Pagina di risposta valida Model View Controller Pagina di risposta non valida <HTML> <HEAD></HEAD> <BODY> <HR> <BR> <H2> Richiesta non accettata</h2> <BR> <HR> </BODY> </HTML> B6 JSP Paolo Salvaneschi 51 B6 JSP Paolo Salvaneschi 51
52 Model View Controller taglib prefix="c" uri=" %> <jsp:usebean id="cliente" class="info.clientebean" /> <jsp:setproperty name="cliente" property="*" /> <c:choose> <c:when test="${cliente.stato == 'Cliente riconosciuto'}"> <jsp:forward page="accetta.jsp"> <jsp:param name="info" value="cliente riconosciuto--sconto accordato"/> </jsp:forward> </c:when> <c:otherwise> <jsp:forward page="rifiuta.jsp"/> </c:otherwise> </c:choose> Gestione Nota: non utilizza HTML B6 JSP Paolo Salvaneschi 52 B6 JSP Paolo Salvaneschi 52
53 Utilizzo di componenti JavaBean Nome Proprietà Tipo Accesso Descrizione Cliente ClienteBean nome String Read Write Nome del cliente cognome String Read Write Cognome del cliente codice String Read Write Codice utente tipo String Read Write Tipo fornitura stato String Read Stato: Cliente non riconosciuto, Cliente riconosciuto La lettura dello stato causa l aggiornamento dello sconto sconto String Read Importo dello sconto accordato B6 JSP Paolo Salvaneschi 53 B6 JSP Paolo Salvaneschi 53
54 Model View Controller package info; import java.util.*; public class ClienteBean implements java.io.serializable { private String nome; private String cognome; private String codice; private String tipo; private String stato; private String sconto; Cliente //Costruttore che inizializza le strutture di dati public ClienteBean() { initcliente(); } B6 JSP Paolo Salvaneschi 54 B6 JSP Paolo Salvaneschi 54
55 Model View Controller //Set dei parametri Cliente public void setnome(string nome) { this.nome = nome;} public void setcognome(string cognome) { this.cognome = cognome;} public void setcodice(string codice) { this.codice = codice;} public void settipo(string tipo) { this. tipo = tipo;} //Return anagrafica cliente public String getnome() { return nome;} public String getcognome() { return cognome;} public String getcodice() { return codice;} public String gettipo() { return tipo;} //Return stato e sconto public String getstato() { stato = "Cliente non riconosciuto"; sconto = " "; if ("Mario".equals(nome)) { stato = "Cliente riconosciuto"; sconto = "20 %"; } return stato;} public String getsconto() { return sconto;} //Inizializza private void initcliente() { nome = " "; cognome = " "; codice = " "; tipo = " "; stato = " "; B6 JSP Paolo Salvaneschi 55 B6 JSP Paolo Salvaneschi 55 sconto = "0 %";}}
56 Model View Controller Nota: Accesso alle proprietà del Bean Accesso con jsp:getproperty <jsp:getproperty name="cliente" property="stato" /> Aggiunge il valore della proprietà di un Bean convertito in una stringa, alla risposta generata dalla pagina Accesso con notazione a punto attraverso EL <c:out value="${cliente.stato}" /> ottiene lo stesso risultato di sopra <c:when test="${cliente.stato == 'Cliente riconosciuto'}"> <c:set var="statolocale" value="${cliente.stato}" /> B6 JSP Paolo Salvaneschi 56 B6 JSP Paolo Salvaneschi 56
57 Passaggio dei dati tra pagine - scope Condivisione dati tra pagine: Scope (ambiti di validità) Lo scope definisce la disponibilità di un oggetto: Page (default) oggetti disponibili solo all interno di una pagina Request oggetti disponibili a tutte le pagine che elaborano la stessa richiesta (cfr. jsp:forward) Session oggetti condivisi da più richieste dello stesso browser Application oggetti condivisi da tutti gli utenti dell applicazione web B6 JSP Paolo Salvaneschi 57 B6 JSP Paolo Salvaneschi 57
58 Passaggio dei dati tra pagine - scope Client richiesta risposta richiesta risposta Pagina 1 inoltro Pagina 2 Pagina 3 inoltro Pagina 4 Scope di pagina Scope di pagina Scope di pagina Scope di pagina Scope di richiesta Scope di richiesta Scope di sessione B6 JSP Paolo Salvaneschi 58 B6 JSP Paolo Salvaneschi 58
59 Passaggio dei dati tra pagine - scope Nota: il nome di un oggetto deve essere univoco in tutti gli scope (secondo la specifica JSP. In pratica disatteso dai container che implementano JSP) Specifica dello scope. Esempio: <jsp:usebean id="cliente" scope="request" class="info.clientebean" /> Al momento dell esecuzione cerca un bean con lo stesso nome nello scope. Se esiste: nulla. Se non esiste: crea istanza nello scope Accesso tramite variabili implicite <c:out value="${pagescope.userinfo1.username}" /> <c:out value="${requestscope.userinfo2.username}" /> B6 JSP Paolo Salvaneschi 59 B6 JSP Paolo Salvaneschi 59
60 Passaggio dei dati tra pagine - scope index.jsp Form di richiesta forward scope object submit Gestione Pagina di risposta valida forward gestione.jsp Bean access accetta.jsp View Controller Cliente clientebean Model B6 JSP Paolo Salvaneschi 60 B6 JSP Paolo Salvaneschi 60
61 Passaggio dei dati tra pagine - scope B6 JSP Paolo Salvaneschi 61 B6 JSP Paolo Salvaneschi 61
62 taglib prefix="c" uri=" %> <jsp:usebean id="cliente" scope="request" class="info.clientebean" /> <HTML><HEAD></HEAD> <BODY> <H1>Form di richiesta</h1> <HR> <FORM method= "get" action="gestione.jsp"> Nome:<br><input type="text" name="nome" size="30"><br> Cognome:<br><input type="text" name="cognome" size="30"><br> Codice utente:<br><input type="text" name="codice" size="10" maxlength ="10"> <br><br> Tipo fornitura: <br><input type="radio" name="tipo" Value="tipoC">Prodotto su specifica <br><input type="radio" name="tipo" Value="tipoD" checked>prodotto a magazzino <br><br> Passaggio dei dati tra pagine - scope NB Form di richiesta B6 JSP Paolo Salvaneschi 62 B6 JSP Paolo Salvaneschi 62
63 Passaggio dei dati tra pagine - scope <c:if test="${param.info == 'Cliente non riconosciuto'}"> <font color="red"> Nome:<c:out value="${cliente.nome}" /><br> Cognome:<c:out value="${cliente.cognome}" /><br> Cliente non riconosciuto. Inserire i dati<br><br> </font> </c:if> <input type="submit" value="invia"> </FORM> </BODY> </HTML> Form di richiesta Proprietà del Bean nello scope di request (E il Bean caricato con i dati della form. I dati sono utilizzati per produrre la scritta in rosso) B6 JSP Paolo Salvaneschi 63 B6 JSP Paolo Salvaneschi 63
64 Passaggio dei dati tra pagine - scope Pagina di risposta valida Cliente Come esempio precedente B6 JSP Paolo Salvaneschi 64 B6 JSP Paolo Salvaneschi 64
65 Passaggio dei dati tra pagine - scope <%@ taglib prefix="c" uri=" %> <jsp:usebean id="cliente" scope="request" class="info.clientebean" /> <jsp:setproperty name="cliente" property="*" /> <c:choose> <c:when test="${cliente.stato == 'Cliente riconosciuto'}"> Gestione <jsp:forward page="accetta.jsp"> <jsp:param name="info" value="cliente riconosciuto--sconto accordato"/> </jsp:forward> </c:when> Torna alla form di richiesta <c:otherwise> <jsp:forward page="index.jsp"> <jsp:param name="info" value="cliente non riconosciuto"/> </jsp:forward> </c:otherwise> </c:choose> B6 JSP Paolo Salvaneschi 65 B6 JSP Paolo Salvaneschi 65
66 Passaggio dei dati tra pagine - scope Nota sull esempio: Prima request della pagina index.jsp: è creato un Bean cliente (che non è utilizzato) L utente compila la form e inoltra una nuova request alla pagina gestione.jsp la quale Crea un nuovo Bean cliente (il vecchio è fuori dallo scope di validità è una nuova request) Imposta le proprietà del Bean Passa il controllo alla pagina index.jsp (nello stesso scope di request) B6 JSP Paolo Salvaneschi 66 B6 JSP Paolo Salvaneschi 66
67 Passaggio dei dati tra pagine - scope La pagina index.jsp: recupera il Bean esistente nello scope di request utilizza le proprietà caricate da gestione.jsp per visualizzare la segnalazione di errore B6 JSP Paolo Salvaneschi 67 B6 JSP Paolo Salvaneschi 67
68 Passaggio dei dati tra pagine - scope Attenzione quando si mischia l utilizzo di JSTL e lo scripting Le azioni JSTL espongono i dati mediante le variabili di scope che vivono in uno degli scope di JSP Uno scriptlet dichiara variabili di scripting nello specifico linguaggio (java) B6 JSP Paolo Salvaneschi 68 B6 JSP Paolo Salvaneschi 68
69 Passaggio dei dati tra pagine - scope Per manipolare variabili di scope in uno script bisogna disporre di una variabile di scripting che accede alla variabile di scope L azione <jsp:usebean... crea anche una variabile di scripting che contiene il riferimento all istanza di Bean. B6 JSP Paolo Salvaneschi 69 B6 JSP Paolo Salvaneschi 69
70 Passaggio dei dati tra pagine - scope <%@ taglib prefix="c" uri=" %> <jsp:usebean id="magazzino" scope="request" class="info.magazzinobean" /> <jsp:setproperty name="magazzino" property="*" /> <%-- Nota: l'unico articolo in magazzino è "patate" con codice "p21" --%> <c:choose> <c:when test="${magazzino.stato == 'a_magazzino'}"> <jsp:forward page="rispondi_ok.jsp"> <jsp:param name="info" value="articolo a magazzino"/> </jsp:forward> </c:when> <c:otherwise> <jsp:forward page="rispondi_nok.jsp"> <jsp:param name="info" value="articolo non a magazzino"/> </jsp:forward> </c:otherwise> </c:choose> B6 JSP Paolo Salvaneschi 70 B6 JSP Paolo Salvaneschi 70
71 Passaggio dei dati tra pagine - scope <%@ page contenttype="text/html" %> rispondi_ok <%@ taglib prefix="c" uri=" %> <jsp:usebean id="magazzino" scope="request" class="info.magazzinobean" /> <HTML><HEAD></HEAD> <BODY> Accesso alla proprietà del bean con notazione a punto attraverso EL jsp:getproperty Script (espressione) <HR> <BR> <H2><c:out value="${param.info}" /></H2> <font color="red"> Quantità attualmente disponibile:<br> <c:out value="${magazzino.quantità}" /><br> <jsp:getproperty name="magazzino" property="quantità" /><br> <%=magazzino.getquantità()%> </font> </H1><HR> B6 JSP Paolo Salvaneschi 71 B6 JSP Paolo Salvaneschi 71
72 Passaggio dei dati tra pagine - scope <%--con la dichiarazione <jsp:usebean... tutti e tre i modi funzionano--%> <%--senza <jsp:usebean... funzionano i primi due: le librerie JSTL ritrovano la VARIABILE DI SCOPE "magazzino" nello scope di request--%> <%--ma non funziona il terzo. Infatti il terzo richiede una VARIABILE DI SCRIPTING che contenga il riferimento all'oggetto "magazzino". rispondi_ok L azione <jsp:usebean... Al momento dell esecuzione cerca un bean con lo stesso nome nello scope. Se esiste non crea un istanza nello scope. Crea anche una variabile di scripting che contiene il riferimento all istanza di Bean. L utilizzo dell azione è un modo per creare la variabile di scripting e rendere accessibili le variabili di scope allo script--%> B6 JSP Paolo Salvaneschi 72 B6 JSP Paolo Salvaneschi 72
73 Passaggio dei dati tra pagine - scope Condivisione dei dati di sessione e applicazione Ogni finestra dell esempio è associata ad una sessione B6 JSP Paolo Salvaneschi 73 B6 JSP Paolo Salvaneschi 73
74 Passaggio dei dati tra pagine - scope <%@ taglib prefix="c" uri=" %> <html><head><title>counter page</title></head> <body bgcolor="white"> <%-- Increment counters --%> <c:set var="sessioncounter" scope="session" value="${sessioncounter + 1}" /> <c:set var="applcounter" scope="application" value="${applcounter + 1}" /> <h1>counter page</h1> <h2> This page has been visited <i> <c:out value="${sessioncounter}" /> </i> times within the current session, and <i> <c:out value="${applcounter}" /> </i> times by all users since the application was started. </h2> </body> </html> Incrementato ad ogni attivazione da parte dello stesso browser Incrementato ad ogni attivazione dell applicazione web B6 JSP Paolo Salvaneschi 74 B6 JSP Paolo Salvaneschi 74
75 Passaggio dei dati tra pagine - scope sessione B6 JSP Paolo Salvaneschi 75 B6 JSP Paolo Salvaneschi 75
76 Passaggio dei dati tra pagine - scope <The following information was received: <ul> <li>request Method: <c:out value="${pagecontext.request.method}" /> <li>request Protocol: <c:out value="${pagecontext.request.protocol}" /> <li>request URL: <c:out value="${pagecontext.request.requesturl}" /> <li>server Port: <c:out value="${pagecontext.request.serverport}" /> <li>remote Host: <c:out value="${pagecontext.request.remotehost}" /> <li>cookies:<br> <c:foreach items="${pagecontext.request.cookies}" var="c"> <b> <c:out value="${c.name}" /></b>: <c:out value="${c.value}" /><br> </c:foreach> </ul> </body> </html> B6 JSP Paolo Salvaneschi 76 B6 JSP Paolo Salvaneschi 76
Pattern di Progettazione
Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione INGEGNERIA DEL SOFTWARE Paolo Salvaneschi C2_1 V3.2 Pattern di Progettazione Il contenuto del documento è liberamente
DettagliUniversità di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi C1_1 V3.
Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione INGEGNERIA DEL SOFTWARE Paolo Salvaneschi C1_1 V3.4 Componenti Il contenuto del documento è liberamente utilizzabile
DettagliUniversità di Bergamo Facoltà di Ingegneria. Applicazioni Internet B. Paolo Salvaneschi B6_1 V1.7. JSP parte A
Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi B6_1 V1.7 JSP parte A Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale e
DettagliLaboratorio 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
DettagliIntroduzione a JSP (Java Server Pages) MC 2005
Introduzione a JSP (Java Server Pages) MC 2005 Cosa è JSP JSP è una tecnologia per lo sviluppo di pagine web con contenuti dinamici Miglioramento rispetto alle CGI (modello multithread) Indipendenza dalla
DettagliUniversità di Bergamo Facoltà di Ingegneria. Applicazioni Internet B. Paolo Salvaneschi B6_4 V1.7. JSP parte D
Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi B6_4 V1.7 JSP parte D Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale e
DettagliIntroduzione alle JSP
Introduzione alle JSP Corso di Sistemi Web e Basi Dati Prof. Antonio d Acierno Java Server Page JSP Riferimenti http://java.sun.com/products/jsp http://www.coreservlets.com http://www.html.it/jsp Le JSPs
DettagliVerso l architettura MVC-2 Java Server Pages (JSP)
Verso l architettura MVC-2 Java Server Pages (JSP) 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 JSP Una pagina JSP può essere vista come uno schema di pagina Web dove: le
DettagliVerso l architettura MVC-2 Java Server Pages (JSP)
Verso l architettura MVC-2 Java Server Pages (JSP) 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 0 / 2 0 1 1 JSP 2 Una pagina JSP può essere vista come uno schema di pagina Web dove:
DettagliJUG Ancona Italy. JSP 2.0: Tag Library. Matteo Piccinini Web Developer
JUG Ancona Italy JSP 2.0: Tag Library Matteo Piccinini Web Developer Servlet Codice Java che viene eseguito nel server per produrre un contenuto Logica applicativa del programmatore Gestione grafica passa
Dettagli6 JavaServer Pages. Marco Tessarotto Programmazione dei Web Server Anno Accademico
6 JavaServer Pages Marco Tessarotto Programmazione dei Web Server Anno Accademico 2004-2005 JavaServer Pages (JSP) È una tecnologia che consente di creare contenuto web sia statico che dinamico Include
DettagliLaboratorio di sistemi JSTL e database Jsp [NetBeans]
Elenco dei film ottenuti usando la libreria JSTL 1.1 elenco_film_jstl.pdf Pag. 1/18 Cozzetto Inserisco i dati di un film. Prima dell'inserimento i dati vengono confrontati con quelli della tabella film_tbl
DettagliSiti web centrati sui dati Architettura MVC-2: JSP
Siti web centrati sui dati Architettura MVC-2: JSP Alberto Belussi anno accademico 2006/2007 JSP Una pagina JSP è uno schema di pagina Web dove le parti statiche sono scritte in HTML e le parti dinamiche
DettagliLaboratorio di Sistemi Fattoriale di un numero Jsp [Java]
Desideriamo realizzare una applicazione web che ci consenta di calcolare il fattoriale di un numero. L'esercizio in sé non particolarmente difficile, tuttavia esso ci consentirà di affrontare il problema
DettagliUniversità di Bergamo Facoltà di Ingegneria. Applicazioni Internet B. Paolo Salvaneschi B3_2 V1.22. HTML Parte B
Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi B3_2 V1.22 HTML Parte B Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale
DettagliVerso l architettura MVC-2 Java Server Pages (JSP)
Verso l architettura MVC-2 Java Server Pages (JSP) 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 JSP Una pagina JSP può essere vista come uno schema di pagina Web dove: le parti statiche sono scritte in
DettagliTecnologie di Sviluppo per il Web
Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: Java Server Pages (JSP) Parte 2 versione 3.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
Dettagli1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet
1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet Controllo dell utente connesso al sito tramite JSP, Java Beans e Servlet. Ciò che ci proponiamo di fare è l accesso
DettagliProgrammazione lato client. JavaScript. Applicazioni di Rete M. Ribaudo - DISI. JavaScript
Programmazione lato client Netscape: Microsoft: JScript ECMAScript (ECMA-262) (European Computer Manufactures Association) 1 Linguaggio di script interpretato con alcune caratteristiche Object Oriented
Dettagli7 custom tags. Marco Tessarotto Programmazione dei Web Server Anno Accademico
7 custom tags Marco Tessarotto Programmazione dei Web Server Anno Accademico 2004-2005 Custom Tags Abbiamo visto i tag (azioni) standard JSP(jsp:useBean, jsp:setproperty, jsp:include ) La tecnologia JSP
DettagliJavaScript JavaScript Programmazione lato client JScript JavaScript ECMAScript
Programmazione lato client Netscape: Microsoft: JScript ECMAScript (ECMA-262) (European Computer Manufactures Association) Linguaggio di script interpretato con alcune caratteristiche Object Oriented HTTP
DettagliJava Server Pages A.A
M. Badella G. Malnati, 2003-04 Java Server Pages A.A. 2003-04 1 JSP Java Server Pages Documenti testuali che descrivono: come elaborare una richiesta per produrre una risposta in base ai parametri acquisiti
DettagliApplicazioni web. Sommario. Parte 7 Java Server Pages. Applicazioni web - JSP. Alberto Ferrari 1 JSP. JavaBeans JSTL. Architettura e sintassi di base
Applicazioni web Parte 7 Java Server Pages Alberto Ferrari 1 Sommario JSP JavaBeans JSTL Architettura e sintassi di base Concetti fondamentali Beans in pagine JSP Linguaggio di espressione Azioni principali
DettagliSoluzione 1: controller per la pagina di dettaglio delle categorie
Soluzione 1: controller per la pagina di dettaglio delle categorie @WebServlet("/category") public class CategoryDetailsServlet extends HttpServlet { public void doget( HttpServletRequest request, HttpServletResponse
DettagliProgrammazione Web D B M G. Il linguaggio HTML
Programmazione Web Il linguaggio HTML Il linguaggio HTML Concetti di base Le interfacce utente in HTML I form Le tabelle Il passaggio dei parametri contenuti nei form HTML: HyperText Markup Language Standard
DettagliD B M G Il linguaggio HTML
Programmazione Web Il linguaggio HTML Il linguaggio HTML Concetti di base Le interfacce utente in HTML I form Le tabelle Il passaggio dei parametri contenuti nei form @2011 Politecnico di Torino 1 Concetti
Dettagli@2011 Politecnico di Torino 1
Concetti di base Programmazione Web Il linguaggio HTML HTML consente di annotare un testo per contrassegnare le parti che lo compongono Le annotazioni sono realizzate tramite i "tag" Visualizzare documenti
DettagliJSP [2] Uso dei Costrutti JSP. Tag di azione. Uso di Bean Interazione fra pagine JSP. Uso di oggetti bean. Tre tag di azione per manipolare bean
Uso dei Costrutti JSP JSP [2] Uso di Bean Interazione fra pagine JSP Slides parzialmente tratte da materiale di Giansalvatore Mecca (Tecnologie di Sviluppo per il Web) e Marty Hall (http://www.coreservlets.com)
DettagliProgrammazione Web D B M G. Il linguaggio HTML
Programmazione Web Il linguaggio HTML Il linguaggio HTML Concetti di base Le interfacce utente in HTML I form Le tabelle Il passaggio dei parametri contenuti nei form HTML: HyperText Markup Language Standard
DettagliProgrammazione Java Avanzata. MVC Model, View,, Controller. Ing. Gianluca Caminiti
Programmazione Java Avanzata MVC Model, View,, Controller Ing. Gianluca Caminiti Uso di JSP: complessità crescente Invocare codice Java direttamente. Posizionare tutto il codice Java in una pagina JSP
DettagliD B M G. Basi di dati. Programmazione Web: HTML. Programmazione Web. Il linguaggio Politecnico di Torino 1
Programmazione Web Il linguaggio HTML Il linguaggio HTML Concetti di base Le interfacce utente in HTML I form Le tabelle Il passaggio dei parametri contenuti nei form @2011 Politecnico di Torino 1 Concetti
DettagliModulo o Form in Html
Pagina dinamica E un documento contenente oggetti, dati e informazioni che possono variare anche in base all iterazione dell utente con il documento stesso. Un esempio classico è quello di una persona
DettagliD B M G. Basi di dati. Programmazione Web: HTML. Programmazione Web. Il linguaggio Politecnico di Torino 1
Programmazione Web Il linguaggio HTML Il linguaggio HTML Concetti di base Le interfacce utente in HTML I form Le tabelle Il passaggio dei parametri contenuti nei form @2011 Politecnico di Torino 1 Concetti
Dettagli@2011 Politecnico di Torino 1
Il linguaggio HTML Programmazione Web Concetti di base Le interfacce utente in HTML I form Il passaggio dei parametri contenuti nei form Il linguaggio HTML Concetti di base Concetti di base HTML: HyperText
Dettagli@2011 Politecnico di Torino 1
Il linguaggio HTML Programmazione Web Concetti di base Le interfacce utente in HTML I form Il passaggio dei parametri contenuti nei form Il linguaggio HTML Concetti di base Concetti di base HTML: HyperText
DettagliLaboratorio di Sistemi Fondamenti di JSTL (parte 1) Java (JSTL)
Adattamento da Wikipedia XML L'XML, acronimo di extensible Markup Language, ovvero Linguaggio di marcatura estensibile è un metalinguaggio creato e gestito dal World Wide Web Consortium (W3C). È una semplificazione
DettagliEsercizi su JavaScript, DOM e Web Storage
Linguaggi e tecnologie per il Web prof. Riccardo Rosati Corso di laurea in Ingegneria informatica e automatica Sapienza Università di Roma, a.a. 2017/2018 Esercizi su JavaScript, DOM e Web Storage Esercizio
DettagliLe JavaServer Pages - Lezione 7 I JavaBean
Le JavaServer Pages - Lezione 7 I JavaBean A cura di Giuseppe De Pietro (depietro_giuseppe@yahoo.it) Contenuti Nelle lezioni precedenti abbiamo visto gli elementi principali delle Java Server Pages, come
DettagliHTML: FORM. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni
HTML: FORM Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Form Text Radio Select CheckBox TextArea Button ... L'elemento serve per delimitare un modulo
Dettagliscrivere window.alert(). 2 Nell esempio sarebbe scritto solo var hello, senza pertanto attribuire alla variabile hello alcun valore
In genere il metodo alert() è usato per verificare il valore delle variabili durante la fase di correzione degli errori (debugging), fase che può essere svolta anche con l ausilio di appositi programmi
DettagliLaboratorio Progettazione Web PHP e FORMs HTML - Lezione 8. Andrea Marchetti IIT-CNR 2011/2012
Laboratorio Progettazione Web PHP e FORMs HTML - Lezione 8 Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2011/2012 Architettura di una applicazione Web Browser Web HTTP Server Web Dati View Control
DettagliInformatica di base Laboratorio di HTML Dott. Serena Villata A.A. 2004/05
Informatica di base Multid@ms Laboratorio di HTML Dott. Serena Villata A.A. 2004/05 Le tabelle Creazione di una tabella: le tabelle vengono utilizzate sia per inserire dati che per migliorare
DettagliJava Server Side JSP. Ing. Cesare Monti
Java Server Side JSP Ing. Cesare Monti cosa vedremo JSP storia contesto JSTL JSP: il contesto siamo sul web, hic sunt: server web DB beans, bundles,... oggetti in generale... agenti... tra non molto JSP:
DettagliAJAX. Riccardo Rosati
AJAX Riccardo Rosati Linguaggi e tecnologie per il Web Corso di laurea in Ingegneria informatica e automatica Sapienza Università di Roma a.a. 2017/2018 http://www.dis.uniroma1.it/~rosati/lw/ AJAX AJAX
DettagliUn esempio complesso
Un esempio complesso Costruiamo un applicazione web di una certa complessità. Vogliamo realizzare un front-end (interfaccia verso gli utenti) di un sito che vende dei prodotti online. Quindi le pagine
DettagliHTML Sintassi di HTML Tag principali per i contenuti I Forms
Lezione 1 HTML Sintassi di HTML Tag principali per i contenuti Tag principali per i contenuti I Forms L HTML (HyperText Markup Language) g è il linguaggio gg di markup utilizzato per veicolare le informazioni
DettagliAJAX. Riccardo Rosati
AJAX Riccardo Rosati Linguaggi e tecnologie per il Web Corso di laurea in Ingegneria informatica e automatica Sapienza Università di Roma a.a. 2016/2017 http://www.dis.uniroma1.it/~rosati/lw/ AJAX AJAX
DettagliLaboratorio 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
DettagliLE PRIME ACTIVE SERVICE PAGE: oggetto REQUEST
LE PRIME ACTIVE SERVICE PAGE: oggetto REQUEST L'oggetto Request può essere considerato come l'esatto contrario dell'oggetto Response, infatti mentre quest'ultimo invia dati al browser, Request serve a
DettagliLinguaggio HTML. Reti. Il Linguaggio HTML. Il Linguaggio HTML. Il Linguaggio HTML
Reti Il Linguaggio HTML Linguaggio HTML HTML = Hypertext Markup Language Linguaggio di markup di tipo descrittivo (usato per descrivere e formattare documenti ipertestuali) con una sintassi prestabilita
DettagliHTML e interattività FORM
HTML e interattività FORM Interattività delle pagine web I moderni siti web non sono più soltanto un insieme di pagine da leggere con testo e immagini, ma rappresentano uno strumento per interagire con
DettagliHTML il linguaggio per creare le pagine per il web
HTML il linguaggio per creare le pagine per il web Parte II: elementi "complessi" HTML: frame i frame servono per suddividere il browser in parti indipendenti all interno delle quali si possono caricare
Dettagli1) Il client(browser utilizzato) invia al server i dati inseriti dall utente. Server
2) Il Server richiama l'interprete PHP il quale esegue i comandi contenuti nel file.php specificato nell'attributo action del tag form creando un file HTML sulla base dei dati inviati dall utente 1) Il
DettagliUNIVERSITÀ DEGLI STUDI DI PARMA REALIZZAZIONE DI UNO STRUMENTO PER LA GESTIONE DI BASI DI DATI IN APPLICAZIONI WEB
UNIVERSITÀ DEGLI STUDI DI PARMA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA REALIZZAZIONE DI UNO STRUMENTO PER LA GESTIONE DI BASI DI DATI IN APPLICAZIONI WEB Relatore Chiar.mo Prof.
DettagliLinguaggi di scripting
Linguaggi di scripting In generale uno script è un piccolo programma (al limite una sola istruzione) il cui codice viene inserito all'interno di una pagina HTML o collegato ad esso, e interpretato dal
DettagliLato client: vuol dire che le operazioni programmate vengono svolte e visualizzate direttamente sul computer dell'utente collegato
Introduzione al linguaggio PHP Hypertext preprocessor Lato client: vuol dire che le operazioni programmate vengono svolte e visualizzate direttamente sul computer dell'utente collegato Lato server: vuol
DettagliIntroduzione a Java Server Pages (JSP) (estratto) SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi
Introduzione a Java Server Pages (JSP) (estratto) SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi 1 JSP (Java Server Pages) È la tecnologia Java per lo sviluppo di applicazioni
DettagliServlet 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 /
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 2 Documentazione: http://www.oracle.com/technetwork/java/javaee/servlet/index.html L approccio SERVLET richiede l installazione
DettagliPHP & MySQL. Giselda De Vita
PHP & MySQL Giselda De Vita - 2014 1 Per creare un applicazione WEB su APACHE, in linguaggio PHP, con Base Dati MySQL, possiamo lavorare in locale o in rete. Per lavorare in locale abbiamo bisogno di installare
DettagliJava EE 3. Ingegneria del Software (parte II) Andrea Bei
Java EE 3 Ingegneria del Software (parte II) Andrea Bei Architettura di media complessità: JSP e Servlet In una architettura J2EE di media complessità convivono Servlet e pagine JSP con responsabilità
DettagliLaboratorio di Sistemi Prototipo applicazione Biblioteca Jsp [Java]
Vogliamo progettare un prototipo di applicazione web che consenta ad un utente di ottenere, selezionando l'autore da una casella combinata, l'elenco dei libri scritti da quell'autore, come nelle figure
DettagliLe JavaServer Pages - Lezione 5 Le Standard Action
Le JavaServer Pages - Lezione 5 Le Standard Action A cura di Giuseppe De Pietro (depietro_giuseppe@yahoo.it) Contenuti In questa lezione vedremo cosa sono le azioni standard JSP (standard action) facendo
DettagliHTML. Es: La prossima parola è in <b>neretto</b> Es: La prossima parola è in neretto
HTML Il linguaggio HTML (HyperText Markup Language) utilizza annotazioni (tag) per descrivere come verrà visualizzato il documento sul browser di un client. L HTML non è un linguaggio di programmazione
DettagliHTML il linguaggio per creare le pagine per il web
HTML: frame HTML il linguaggio per creare le pagine per il web Parte II: elementi "complessi" i frame servono per suddividere il browser in parti indipendenti all interno delle quali si possono caricare
DettagliTito 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
DettagliHTML Interazione con l utente
HTML Interazione con l utente Il web è interattivo e per questo motivo una pagina html deve prevedere la possibilità, per l'utente, di inviare informazioni o effettuare delle scelte. Il linguaggio HTML,
DettagliCorso di PHP. Prerequisiti. 6.2 PHP e il web 2. Conoscenza HTML Tecnica della programmazione Principi di programmazione web
Corso di PHP 6.2 PHP e il web 2 1 Prerequisiti Conoscenza HTML Tecnica della programmazione Principi di programmazione web 2 1 Introduzione In questa Unità continuiamo con l illustrazione di alcune importanti
DettagliLaboratorio di sistemi Information hiding Jsp [Java]
Vogliamo realizzare una pagina web che ci consenta di filtrare i record della tabella books del database MySQL shop. Fig. 1 Tabella books, database MySQL shop Il filtro viene scritto direttamente dall'utente
DettagliIl tag form indica l'inizio della costruzione di un modulo. Necessita del tag di chiusura
LE FORM Le form, note in italiano anche come moduli sono delle strutture che permettono all'utente di inserire dei dati o di effettuare delle scelte. Le form, prese singolarmente non sono nient'altro che
DettagliVisualizzazione ordini in MyShopDB
Visualizzazione ordini in MyShopDB Risolviamo gli esercizi della lezione scorsa, scrivendo una pagina ordini.jsp che visualizzi le intestazioni di ogni ordine (numero d ordine, data, nome, cognome, indirizzo,
DettagliLaboratorio di Informatica (Chimica)
Laboratorio di Informatica (Chimica) HTML: Elementi Avanzati. Walter Cazzola Dipartimento di Informatica e Comunicazione Università à degli Studi di Milano. e-mail: cazzola@dico.unimi.it Walter Cazzola
DettagliArchitetture 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
DettagliJavascript: il browser
Javascript: il browser Un browser è un programma Un browser interpreta il linguaggio HTML e visualizza le pagine sullo schermo Per la visualizzazione delle pagine un browser si appoggia al software di
DettagliLaboratorio di sistemi Autenticazione utente mediante scriplet Jsp [NetBeans]
Figura 1 - La pagina input_user.jsp appena caricata Figura 2 - Lascio vuoti entrambi i campi o immetto un solo valore Figura 3 - Immetto dei valori che non esistono nel database autent_utente_scriplet.pdf
DettagliJavaScript. Caratteristiche del JavaScript. Javascript consente di rendere dinamiche le pagine HTML
JavaScript Caratteristiche del JavaScript Javascript consente di rendere dinamiche le pagine HTML Javascript è un linguaggio di programmazione con il quale è possibile produrre applicazioni eseguibili
DettagliLinguaggio HTML. Reti. Il Linguaggio HTML. Il Linguaggio HTML. Il Linguaggio HTML
Reti Il Linguaggio HTML Linguaggio HTML HTML = Hypertext Markup Language Linguaggio di markup di tipo descrittivo (usato per descrivere e formattare documenti ipertestuali) con una sintassi prestabilita
DettagliMVC - Principio. MVC Model View Controller. MVC - Terminologia. MVC - Funzionamento. Richiesta. Controller. Model. Risposta. View
MVC View Controller! Si tratta di un pattern di progettazione introdotto originariamente con Smalltalk (1980 Xerox)! Si basa su astrazioni presenti in tutte le applicazioni dotate di interfaccia grafica!
DettagliAnno Accademico Corso di Tecnologie Web Web Application: JSP
Universita degli Studi di Bologna - Facolta di Ingegneria Anno Accademico 2006-2007 Corso di Tecnologie Web Web Application: JSP http://www-lia.deis.unibo.it/courses/tecnologieweb0607/ Java Server Pages
DettagliAnno Accademico Corso di Tecnologie Web Web Application: JSP
Universita degli Studi di Bologna - Facolta di Ingegneria Anno Accademico 2006-2007 Corso di Tecnologie Web Web Application: JSP http://www-lia.deis.unibo.it/courses/tecnologieweb0607/ Java Server Pages
DettagliAnno Accademico Corso di Tecnologie Web Web Application: JSP. JSP request processing
Universita degli Studi di Bologna - Facolta di Ingegneria Anno Accademico 2006-2007 Corso di Tecnologie Web Web Application: JSP http://www-lia.deis.unibo.it/courses/tecnologieweb0607/ Java Server Pages
DettagliEsempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione
DettagliApplicazioni 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
DettagliIntroduzione a JSF: Le basi in un esempio. Giulio Rossetti 20/09/2007
Introduzione a JSF: Le basi in un esempio. Giulio Rossetti 20/09/2007 Introduzione: Java Server Faces è un framework, le cui specifiche sono rese disponibili dalla Sun, che permette di realizzare GUI in
DettagliNULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) E N G I N E = I
Esempio base: tabella amici Creare un sistema informatico che permetta di memorizzare il cognome, nome e data di nascita degli amici. Quindi creare una tabella per memorizzare i valori richiesti. Si chiede
DettagliLaboratorio di Basi di Dati
Laboratorio di Basi di Dati Introduzione Anno accademico 2017-2018 Paolo Perlasca Parte di questi lucidi è tratta da una versione precedente di Marco Mesiti, Stefano Valtolina, Daniele Riboni e Sergio
DettagliMyShopDB = MyShop + MySQL
MyShopDB = MyShop + MySQL Adattiamo l applicazione MyShop in modo da poter utilizzare un database come fonte di dati, invece dei soliti file testuali. I nuovi sorgenti si trovano nel file MyShopDB.zip
DettagliLaboratorio di Basi di Dati
Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 10 Architettura Model-View-Controller (MVC) L'architettura MVC può essere applicata anche alla tecnologia PHP secondo diversi approcci. In questa
DettagliMyShopDB = MyShop + MySQL
MyShopDB = MyShop + MySQL Adattiamo l applicazione MyShop in modo da poter utilizzare un database come fonte di dati, invece dei soliti file testuali. I nuovi sorgenti si trovano nel file MyShopDB.zip
Dettagli1. (6 punti) Spiegare il significato, in modo dettagliato, del pezzo di codice seguente di una servlet:
Università degli Studi di Camerino Corso di Laurea in Informatica A.A. 2015/2016 Prova Scritta di Programmazione Web, 21 Febbraio 2017 VIII Appello Docenti: Francesco Tiezzi e Luca Tesei Nome e Cognome:
DettagliHTML il linguaggio per creare le pagine per il web
HTML il linguaggio per creare le pagine per il web Parte II: elementi "complessi" HTML: frame I frame servono per suddividere il browser in parti indipendenti all interno delle quali si possono caricare
Dettagli