|
Wiki
UniCrema
Materie per semestre
Materie per anno
Materie per laurea
Help
|
|
Uni.TemiEsameTW07 History
Hide minor edits - Show changes to output
Changed lines 164-167 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. # Stateless: non viene tenuta traccia di nessun dato tra una richiesta e l'altra. # 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 line 228 from:
E' il codice di una servlet e come tale scritto in java. All'inizio vengono chiamate i pacchetti per la servlet per l'inizializzazione della servlet e definire il metodo service(e il package I/O per gestire le eccezioni).
to:
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).
Changed line 232 from:
# Il metodo doGet() viene invocato nella fase di servizio della servlet. In questa fase una servlet interagisce con le richieste proventienti dal client, può interagire con altre servlet o risorse producendo risposte. Questo metodo viene utilizzato per prendere le informazioni dal client.
to:
# 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.
Changed lines 234-235 from:
- '''doGet()''' comprende una quantità limitata d'informazione (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'infomazione come parte di una richiesta HTTP, senza apparire come parte di URL.
to:
- '''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.
Changed lines 120-122 from:
%warning%'''WARNING'''\\ Manca soluzione
to:
Il cane si è mangiato la soluzione
Changed lines 227-230 from:
E' il codice di una servlet e come tale scritto in java. All'inizio vengono chiamate i pacchetti per la servlet per l'inizializzazione della servlet e definire il metodo service(e il package I/O per gestire le eccezioni). 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!".
%warning%'''WARNING'''\\ è giusto?
to:
E' il codice di una servlet e come tale scritto in java. All'inizio vengono chiamate 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!".
Added lines 103-111:
Le regole dei documenti ben formati sono cinque: * apertura e chiusura dei tag * annidamento corretto dei tag * dichiarazione all'inizio del documento * xml/xhtml sono CASE-SENSISTIVE: quindi utilizzare lo stesso nome per gli elementi/tag in apertura e chiusura * inserire correttamente gli apici singoli o doppi negli attributi
Il documento è valido quando rispetta le regole espresse nello schema DTD o XML-SCHEMA.
Deleted lines 113-114:
%warning%'''WARNING'''\\ sistemare la parte relativa al buon formato e alla validità del codice
Changed line 106 from:
LA COSA NON MI CONVINCE MOLTO, CHIEDERO' CONFERMA ALLA TRUCCO
to:
sistemare la parte relativa al buon formato e alla validità del codice
Changed lines 113-115 from:
to:
%warning%'''WARNING'''\\ Manca soluzione
Added lines 221-223:
%warning%'''WARNING'''\\ è giusto?
Changed line 220 from:
E' il codice di una servlet e come tale scritto in java. All'inizio vengono chiamate i pacchetti per la servlet e il package I/O per l'inizializzazione della servlet e definire il metodo service. Per il servizio viene usato il metodo doGet che implementa i metodi di request e response. Viene così prodotta una pagina HTML con la solita fantastica scritta "Hello World!".
to:
E' il codice di una servlet e come tale scritto in java. All'inizio vengono chiamate i pacchetti per la servlet per l'inizializzazione della servlet e definire il metodo service(e il package I/O per gestire le eccezioni). 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!".
Changed line 220 from:
E' il codice di una servlet e come tale scritto in java
to:
E' il codice di una servlet e come tale scritto in java. All'inizio vengono chiamate i pacchetti per la servlet e il package I/O per l'inizializzazione della servlet e definire il metodo service. Per il servizio viene usato il metodo doGet che implementa i metodi di request e response. Viene così prodotta una pagina HTML con la solita fantastica scritta "Hello World!".
Added lines 219-220:
E' il codice di una servlet e come tale scritto in java
Changed lines 220-223 from:
to:
# Il metodo doGet() viene invocato nella fase di servizio della servlet. In questa fase una servlet interagisce con le richieste proventienti dal client, può interagire con altre servlet o risorse producendo risposte. Questo metodo viene utilizzato per prendere le informazioni dal client. # Le principali differenze sono:\\ - '''doGet()''' comprende una quantità limitata d'informazione (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'infomazione come parte di una richiesta HTTP, senza apparire come parte di URL.
Changed line 188 from:
'''Commentare dettagliatamente il seguente pezzo di codice.'''
to:
'''Commentare dettagliatamente il seguente pezzo di codice:'''
Added lines 214-218:
# '''Nel codice è presente il metodo doGet(). In quale fase del ciclo di vita della servlet viene invocato tale metodo?''' # '''Quale altro metodo conosci che ha finalità analoghe a doGet()? Quali sono le differenze tra i due metodi?'''
%red%[-'''SOLUZIONE'''-]
Added lines 186-214:
!!Esercizio 6 '''Commentare dettagliatamente il seguente pezzo di codice.''' >>left bgcolor=#f5f9fc width=auto border='2px solid #cccccc' padding=5px<< [@ 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>"); } } @] >><<
Changed line 106 from:
'''LA COSA NON MI CONVINCE MOLTO, CHIEDERO' CONFERMA ALLA TRUCCO'''
to:
LA COSA NON MI CONVINCE MOLTO, CHIEDERO' CONFERMA ALLA TRUCCO
Changed line 101 from:
La dichiarazione DOCTYPE specifica quale è 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.\\
to:
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.\\
Changed lines 75-76 from:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
to:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
Added line 77:
Changed lines 101-102 from:
to:
La dichiarazione DOCTYPE specifica quale è 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.\\ 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.
%warning%'''WARNING'''\\ '''LA COSA NON MI CONVINCE MOLTO, CHIEDERO' CONFERMA ALLA TRUCCO'''
Changed lines 113-115 from:
to:
Changed lines 78-82 from:
<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>
to:
<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>
Changed lines 84-85 from:
<body bgcolor="#FFFFFF" link="#000000" text="red"> <p>This is an XHTML example</p>
to:
<body bgcolor="#FFFFFF" link="#000000" text="red"> <p>This is an XHTML example</p>
Changed lines 87-90 from:
<frameset cols="100,*">
<frame src="toc.html" />
<frame src="intro.html" name="content" /> </frameset>
to:
<frameset cols="100,*"> <frame src="toc.html" /> <frame src="intro.html" name="content" /> </frameset>
Changed lines 92-93 from:
to:
Added lines 68-106:
!!Esercizio 2 '''Considerate la seguente istanza XHTML:'''
>>left bgcolor=#f5f9fc width=auto border='2px solid #cccccc' padding=5px<< [@ <?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?'''
%red%[-'''SOLUZIONE'''-]
'''2.b Scrivete esempio di XHTML che riporti gli stessi contenuti ma che sia valido rispetto ad una DTD STRICT.'''
%red%[-'''SOLUZIONE'''-]
Changed lines 17-29 from:
<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>
to:
<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>
Changed line 31 from:
to:
Added line 14:
Changed lines 41-43 from:
to:
* secondo errore: manca l'elemento ''xsl:template'' che definisce l'inizio di un template. Ogni elemento <xsl:template> contiene delle regole da applicare quando uno specifico nodo viene trovato.\\ Se manca questo elemento il browser non sa cosa fare.
Changed lines 48-67 from:
to:
[@ <?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> @]
Added lines 39-40:
* primo errore: il tag ''for-each'' viene aperto, ma non viene chiuso e quindi un qualsiasi programma segnalerebbe un errore. Non rispetta le regole XML sui documenti ben formati. * secondo errore:
Changed line 8 from:
Considerate il seguente foglio di stile XSL:
to:
'''Considerate il seguente foglio di stile XSL:'''
Added lines 6-46:
!!Esercizio 1 Considerate il seguente foglio di stile XSL:
>>left bgcolor=#f5f9fc width=auto border='2px solid #cccccc' padding=5px<< [@ <?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.'''
%red%[-'''SOLUZIONE'''-]
'''1.b Scrivete un istanza di documento a cui potrebbe essere applicata una versione corretta del presente foglio di stile.'''
%red%[-'''SOLUZIONE'''-]
Changed lines 65-66 from:
* utile corrispondenza tra parametri della richiesta e proprietà degli oggetti: semplificazione del processo di lettura parametri di richiesta, conversione da stringa, copia del risultato nell’oggetto.
to:
* utile corrispondenza tra parametri della richiesta e proprietà degli oggetti: semplificazione del processo di lettura parametri di richiesta, conversione da stringa, copia del risultato nell’oggetto.
Changed line 65 from:
* Utile corrispondenza tra parametri della richiesta e proprietà degli oggetti: semplificazione del processo di lettura parametri di richiesta, conversione da stringa,
to:
* utile corrispondenza tra parametri della richiesta e proprietà degli oggetti: semplificazione del processo di lettura parametri di richiesta, conversione da stringa,
Changed line 59 from:
to:
Changed lines 58-60 from:
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
to:
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''
Changed line 62 from:
to:
Changed lines 58-76 from:
to:
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 * permettono di poter utilizzare le classi (ovviamente quelle che seguono il formato) senza scrivere codice. Con JSP * si possono utilizzare oggetti Java usando solo sintassi XML-compatibile (comporta una forte separazione tra presentazione e contenuto). * condivisione di oggetti tra pagine o richieste più semplice. * Utile corrispondenza tra parametri della richiesta e proprietà degli oggetti: semplificazione del processo di lettura parametri di richiesta, conversione da stringa, copia del risultato nell’oggetto.
Ci sono tre azioni standard per integrare JavaBeans e pagine JSP: # ''<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.
# ''<jsp:setProperty>'':\\ permette di impostare il valore di una delle proprietà di un bean.
# ''<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).
Changed lines 43-51 from:
to:
CGI (Common Gateway Interface) è un’interfaccia standard che permette ad un web server di comunicare con altre applicazioni e programmi autonomi.\\ ''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.
Changed lines 31-32 from:
to:
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.
Added lines 42-43:
Changed lines 12-26 from:
to:
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: * proprietari vs. non proprietari * prescrittivi (devi fare in un det. Modo) vs. descrittivi * de jure vs. de facto Uno standard può essere creato: * con un intervento governativo * attraverso un processo formale all’interno di organizzazioni * attraverso l’accettazione del mercato di una specifica in competizione L’impatto degli standard nelle Tecnologie dell’Informazione coinvolge: * '''Interoperabilità''': fare in modo che i sistemi lavorino insieme (ad esempio, permettere che software diversi accedano agli stessi dati). * '''Portabilità''': permettere che il software funzioni su architetture diverse (ad esempio, un linguaggio di programmazione comune). Uno standard per prevalere deve raggiungere la giusta combinazione di prestazioni - universalità - costo.
Added line 30:
Changed lines 7-8 from:
to:
!!Esercizio 3 '''3.a Discutete la nozione di standard e la sua importanza per il WWW.'''\\\
%red%[-'''SOLUZIONE'''-]
'''3.b Spiegate scopo ed uso dello standard RSS.'''\\\ %red%[-'''SOLUZIONE'''-]
!!Esercizio 4 '''CGI: cosa sono, come funzionano, quali svantaggi presentano.'''\\\
%red%[-'''SOLUZIONE'''-]
!!Esercizio 5 '''Java beans: cosa sono, vantaggi dati dal loro utilizzo, azioni standard per integrare JavaBeans e pagine JSP.'''
Added lines 1-15:
(:title Appello d'esame di Tecnologie Web - 04/09/2008:) [[Torna alla pagina di Tecnologie Web -> TecnologieWeb]] ----
%titolo%''':: Appello d'esame di Tecnologie Web - 04/09/2008 ::'''
!!Esercizio 3
%red%[-'''SOLUZIONE'''-]
---- [[Torna alla pagina di Tecnologie Web -> TecnologieWeb]]
|
|