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

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Uni.TemiEsameTW04 History

Hide minor edits - Show changes to output

Changed lines 390-392 from:
Il messaggio viene generato nel caso in cui i campi ''res'' e ''result'' sono maggiori di zero (cioè è già attivo quell'utente); oppure il parametro di login è uguale a quello di amministratore.
to:
Il messaggio viene generato nel caso in cui i campi ''res'' e ''result'' sono maggiori di zero (cioè è già attivo quell'utente); oppure il parametro di login è uguale a quello di amministratore.\\
Le due variabili associate ''res'' e ''result'' contengono il dato userid inserito dall'utente nella form della pagina jsp di registrazione.
Changed lines 407-408 from:
to:
\\\
e quindi li inserisce nella tabella ''utente'' presente nel database.
Changed lines 382-383 from:
E' diviso in due parti: la prima riguarda il caso dell'utente già registrato per il quale controlla che l'utente in questione non sia già attivo (viene attivata se login e pw sono campi non vuoti).
La seconda parte ti fa entrare nella pagina di registrazione per un nuovo utente.
to:
E' diviso in due parti: la prima riguarda il caso dell'utente già registrato per il quale controlla che l'utente in questione non sia già attivo (viene attivata se login e pw sono campi non vuoti). Se i dati (userid di utente qualsiasi o di admin) inseriti sono già presenti rimanda alla pagina jsp di registrazione.\\
La seconda parte invece conferma che i dati inseriti dall'utente nella pagina di registrazione non sono presenti nel database e riferisce che la registrazione è avvenuta con successo e rimanda alla index.jsp
Changed lines 337-338 from:
''<%@include file=“URL relativa” %>''\\
Un esempio tipico della direttiva include è l'inserimento di un header ed un footer nella pagine web.\\\
to:
''<%@include file=“URL relativa” %>''\\\
Un esempio tipico della direttiva include è l'inserimento di un header ed un footer nella pagine web.\\
Changed line 338 from:
Un esempio tipico della direttiva include è l'inserimento di un header ed un footer nella pagine web.\\
to:
Un esempio tipico della direttiva include è l'inserimento di un header ed un footer nella pagine web.\\\
Changed line 341 from:
- non c'è perdita di performance.
to:
- non c'è perdita di performance.\\
Deleted lines 333-336:
# '''direttiva include''': serve per includere testo o codice nella JSP prima che venga convertita in servlet. Ciò che viene incluso deve far parte della stessa applicazione Web.\\
''<%@include file=“URL relativa” %>''\\
Ad es. <%@ include file=“header.jsp” %>
Added lines 335-342:

# '''direttiva include''': serve per includere testo o codice nella JSP a tempo di traduzione, quindi quando viene convertita in servlet, ma prima che venga compilata. Ciò che viene incluso deve far parte della stessa applicazione Web.\\
''<%@include file=“URL relativa” %>''\\
Un esempio tipico della direttiva include è l'inserimento di un header ed un footer nella pagine web.\\
Ad es. <%@ include file=“header.jsp” %>\\
Il fatto che la direttiva include venga inserita a tempo di traduzione significa che:\\
- non c'è perdita di performance.
- se vengono effettuate delle modifiche ai file inclusi queste modifiche non vengono visualizzate fino a quando non si riesegue la traduzione.
Changed line 330 from:
Le direttive sono una delle tre categorie degli elementi e consistono in istruzioni per il container che specificano gli aspetti specifici dell’esecuzione di una JSP. Si dividono in 2 categorie:
to:
Le direttive sono una delle tre categorie degli elementi e consistono in istruzioni per il container che specificano gli aspetti specifici dell’esecuzione di una JSP. Si dividono in 3 categorie:
Added lines 337-338:

# '''direttiva taglib''': viene utilizzata in JSTL per informare la jsp su quali librerie di tag vengono utilizzate e devono essere importate. Ad esempio le librerie Core, Xml, Sql ecc...
Changed lines 318-319 from:
# Velocità: ad ogni richiesta del client, il server deve inoltrare questa richiesta al programma CGI che nel frattempo era stato chiuso (CGI stateless).
to:
# Velocità: ad ogni richiesta del client, il server deve inoltrare questa richiesta al programma CGI che nel frattempo era stato chiuso.
# Stateless: non viene tenuta traccia di nessun dato tra una richiesta e l'altra
.
Changed lines 317-319 from:
# Vengono mischiate presentazione e logica: formato scomodo sia per gli sviluppatori che per i programmatori.
# Velocità: ad ogni richiesta del client, il server deve inoltrare questa richiesta al programma CGI che nel frattempo era stato chiuso (CGI stateless).
# Ad ogni richiesta di risorsa alla
CGI, il web server crea un nuovo processo à spreco di risorse.
to:
# Vengono mischiate presentazione e logica: formato scomodo sia per gli sviluppatori che per i programmatori. Difficile fusione tra HTML e linguaggi di programmazione.
# Velocità: ad ogni
richiesta del client, il server deve inoltrare questa richiesta al programma CGI che nel frattempo era stato chiuso (CGI stateless).
# Consumo di risorse: ad ogni richiesta di risorsa alla CGI, il web server crea un nuovo processo, quindi c'è un numero limitato di processi concorrenti e di utenti contemporanei.

Per risolvere il problema della velocità e del consumo sono state introdotte le Fast CGI (seconda generazione di CGI) che mantengono un pool di processi sempre attivo, evitando quindi di creare e terminare ad ogni richiesta un nuovo processo. Questo permette anche di mantenere traccia dello stato. La richiesta e la risposta viaggiano sullo stesso canale di comunicazione Socket
.
Changed lines 211-212 from:
Inoltre i vari Schema possono essere composti dagli stessi elementi, ma questi possono essere ordinati in modo diverso.
to:
Inoltre i vari Schema possono essere composti dagli stessi elementi, ma questi possono essere ordinati in modo diverso.\\
Si possono scrivere Schema tutti annidati (come quelli visti a lezione) oppure costruire lo Schema in modo più ordinato tramite il comando '''REF''' (quello visto nell'esempio sopra)
.
Deleted lines 202-207:

* ''SECONDO XML SCHEMA (MENO CICCIONE)''


%warning%'''WARNING'''\\
Dov'è?
Added line 394:
\\
Added line 398:
\\
Added line 395:
\\
Added line 398:
\\
Deleted lines 374-378:
'''6a. In quale caso viene generato il messaggio " Spiacente nome utente utente già in uso "? Spiegare il significato delle variabili associate.'''\\\

'''6b. Spiegare il significato di " VALUES(?, ?)". Quali valori vengono gestiti?'''\\\
Changed lines 377-379 from:

%warning%'''WARNING'''\\
Manca soluzione
to:
Questo codice descrive una pagina di accesso ad un sito tramite userid e password.
E' diviso in due parti: la prima riguarda il caso dell'utente già registrato per il quale controlla che l'utente in questione non sia già attivo (viene attivata se login e pw sono campi non vuoti).
La seconda parte ti fa entrare nella pagina di registrazione per un nuovo utente.


'''6a. In quale caso viene generato il messaggio " Spiacente nome utente utente già in uso "? Spiegare il significato delle variabili associate.'''\\\

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

Il messaggio viene generato nel caso in cui i campi ''res'' e ''result'' sono maggiori di zero (cioè è già attivo quell'utente); oppure il parametro di login è uguale a quello di amministratore.


'''6b. Spiegare il significato di " VALUES(?, ?)". Quali valori vengono gestiti?'''\\\

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

'''VALUES(?, ?)''' passa i valori prendendoli dalle due espressioni che seguono.
Il primo punto di domanda prende il valore:
''<sql:param value = "${param.login}"/>''
Il secondo punto di domanda:
''<sql:param value = "${param.pw}"/>''
Changed lines 341-342 from:
'''Descrivere in sintesi lo scopo del seguente codice, descrivendone i diversi comportamenti quando viene invocato all'interno di un'applicazione.'''\\\
to:
'''Descrivere in sintesi lo scopo del seguente codice, descrivendone i diversi comportamenti quando viene invocato all'interno di un'applicazione.'''

[@
Changed lines 373-374 from:
to:
@]
Added lines 381-384:


%warning%'''WARNING'''\\
Manca soluzione
Changed lines 206-208 from:
[@

@]
to:
%warning%'''WARNING'''\\
Dov'è?
Changed line 374 from:
'''6b. <Spiegare il significato di " VALUES(?, ?)". Quali valori vengono gestiti?'''\\\
to:
'''6b. Spiegare il significato di " VALUES(?, ?)". Quali valori vengono gestiti?'''\\\
Changed line 339 from:
!!Esercizio 5
to:
!!Esercizio 6
Added lines 339-377:
!!Esercizio 5
'''Descrivere in sintesi lo scopo del seguente codice, descrivendone i diversi comportamenti quando viene invocato all'interno di un'applicazione.'''\\\

<c:choose>
<c:when test="${not empty param.login and not empty param.pw}">

<sql:query var="result">
select * from utente where login = ?;
<sql:param value = "${param.login}"/>
</sql:query>
<sql:query var="res">
select * from admin where login = ?;
<sql:param value = "${param.login}"/>
</sql:query>
<c:choose>
<c:when test="${result.rowCount > 0 or res.rowCount > 0 or param.login ==
'admin'}">
<c:out value="Spiacente nome utente utente già in uso."/>
<br><a href="registrazione.jsp">Torna</a>
</c:when>
<c:otherwise>
<sql:update >
INSERT INTO utente (login, pw) VALUES(?, ?)
<sql:param value = "${param.login}"/>
<sql:param value = "${param.pw}"/>
</sql:update>
<c:out value="Registrazione avvenuta con successo"/>
<br><a href="index.jsp">Torna</a>
</c:otherwise>
</c:choose>
</c:when>


'''6a. In quale caso viene generato il messaggio " Spiacente nome utente utente già in uso "? Spiegare il significato delle variabili associate.'''\\\

'''6b. <Spiegare il significato di " VALUES(?, ?)". Quali valori vengono gestiti?'''\\\


%red%[-'''SOLUZIONE'''-]
Added lines 202-207:
@]

* ''SECONDO XML SCHEMA (MENO CICCIONE)''

[@
Changed line 63 from:
''PRIMO XML SCHEMA (PARECCHIO CICCIONE):''
to:
* ''PRIMO XML SCHEMA (PARECCHIO CICCIONE):''
Changed lines 63-64 from:
PRIMO XML SCHEMA (PARECCHIO CICCIONE):
to:
''PRIMO XML SCHEMA (PARECCHIO CICCIONE):''
Added line 115:
Changed lines 117-122 from:
<xsd:complexType>
<xsd:sequence>
<xsd:element name="title">
<xsd:complexType mixed="true">
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
to:
<xsd:complexType>
<xsd:sequence>
<xsd:element name="title">
<xsd:complexType mixed="true">
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="author">
<xsd:complexType mixed="true">
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="publisher">
<xsd:complexType mixed="true">
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="pubPlace">
<xsd:complexType mixed="true">
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="date">
<xsd:complexType mixed="true">
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="default" type="xsd:string"/>
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
Changed lines 149-152 from:
<xsd:element name="author">
<xsd:complexType mixed="true">
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
to:
<xsd:element name="text">
<xsd:complexType>
<xsd:sequence>
<
xsd:element minOccurs="1" maxOccurs="1" ref="body"/>
</xsd:sequence>
</xsd:complexType>
Changed lines 157-160 from:
<xsd:element name="publisher">
<xsd:complexType mixed="true">
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
to:
<xsd:element name="body">
<xsd:complexType>
<xsd:sequence>
<
xsd:element ref="div1"/>
</xsd:sequence>
</xsd:complexType>
Changed lines 165-168 from:
<xsd:element name="pubPlace">
<xsd:complexType mixed="true">
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
to:
<xsd:element name="div1">
<xsd:complexType>
<xsd:sequence>
<
xsd:element name="head">
<xsd:complexType mixed="true">
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element ref="lg"/>
</xsd:sequence>
<xsd:attribute name="type" type="xsd:string"/>
<xsd:attribute name="org" type="xsd:string"/>
<xsd:attribute name="sample" type="xsd:string"/>
<xsd:attribute name="part" type="xsd:string"/>
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
Changed lines 183-238 from:
<xsd:element name="date">
<xsd:complexType mixed="true">
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:
attribute name="default" type="xsd:string"/>
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="text">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs
="1" maxOccurs="1" ref="body"/>
</xsd:sequence>
</
xsd:complexType>
</xsd:element>
<xsd:element
name="body">
<
xsd:complexType>
<xsd:sequence>
<xsd:element ref="div1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="div1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="head">
<xsd:complexType mixed="true">
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element ref="lg"/>
</xsd:sequence>
<xsd:attribute name="type" type="xsd:string"/>
<xsd:attribute name="org" type="xsd:string"/>
<xsd:attribute name="sample" type="xsd:string"/>
<xsd:attribute name="part" type="xsd:string"/>
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="lg">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="l" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType mixed="true">
<xsd:attribute name="part" type="xsd:string"/>
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="org" type="xsd:string"/>
<xsd:attribute name="sample" type="xsd:string"/>
<xsd:attribute name="part" type="xsd:string"/>
<xsd:attribute name="TEIform" type="xsd:string"/>

</xsd:complexType>
to:
<xsd:element name="lg">
<xsd:complexType>
<xsd:sequence>
<
xsd:element name="l" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType mixed="true">
<xsd:attribute name="part" type="xsd:string"/>
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="org" type="xsd:string"/>
<xsd:attribute name
="sample" type="xsd:string"/>
<xsd:attribute name="part" type="xsd:string"/>
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
Changed lines 63-196 from:
%warning%'''WARNING'''manca la soluzione
to:
PRIMO XML SCHEMA (PARECCHIO CICCIONE):
[@
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"?>

<xsd:element name="TEI.2">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="teiHeader"/>
<xsd:element ref="text"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

<xsd:element name="teiHeader">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="fileDesc"/>
<xsd:element ref="sourceDesc"/>
</xsd:sequence>
<xsd:attribute name="type" type="xsd:string"/>
<xsd:attribute name="status" type="xsd:string"/>
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>

<xsd:element name="fileDesc">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="title">
<xsd:complexType mixed="true">
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="author">
<xsd:complexType mixed="true">
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="extent">
<xsd:complexType mixed="true">
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="publisher">
<xsd:complexType mixed="true">
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="sourceDesc">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="title">
<xsd:complexType mixed="true">
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="author">
<xsd:complexType mixed="true">
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="publisher">
<xsd:complexType mixed="true">
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="pubPlace">
<xsd:complexType mixed="true">
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="date">
<xsd:complexType mixed="true">
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="default" type="xsd:string"/>
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="text">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" ref="body"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="body">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="div1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="div1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="head">
<xsd:complexType mixed="true">
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element ref="lg"/>
</xsd:sequence>
<xsd:attribute name="type" type="xsd:string"/>
<xsd:attribute name="org" type="xsd:string"/>
<xsd:attribute name="sample" type="xsd:string"/>
<xsd:attribute name="part" type="xsd:string"/>
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="lg">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="l" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType mixed="true">
<xsd:attribute name="part" type="xsd:string"/>
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="org" type="xsd:string"/>
<xsd:attribute name="sample" type="xsd:string"/>
<xsd:attribute name="part" type="xsd:string"/>
<xsd:attribute name="TEIform" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
@]
Changed lines 123-124 from:
%warning%'''WARNING'''manca la soluzione
to:
Non sono presenti errori di sintassi.
Changed lines 129-130 from:
%warning%'''WARNING'''manca la soluzione
to:
Attach:TW04es2.jpg
Changed lines 69-71 from:
%warning%'''WARNING'''manca la soluzione
to:
E' possibile avere più dichiarazioni di schema per lo stesso documento perché ci sono più metodi per rappresentare la stessa cosa.\\
Infatti ad esempio una dichiarazione di schema che già va bene per un certo documento XML può essere ulteriormente approfondita con dei limiti maggiori che magari vengono inseriti per un ritocco futuro del documento XML. Ad esempio il fatto di aggiungere ad un certo elemento dei limiti maggiori nei valori che può assumere.\\
Inoltre i vari Schema possono essere composti dagli stessi elementi, ma questi possono essere ordinati in modo diverso.
Changed lines 63-64 from:
to:
%warning%'''WARNING'''manca la soluzione
Changed lines 69-70 from:
to:
%warning%'''WARNING'''manca la soluzione
Changed lines 121-122 from:
to:
%warning%'''WARNING'''manca la soluzione
Changed line 127 from:
to:
%warning%'''WARNING'''manca la soluzione
Added lines 8-125:
'''Considerate il seguente documento XML:'''

>>left bgcolor=#f5f9fc width=auto border='2px solid #cccccc' padding=5px<<
[@
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="poesia.xslt"?>
<TEI.2>

<teiHeader type="text" status="new" TEIform="teiHeader">

<fileDesc TEIform="fileDesc">
<title TEIform="title">Odi e sonetti</title>
<author TEIform="author">Ugo Foscolo</author>
<extent TEIform="extent">19 Kb in UTF-8</extent>
<publisher TEIform="publisher">Biblioteca Italiana</publisher>
</fileDesc>

<sourceDesc default="NO" TEIform="sourceDesc">
<title TEIform="title">Le opere</title>
<author TEIform="author">Foscolo, Ugo</author>
<publisher TEIform="publisher">F. Le Monnier</publisher>
<pubPlace TEIform="pubPlace">Firenze</pubPlace>
<date TEIform="date">1985</date>
</sourceDesc>

</teiHeader>

<text><body>
<div1 type="sonetto" org="uniform" sample="complete" part="N" TEIform="div1">
<head TEIform="head">[1]</head>

<lg org="uniform" sample="complete" part="N" TEIform="lg">
<l part="N" TEIform="l">Forse perchè della fatal quiete</l>
<l part="N" TEIform="l">Tu sei l'imago a me sì cara vieni</l>
<l part="N" TEIform="l">O Sera! E quando ti corteggian liete</l>
<l part="N" TEIform="l">Le nubi estive e i zeffiri sereni,</l>
<l part="N" TEIform="l">E quando dal nevoso aere inquiete</l>
<l part="N" TEIform="l">Tenebre e lunghe all'universo meni</l>
<l part="N" TEIform="l">Sempre scendi invocata, e le secrete</l>
<l part="N" TEIform="l">Vie del mio cor soavemente tieni.</l>
<l part="N" TEIform="l">Vagar mi fai co' miei pensier su l'orme</l>
<l part="N" TEIform="l">Che vanno al nulla eterno; e intanto fugge</l>
<l part="N" TEIform="l">Questo reo tempo, e van con lui le torme</l>
<l part="N" TEIform="l">Delle cure onde meco egli si strugge;</l>
<l part="N" TEIform="l">E mentre io guardo la tua pace, dorme</l>
<l part="N" TEIform="l">Quello spirto guerrier ch'entro mi rugge.</l>
</lg>
</div1></body></text></TEI.2>
@]
>><<

'''1.a Scrivete almeno due XML Schema che consentino di validare il documento.'''

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


'''1.b Discutete le motivazioni per cui è possibile avere diverse dichiarazioni di schema per un singolo documento.'''

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


!!Esercizio 2
'''Considerate il seguente documento XSLT:'''

>>left bgcolor=#f5f9fc width=auto border='2px solid #cccccc' padding=5px<<
[@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.1">

<xsl:output method="xml" doctype-
system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"/>

<xsl:variable name="title" select="/TEI.2/teiHeader/fileDesc/title" />

<xsl:template match="/">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><xsl:value-of select="$title"/></title>
</head>
<body>

<h1><xsl:value-of select="$title" /></h1>
<h3>di <xsl:value-of select="/TEI.2/teiHeader/fileDesc/author" /></h3>

<xsl:for-each select="/TEI.2/text/body/div1">
<div class="{@type}">
<xsl:for-each select="/TEI.2/text/body/div1/lg/l">
<xsl:if test="position() = 1">
<h4><xsl:value-of select="."/> ... </h4>
</xsl:if>
<p><xsl:value-of select="."/></p>
</xsl:for-each>

</div>
</xsl:for-each>

</body>
</html>
</xsl:template>
</xsl:stylesheet>
@]
>><<


'''2.a Nel caso fossero presenti, evidenziate eventuali errori di sintassi.'''

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



'''2.b Mostrate quale risultato produrrebbe se applicato al documento XML dell’esercizio1 .'''

%red%[-'''SOLUZIONE'''-]
Changed lines 68-70 from:
''<%@include file=“URL relativa” %>''
to:
''<%@include file=“URL relativa” %>''\\
Ad es. <%@ include file=“header.jsp” %>
Added lines 61-69:

Le JSP sono formate da codice HTML + frammenti di codice Java. Le componenti di una JSP sono gli elementi ed i template.\\
Le direttive sono una delle tre categorie degli elementi e consistono in istruzioni per il container che specificano gli aspetti specifici dell’esecuzione di una JSP. Si dividono in 2 categorie:
# '''direttiva page''': specifica informazioni relative alla pagina (tipo di contenuto, linguaggio di script, librerie da importare…).\\
''<%@page att1=“val1”,…,attN=“valN”%>''

# '''direttiva include''': serve per includere testo o codice nella JSP prima che venga convertita in servlet. Ciò che viene incluso deve far parte della stessa applicazione Web.\\
''<%@include file=“URL relativa” %>''
Added lines 56-61:

!!Esercizio 5
'''Direttive JSP: cosa sono? Spiegare l’uso della direttiva ''include'', facendo un esempio.'''\\\

%red%[-'''SOLUZIONE'''-]
Changed lines 48-55 from:
to:
''Funzionamento'':
# Il client esegue una richiesta al web server.
# Il web server passa la richiesta ad un programma esterno.
# Il programma esterno riceve la richiesta, crea contenuti dinamici che tramite il server vengono inviati al client.
'''Problemi''':
# Vengono mischiate presentazione e logica: formato scomodo sia per gli sviluppatori che per i programmatori.
# Velocità: ad ogni richiesta del client, il server deve inoltrare questa richiesta al programma CGI che nel frattempo era stato chiuso (CGI stateless).
# Ad ogni richiesta di risorsa alla CGI, il web server crea un nuovo processo à spreco di risorse.
Added lines 43-47:
'''CGI: cosa sono, come funzionano e che limiti hanno.'''\\\

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

CGI (Common Gateway Interface) è un’interfaccia standard che permette ad un web server di comunicare con altre applicazioni e programmi autonomi.\\
Changed line 22 from:
I linguaggi di markup (ad es. SGML, HTML, XHTML) sono i più opportuni per strutturare e marcare i documenti in maniera indipendente dall’applicazione, favorendo la riusabilità, la flessibilità e l’apertura ad applicazioni complesse dei documenti, quindi si va a risolvere il problema della portabilità dei dati.\\
to:
I linguaggi di markup (ad es. SGML, HTML, XHTML) sono i più opportuni per strutturare e marcare i documenti in maniera indipendente dall’applicazione, favorendo la riusabilità, la flessibilità e l’apertura ad applicazioni complesse dei documenti, quindi si va a risolvere il problema della portabilità dei dati.\\\
Changed line 34 from:
** ''nodo radice'': contiene l’intero documento.
to:
** ''nodo radice'': contiene l’intero documento e informazioni relative all'intero documento.
Changed line 36 from:
** ''nodi attributo'': ha come padre un altro elemento ma non si considera figlio di quell’elemento.
to:
** ''nodi attributo'': ha come padre un altro elemento, ma non si considera figlio di quell’elemento.
Changed lines 30-33 from:
* '''XPath''': è uno standard che permette di riferirsi o localizzare frammenti di XML, pensato per essere associato a XLink.

* '''XPointer''':
to:
* '''XPointer''': è uno standard che permette di riferirsi o localizzare frammenti di XML, pensato per essere associato a XLink. Può essere definito come URI+XPath.

* '''XPath''': è una sintassi che consente di riferirsi a parti di documenti XML (sia associati che non a un XML Schema o DTD). Generalmente viene inserito in un documento XML come valore di un attributo.\\
XPath vede un documento come un albero di nodi:
** ''nodo radice'': contiene l’intero documento.
** ''nodi elemento'': ha come padre un altro elemento o il nodo radice e come figli eventuali sottonodi, testo e istruzioni contenuti al suo interno.
** ''nodi attributo'': ha come padre un altro elemento ma non si considera figlio di quell’elemento.
** ''nodi testo''
** ''nodi commento''
** ''nodi per le processing instructions''
** ''nodi namespaces''
Changed line 44 from:
!!Esercizio 4
to:
Changed lines 28-32 from:
to:
* '''XLink''': è un vocabolario XML per definire link in modo più ricco dell’ancora HTML. Ha una sua DTD e può essere usato dalle applicazioni che la supportano.

* '''XPath''': è uno standard che permette di riferirsi o localizzare frammenti di XML, pensato per essere associato a XLink.

* '''XPointer''':
Added lines 23-27:

'''3b. Spiegate la differenza tra XPath XLink e XPointer.'''\\\

%red%[-'''SOLUZIONE'''-]
Added lines 16-17:
Un altro fattore che ne determinò il successo è stato l'URI, cioè lo standard per gli identificatori univoci nella rete. È indipendente dal protocollo, facilmente memorizzabile e scambiabile.\\
Il protocollo di comunicazione utilizzato è l'HTTP, che permette di scambiare messaggi su una rete informatica (TCP/IP).\\
Changed lines 21-22 from:
I linguaggi di markup (ad es. SGML, HTML, XHTML) sono i più opportuni per strutturare e marcare i documenti in maniera indipendente dall’applicazione, favorendo la riusabilità, la flessibilità e l’apertura ad applicazioni complesse dei documenti.\\
to:

I linguaggi di markup (ad es. SGML, HTML, XHTML) sono i più opportuni per strutturare e marcare i documenti in maniera indipendente dall’applicazione, favorendo la riusabilità, la flessibilità e l’apertura ad applicazioni complesse dei documenti, quindi si va a risolvere il problema della portabilità dei dati.\\
Added lines 10-20:
'''3a. Discutete le principali caratteristiche del WWW, evidenziando in modo più dettagliato il ruolo dei linguaggi di marcatura.'''\\\

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

Il WWW (world wide web) serve per presentare a schermo i documenti ipertestuali e multimediali.\\
Il punto di forza del WWW è la ''scalabilità'', ottenuta tramite il meccanismo dei link, che semplifica il protocollo e semplifica la navigazione ipertestuale.\\
Le due componenti principali legate al WWW sono:
* browser(client): permette di visualizzare i documenti.
* server: meccanismo di accesso a risorse locali, in grado di trasmettere via socket TCP documenti identificati da un nome univoco. Può anche collegarsi ad applicazioni lato server(tramite protocollo CGI) agendo da tramite tra il browser e l'applicazione, quindi il browser diventa l'interfaccia dell'applicazione.\\
I linguaggi di markup (ad es. SGML, HTML, XHTML) sono i più opportuni per strutturare e marcare i documenti in maniera indipendente dall’applicazione, favorendo la riusabilità, la flessibilità e l’apertura ad applicazioni complesse dei documenti.\\
Changed line 1 from:
(:title Temi d'esame di Sistemi - 06/11/2007:)
to:
(:title Appello d'esame di Tecnologie Web - 06/11/2007:)
Changed line 5 from:
%titolo%''':: Temi d'esame di Tecnologie Web - 06/11/2007 ::'''
to:
%titolo%''':: Appello d'esame di Tecnologie Web - 06/11/2007 ::'''
Added lines 1-16:
(:title Temi d'esame di Sistemi - 06/11/2007:)
[[Torna alla pagina di Tecnologie Web -> TecnologieWeb]]
----

%titolo%''':: Temi d'esame di Tecnologie Web - 06/11/2007 ::'''

!!Esercizio 1

!!Esercizio 3

!!Esercizio 4

!!Esercizio 4

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