Swappa : Uni / Appello d'esame di Tecnologie Web - 04/09/2008
Creative Commons License

Torna alla pagina di Tecnologie Web


 :: Appello d'esame di Tecnologie Web - 04/09/2008 ::

Esercizio 1

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>

Esercizio 2

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

Esercizio 3

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.

Esercizio 4

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:

  1. Il client esegue una richiesta al web server.
  2. Il web server passa la richiesta ad un programma esterno.
  3. Il programma esterno riceve la richiesta, crea contenuti dinamici che tramite il server vengono inviati al client.

Problemi:

  1. Vengono mischiate presentazione e logica: formato scomodo sia per gli sviluppatori che per i programmatori. Difficile fusione tra HTML e linguaggi di programmazione.
  2. Velocità: ad ogni richiesta del client, il server deve inoltrare questa richiesta al programma CGI che nel frattempo era stato chiuso.
  3. Stateless: non viene tenuta traccia di nessun dato tra una richiesta e l'altra.
  4. 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.

Esercizio 5

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:

  1. <jsp:useBean>:
    associa la classe contenuta nel JavaBean ad un oggetto visibile all’interno della pagina, in modo da poter richiamare i suoi metodi senza dover fare riferimento al file di origine.
  2. <jsp:setProperty>:
    permette di impostare il valore di una delle proprietà di un bean.
  3. <jsp:getProperty>:
    prende il valore di una proprietà di una data istanza di bean e lo inserisce nell’oggetto out implicito (in pratica lo stampa a video).

Esercizio 6

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>"); 
   } 
}
  1. Nel codice è presente il metodo doGet(). In quale fase del ciclo di vita della servlet viene invocato tale metodo?
  2. Quale altro metodo conosci che ha finalità analoghe a doGet()? Quali sono le differenze tra i due metodi?

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!".

  1. Il metodo doGet() viene invocato nella fase di servizio della servlet. In questa fase una servlet interagisce con le richieste provenienti dal client, può interagire con altre servlet o risorse producendo risposte.
  2. Le principali differenze sono:
    - doGet() comprende una quantità limitata d'informazione (in alcuni casi non più di 255 caratteri) in forma di query string: lista che inizia con ? seguita da coppie nome-valore. Inoltre appare come parte dell'URL.
    - doPost() può essere basato su query string; con questo metodo si può spedire una quantità illimitata d'informazione come parte di una richiesta HTTP, senza apparire come parte di URL.

Torna alla pagina di Tecnologie Web

(Printable View of http://www.swappa.it/wiki/Uni/TemiEsameTW07)