cerca
Appello d'esame di Tecnologie Web - 10/06/2008
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Uni.TemiEsameTW08 History

Hide minor edits - Show changes to output

Changed lines 233-236 from:
Il pezzo di codice sopra riportato crea una pagina jsp in cui viene detto quante volte la pagina stessa è stata visitata. Viene inizializzata la variabile pagecount e iniziato il metodo addcount, poi inizia il codice html per generare la pagina. All'interno del body della pagina stessa viene invocato tramite uno scriptlet il metodo addcount poi visualizzata la scritta con quante pagine sono state visitate tramite l'espressione =pagecount che dà come output il valore di pagecount.

%warning%'''WARNING'''\\
E' giusto?
to:
Il pezzo di codice sopra riportato crea una pagina jsp in cui viene detto quante volte la pagina stessa è stata visitata. Viene inizializzata la variabile pagecount e iniziato il metodo addcount, poi inizia il codice html per generare la pagina. All'interno del body della pagina viene invocato tramite uno scriptlet il metodo addcount poi viene visualizzata la scritta con quante volte la pagina è stata visitata tramite l'espressione ''<%=pagecount %>'' che dà come output il valore di pagecount.
Changed line 188 from:
* lista di servlet: utilizza l'elemento '''servlet'''
to:
* lista di servlet: utilizza l'elemento '''servlet'''. All'interno di una servlet possono essere contenute più servlet name, indi il fatto che un servlet mapping poi si riferisca a una determinata servlet name dipende dal fatto che esse sono uguali.
Deleted lines 192-194:

%warning%'''WARNING'''\\
Da controllare, non sono sicuro della risposta. Controllare la descrizione di deployment.
Changed line 236 from:
Il pezzo di codice sopra riportato crea una pagina jsp in cui viene detto quante volte la pagina stessa è stata visitata. Viene inizializzata la variabile pagecount e iniziato il metodo addcount, poi inizia il codice html per generare la pagina. All'interno del body della pagina stessa viene invocato tramite uno scriptlet il metodo addcount poi visualizzata la scritta con quante pagine sono state visitate tramite l'espressione =pagecount che dà come output il valore di pagecount.\\\
to:
Il pezzo di codice sopra riportato crea una pagina jsp in cui viene detto quante volte la pagina stessa è stata visitata. Viene inizializzata la variabile pagecount e iniziato il metodo addcount, poi inizia il codice html per generare la pagina. All'interno del body della pagina stessa viene invocato tramite uno scriptlet il metodo addcount poi visualizzata la scritta con quante pagine sono state visitate tramite l'espressione =pagecount che dà come output il valore di pagecount.
Added lines 237-239:

%warning%'''WARNING'''\\
E' giusto?
Changed lines 233-236 from:

# '''Cos’è una dichiarazione in JSP?'''
# '''Che conseguenze comporta il fatto che una dichiarazione venga eseguita prima di _jspService()?'''
to:
Changed lines 236-243 from:

Il pezzo di codice sopra riportato crea una pagina jsp in cui viene detto quante volte la pagina stessa è stata visitata. Viene inizializzata la variabile pagecount e iniziato il metodo addcount, poi inizia il codice html per generare la pagina. All'interno del body della pagina stessa viene invocato tramite uno scriptlet il metodo addcount poi visualizzata la scritta con quante pagine sono state visitate tramite l'espressione =pagecount che dà come output il valore di pagecount.

# Le dichiarazioni sono frammenti di codice java inseriti in una pagina jsp definita da
'''<%! codice java %>'''. Simili ad uno scriptlet, ma il codice inserito in una dichiarazione serve per definire variabili globali o nuovi metodi.
# Il fatto che sia eseguito prima
di un una _jspService() fa si che la dichiarazione non si thread safe.

%warning%'''WARNING'''
\\
E' giusta la seconda risposta?
to:
Il pezzo di codice sopra riportato crea una pagina jsp in cui viene detto quante volte la pagina stessa è stata visitata. Viene inizializzata la variabile pagecount e iniziato il metodo addcount, poi inizia il codice html per generare la pagina. All'interno del body della pagina stessa viene invocato tramite uno scriptlet il metodo addcount poi visualizzata la scritta con quante pagine sono state visitate tramite l'espressione =pagecount che dà come output il valore di pagecount.\\\

'''6a. Cos’è una dichiarazione in JSP?
'''

%red%[-'''SOLUZIONE'''-]

Le JSP sono formate da codice HTML + frammenti di codice Java. Le componenti di una JSP sono gli elementi ed i template.\\
Gli elementi contengono gli elementi
di script (utilizzati per rendere una pagina dinamica) che contengono a loro volta le dichiarazioni.\\
Le dichiarazioni sono frammenti di codice Java utilizzato per dichiarare nuovi metodi o classi o variabili globali. Definite da: ''<%! codice Java %>''. Vengono eseguite PRIMA di _jspService().

'''6b. Che conseguenze comporta il fatto che una dichiarazione venga eseguita prima di _jspService()
?'''

%red%[-'''SOLUZIONE'''-]

Tutto ciò che è prima di _jspService(), non è tradesafe; ciò vuol dire che non ci sono controlli sulla concorrenza.
Changed line 233 from:
to:
Added lines 240-246:
Il pezzo di codice sopra riportato crea una pagina jsp in cui viene detto quante volte la pagina stessa è stata visitata. Viene inizializzata la variabile pagecount e iniziato il metodo addcount, poi inizia il codice html per generare la pagina. All'interno del body della pagina stessa viene invocato tramite uno scriptlet il metodo addcount poi visualizzata la scritta con quante pagine sono state visitate tramite l'espressione =pagecount che dà come output il valore di pagecount.

# Le dichiarazioni sono frammenti di codice java inseriti in una pagina jsp definita da '''<%! codice java %>'''. Simili ad uno scriptlet, ma il codice inserito in una dichiarazione serve per definire variabili globali o nuovi metodi.
# Il fatto che sia eseguito prima di un una _jspService() fa si che la dichiarazione non si thread safe.

%warning%'''WARNING'''\\
E' giusta la seconda risposta?
Changed line 184 from:
Fare il deloying dell'applicazione web significa istruire il container riguardo all'esistenza dell'applicazione (ad esempio con Tomcat lo riavviamo facendo stop e start).\\
to:
Fare il deploying dell'applicazione web significa istruire il container riguardo all'esistenza dell'applicazione (ad esempio con Tomcat lo riavviamo facendo stop e start).\\
Changed line 195 from:
Da controllare, non sono sicuro della risposta. Manca la descrizione del deployment.
to:
Da controllare, non sono sicuro della risposta. Controllare la descrizione di deployment.
Added line 184:
Fare il deloying dell'applicazione web significa istruire il container riguardo all'esistenza dell'applicazione (ad esempio con Tomcat lo riavviamo facendo stop e start).\\
Added lines 209-238:

!!Esercizio 6
'''Commentare dettagliatamente il seguente pezzo di codice:'''

>>left bgcolor=#f5f9fc width=auto border='2px solid #cccccc' padding=5px<<
[@
<%! int pagecount = 0;
void addcount() {
pagecount++;
}
%>

<html>
<head>
<title> PageCounter.jsp </title>
</head>
<body>
<% addcount(); %>
Pagina visitata <%= pagecount %> volte
</body>
</html>
@]
>><<

# '''Cos’è una dichiarazione in JSP?'''
# '''Che conseguenze comporta il fatto che una dichiarazione venga eseguita prima di _jspService()?'''

%red%[-'''SOLUZIONE'''-]
Added lines 120-149:

[@
<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/mailbox">
<html>
<head><title>Esercizio 2</title></head>
<body>
<table bgcolor="grey">
<tr>
<td>Data:</td>
<td>Mittente:</td>
<td>Messaggio:</td>
</tr>

<xsl:for-each select="message">
<tr>
<td><xsl:value-of select="@date" /></td>
<td> <xsl:value-of select="from" /></td>
<td><xsl:value-of select="content" /></td>
</tr>
</xsl:for-each>

</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
@]
Changed lines 95-116 from:
to:
[@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="2008-06-10es2.xsl"?>


<mailbox>
<message date="10/06/2008">
<from>Cthulhu</from>
<content>
Sono stufo di aspettare nella Città Sommersa!!!
</content>
</message>

<message date="06/06/1666">
<from>Ramses</from>
<content>
Pota!!
</content>
</message>
</mailbox>
@]
Deleted line 118:
Changed line 22 from:
</xs:sequence>
to:
</xs:sequence>
Changed line 31 from:
</xs:sequence>
to:
</xs:sequence>
Changed lines 49-50 from:
to:
L'elemento radice dell'XML Schema è il tag ''xs:schema'' che contiene:
* ''targetNamespace="http://bpms.intalio.com/FirstProcess/Time"'' che indica che gli elementi definiti appartengono a quel namespace.
* ''elementFormDefault="qualified"'': indica che gli elementi presenti nel documento hanno nomi qualificati.
* ''xmlns:xs="http://www.w3.org/2001/XMLSchema"'': specifica che agli elementi presenti nel documento verrà applicato lo standard del W3C

Nel documento è presente un elemento '''TimeRequest''' che è un tipo complesso formato da una sequenza ordinata di elementi '''city''' di tipo stringa.\\
E' presente anche un elemento '''TimeResponse''' anche questo di tipo complesso e formato da una sequenza ordinata di due elementi: '''UTCTime''' e '''cityTime''' entrambi di tipo stringa.
Changed lines 43-44 from:
to:
Questo documento è un XML Schema, che definisce quali sono gli elementi presenti nel documento XML a cui è legato e quali sono le loro caratteristiche.
Added lines 48-49:
Added lines 6-93:

!!Esercizio 1
'''Considerando il seguente documento XML:'''

>>left bgcolor=#f5f9fc width=auto border='2px solid #cccccc' padding=5px<<
[@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://bpms.intalio.com/FirstProcess/Time"
xmlns:ns="http://bpms.intalio.com/FirstProcess/Time"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">

<xs:element name="TimeRequest">
<xs:complexType>
<xs:sequence>
<xs:element name="city" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="TimeResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="UTCTime" type="xs:string"/>
<xs:element name="cityTime" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>

</xs:schema>
@]
>><<

'''1.a Definite il tipo di documento.'''

%red%[-'''SOLUZIONE'''-]



'''1.b Descrivete in linguaggio naturale il significato di quanto espresso nel documento.'''

%red%[-'''SOLUZIONE'''-]


!!Esercizio 2
'''Considerando il seguente frammento XSLT:'''

>>left bgcolor=#f5f9fc width=auto border='2px solid #cccccc' padding=5px<<
[@
<xsl:template match="/">
<html>

<body>
<table>
<tr>
<td>Data:</td>
<td>Mittente:</td>
<td>Messaggio:</td>
</tr>
<xsl:call-template name="list" />
</table>
</body>
</html>
</xsl:template>
<xsl:template name="list">
<xsl:for-each select="/mailbox/message">

<tr>
<td><xsl:value-of select="@date" /></td>
<td> <xsl:value-of select="from" /></td>
<td><xsl:value-of select="content" /></td>
</tr>
</xsl:for-each>
</xsl:template>

@]
>><<

'''2.a Scrivete un’istanza XML compatibile con le regole di trasformazione descritte.'''

%red%[-'''SOLUZIONE'''-]


'''2.b Scrivete un insieme di regole di trasformazione differente che produca comunque lo stesso output.'''


%red%[-'''SOLUZIONE'''-]
Added lines 27-32:
La globalizzazione di Internet ha proposto il problema di rendere correttamente gli alfabeti di migliaia di lingue nel mondo.\\
Il problema si pone per i dati scambiati dai protocolli, in quanto deve essere non ambiguo il criterio di associazione di un blocco di bit ad un carattere di un alfabeto.\\
Come trasmettere un messaggio con uno strumento in grado di trasmettere solo punti e linee? Ovviamente è necessaria una codifica: ad ogni carattere associamo un numero che trasmettiamo o, nel nostro caso, memorizziamo.\\
Una codifica che si affermò in modo universale fu quella standard ASCII (1963), che comprendeva 128 caratteri (7 bits) tra cui alcuni caratteri di controllo che erano utilizzati per le trasmissioni e la gestione del terminale. 128 caratteri non sono molti ma erano sufficienti per codificare la lingua inglese che non usa le lettere accentate.\\
Per permettere la codifica di lingue che utilizzano molti caratteri accentati lo standard ASCII fu esteso a 8 bits.\\
Per semplificare le comunicazioni nell'era dell'informatizzazione globale è stata introdotta una codifica detta UNICODE in cui si arrivano ad utilizzare fino a 32 bits per carattere: è possibile rappresentare anche tutti gli ideogrammi cinesi.
Changed lines 20-21 from:
'''SAX''' invia all’applicazione eventi che descrivono il riconoscimento di un particolare elemento; in questo modo l’applicativo chiede solo gli elementi di cui ha bisogno.\\
In SAX
ogni volta che il parser incontra un tag iniziale, un tag finale, dei dati di tipo carattere oppure un'istruzione di elaborazione, lo comunica direttamente al programma client, di conseguenza non bisogna aspettare che l'intero documento venga letto prima di poter agire sui dati presenti all'inizio del documento, perché il documento stesso viene passato al programma pezzo per pezzo, dall'inizio alla fine. Quindi non è necessario che l'intero documento risieda in memoria (cosa che invece avviene con DOM).\\
to:
In '''SAX''' ogni volta che il parser incontra un tag iniziale, un tag finale, dei dati di tipo carattere oppure un'istruzione di elaborazione, lo comunica direttamente al programma client, di conseguenza non bisogna aspettare che l'intero documento venga letto prima di poter agire sui dati presenti all'inizio del documento, perché il documento stesso viene passato al programma pezzo per pezzo, dall'inizio alla fine. Quindi non è necessario che l'intero documento risieda in memoria (cosa che invece avviene con DOM).\\
Changed lines 12-14 from:
'''DOM (Document Object Model)''': de&#64257;nisce interfacce, proprietà e metodi per manipolare documenti XML.\\
'''SAX (Simple API for XML)''': è un’interfaccia per leggere e manipolare &#64257;le XML.\\\
to:
'''DOM (Document Object Model)''': definisce interfacce, proprietà e metodi per manipolare documenti XML.\\
'''SAX (Simple API for XML)''': è un’interfaccia per leggere e manipolare file XML (quindi è un'API basata su eventi per il parsing di documenti XML).\\\
Changed lines 17-18 from:
SAX invia all’applicazione eventi che descrivono il riconoscimento di un particolare elemento; in questo modo l’applicativo chiede solo gli elementi di cui ha bisogno.
to:
In '''DOM''' è indispensabile leggere e sottoporre a parsing tutto il documento prima che il relativo modello a oggetti possa essere messo a disposizione di un'applicazione DOM. Ciò comporta che l'intero documento venga mantenuto in memoria e questo provoca un overhead non indifferente. Questo aspetto rende DOM poco adatto per applicazioni di trasformazione di documenti o per applicazioni che richiedano il parsing incrementale dei dati, come i protocolli di comunicazione e scambio di messaggi. DOM infatti non fornisce alcun supporto esplicito per effettuare il parsing di documenti o la serializzazione di nuovi documenti verso dispositivi di memorizzazione esterni.\\\

'''SAX''' invia all’applicazione eventi che descrivono il riconoscimento di un particolare elemento; in questo modo l’applicativo chiede solo gli elementi di cui ha bisogno.\\
In SAX ogni volta che il parser incontra un tag iniziale, un tag finale, dei dati di tipo carattere oppure un'istruzione di elaborazione, lo comunica direttamente al programma client, di conseguenza non bisogna aspettare che l'intero documento venga letto prima di poter agire sui dati presenti all'inizio del documento, perché il documento stesso viene passato al programma pezzo per pezzo, dall'inizio alla fine. Quindi non è necessario che l'intero documento risieda in memoria (cosa che invece avviene con DOM).\\
Changed line 16 from:
* modalità di interazione tra le API(Application Programming Interface) e l’applicazione che ne fa uso .
to:
* modalità di interazione tra le API(Application Programming Interface) e l’applicazione che ne fa uso.
Changed lines 13-15 from:
'''SAX (Simple API for XML)''': è un’interfaccia per leggere e manipolare &#64257;le XML.\\

'''
Differenze''':
to:
'''SAX (Simple API for XML)''': è un’interfaccia per leggere e manipolare &#64257;le XML.\\\

Differenze:
Added lines 12-19:
'''DOM (Document Object Model)''': de&#64257;nisce interfacce, proprietà e metodi per manipolare documenti XML.\\
'''SAX (Simple API for XML)''': è un’interfaccia per leggere e manipolare &#64257;le XML.\\

'''Differenze''':
* modalità di interazione tra le API(Application Programming Interface) e l’applicazione che ne fa uso .

SAX invia all’applicazione eventi che descrivono il riconoscimento di un particolare elemento; in questo modo l’applicativo chiede solo gli elementi di cui ha bisogno.
Questo comporta - memoria, - tempo di caricamento, + tempo per singolo accesso.
Added lines 31-33:

%warning%'''WARNING'''\\
Da controllare, non sono sicuro della risposta. Manca la descrizione del deployment.
Added lines 23-30:
Per tutte le servlet si deve effettuare il deploying perché siano disponibili agli utenti.\\
Il descrittore del deployment, '''web.xml''', descrive una applicazione Web, che può contenere servlet, JSP, classi Java, JAR, file HTML...\\
Deve contenere tutte le definizioni necessarie per l’applicazione, tra cui:
* lista di servlet: utilizza l'elemento '''servlet'''
* URL associata all'invocazione di ogni servlet: utilizza l'elemento '''servlet-mapping''', che quindi associa una URL alla servlet.\\
Richiede:
** ''<servlet-name>'': elemento che identifica il nome della servlet precedentemente dichiarata.
** ''<url-pattern>'': elemento che definisce il pattern usato per determinare quale servlet debba essere invocata.
Changed lines 29-36 from:
to:
Le JSP sono formate da codice HTML + frammenti di codice Java. Le componenti di una JSP sono gli elementi ed i template.\\
I '''template''' sono le parti di codice statico.\\
Gli '''elementi''' sono le parti di codice dinamico e si dividono in 3 categorie:
# {+''Elementi di script''+}: metodo più semplice per rendere dinamica una pagina. Si suddivide a sua volta in 3 parti:

## ''scriptlet'': frammenti di codice Java. Definiti ''<% codice Java%>'', adatti per i cicli, condizioni e funzionalità semplici.
## ''espressioni'': stringhe di testo dinamiche. Definite ''<%= codice Java %>''. Qualunque sia il tipo di dati del risultato di un’espressione viene sempre convertito dal metodo '''toString''' prima di essere inviato al client.
## ''dichiarazioni'': frammenti di codice Java utilizzato per definire nuovi metodi o variabili globali. Definite da ''<%! codice Java%>''. Vengono eseguite prima di _jspService().
Added lines 8-25:
'''3.a Spiegate la differenza tra i due più diffusi parser XML: SAX e DOM.'''\\\

%red%[-'''SOLUZIONE'''-]


'''3.b Spiegate brevemente i problemi legati alla codifica dei caratteri dei formati di testo.'''\\\

%red%[-'''SOLUZIONE'''-]


!!Esercizio 4
'''Cosa si intende per deployment? Spiegare lo schema generale del descrittore del deployment.'''\\\

%red%[-'''SOLUZIONE'''-]


!!Esercizio 5
'''Quali sono gli elementi di script di una JSP?'''\\\
Added lines 1-14:
(:title Appello d'esame di Tecnologie Web - 10/06/2008:)
[[Torna alla pagina di Tecnologie Web -> TecnologieWeb]]
----

%titolo%''':: Appello d'esame di Tecnologie Web - 10/06/2008 ::'''

!!Esercizio 3

%red%[-'''SOLUZIONE'''-]



----
[[Torna alla pagina di Tecnologie Web -> TecnologieWeb]]