Torna alla pagina di Tecnologie Web
:: Appello d'esame di Tecnologie Web - 04/09/2008 ::
Considerate il seguente foglio di stile XSL:
<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <html> <body> <table border="2" bgcolor="yellow"> <tr> <th>Title</th> <th>Artist</th> <th>Dynamic Content</th> </tr> <xsl:for-each select="CATALOG/CD"> <tr> <td><xsl:value-of select="TITLE"/></td> <td><xsl:value-of select="ARTIST"/></td> <td><xsl:value-of select="ORACLE"/></td> </tr> </table> </body> </html> </xsl:stylesheet>
1.a Nel documento esistono due errori. Individuateli e commentateli.
SOLUZIONE
1.b Scrivete un istanza di documento a cui potrebbe essere applicata una versione corretta del presente foglio di stile.
SOLUZIONE
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="2008-09-04es1.xsl"?> <CATALOG> <CD> <TITLE>Scenes from a memory</TITLE> <ARTIST>Dream Theater</ARTIST> <ORACLE>prova prova</ORACLE> </CD> <CD> <TITLE>Black Album</TITLE> <ARTIST>Metallica</ARTIST> <ORACLE>prova prova</ORACLE> </CD> </CATALOG>
Considerate la seguente istanza XHTML:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "DTD/xhtml1-frameset.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title> Frameset DTD XHTML Example </title> </head> <body bgcolor="#FFFFFF" link="#000000" text="red"> <p>This is an XHTML example</p> <frameset cols="100,*"> <frame src="toc.html" /> <frame src="intro.html" name="content" /> </frameset> </body> </html>
2.a Spiegate la dichiarazione DOCTYPE. È questo un documento ben formato? È valido?
SOLUZIONE
La dichiarazione DOCTYPE specifica qual'è il DTD relativo al documento e dove si trova, in questo caso è un DTD pubblico e più precisamente è quello XHTML FRAMESET, cioè quello più "libero" tra i tre previsti per XHTML. E' la versione più libera in quanto permette anche di utilizzare elementi correlati ai frame come frameset e iframe.
Il documento è ben formato, perché rispetta tutte le regole relative ai tag.
Le regole dei documenti ben formati sono cinque:
Il documento è valido quando rispetta le regole espresse nello schema DTD o XML-SCHEMA.
Il documento non è valido perché a quanto pare anche se nell'XHTML FRAMESET è possibile inserire i frameset questi non possono essere messi all'interno del body, o almeno così dice il programma.
2.b Scrivete esempio di XHTML che riporti gli stessi contenuti ma che sia valido rispetto ad una DTD STRICT.
SOLUZIONE
Il cane si è mangiato la soluzione
3.a Discutete la nozione di standard e la sua importanza per il WWW.
SOLUZIONE
Lo standard è un prerequisito per la costruzione di un’infrastruttura globale funzionale e poco costosa. Servono per evitare caos e il monopolio.
L’incapacità di giungere ad uno standard sostiene il lock-in, crea isole di connettività, mantiene i sistemi costosi, difficili da usare, inflessibili, e ritarda la diffusione di tecnologie utili nella società.
Ci sono diversi tipi di standard:
Uno standard può essere creato:
L’impatto degli standard nelle Tecnologie dell’Informazione coinvolge:
Uno standard per prevalere deve raggiungere la giusta combinazione di prestazioni - universalità - costo.
3.b Spiegate scopo ed uso dello standard RSS.
SOLUZIONE
RSS significa Really Simple Syndication ed è un formato basato su XML adatto alla diffusione di contenuti su Internet.
I documenti RSS, detti anche feed, sono uno strumento per descrivere contenuti che possono essere forniti a chi pubblica informazioni su Internet per i siti ad
aggiornamento frequente come quelli di news.
Attraverso un RSS Reader è possibile veicolare i contenuti di un sito e riaggregarli presentandoli sotto nuove forme. Il programma che permette di effettuare il download, il parsing e visualizzare i contenuti di un feed RSS si chiama feed reader. I feed reader sono in grado di rilevare automaticamente se il produttore di feed ha effettuato aggiornamenti al feed stesso, effettuando download a intervalli di tempo regolari.
Il concetto chiave quindi è che l'utente tramite RSS può scaricare e visualizzare gli aggiornamenti di decine di siti, usando una sola interfaccia.
Nota: esattamente quello che avviene col nostro forum.
CGI: cosa sono, come funzionano, quali svantaggi presentano.
SOLUZIONE
CGI (Common Gateway Interface) è un’interfaccia standard che permette ad un web server di comunicare con altre applicazioni e programmi autonomi.
Funzionamento:
Problemi:
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.
Java beans: cosa sono, vantaggi dati dal loro utilizzo, azioni standard per integrare JavaBeans e pagine JSP.
SOLUZIONE
Le Java Beans sono componenti software, che possono essere incluse in una pagina JSP, contenenti classi Java scritte in un formato standard. Permettono un ottimo incapsulamento e riutilizzo di codice.
Vantaggi:
In generale
Con JSP
Ci sono tre azioni standard per integrare JavaBeans e pagine JSP:
Commentare dettagliatamente il seguente pezzo di codice:
import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class HelloWorldServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<body>"); out.println("<h1>Hello World!</h1>"); out.println("</body>"); out.println("</html>"); } }
SOLUZIONE
E' il codice di una servlet e come tale scritto in java. All'inizio vengono chiamati i pacchetti per la servlet per l'inizializzazione della servlet e definire il metodo service(e il package I/O per gestire le eccezioni). Prima di scrivere l'output è necessario specificare il tipo di contenuto della pagina tramite chiamata al metodo setContentType() Per il servizio viene usato il metodo doGet che implementa le classi di request e response. Viene così prodotta una pagina HTML con la solita fantastica scritta "Hello World!".