cerca
Tecnologie Web - Laboratorio 8
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Uni.TWLab08 History

Hide minor edits - Show changes to output

Changed lines 137-138 from:
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/xml" prefix="x" %>
to:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
Added lines 330-360:
@]

Il file '''memorizzaXML.jsp''' che memorizza nel file xml le nuove preferenze, per poi essere rilette dalla pagina precedente, è:\\\

[@
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://java.sun.com/jstl/xml" prefix="x" %>
<%@ page import="java.io.*"%>
<%
try{
File mioFileXml = new File(getServletContext().getRealPath("/")+"preferenze.xml");
PrintWriter mioStreamXml = new PrintWriter(new FileWriter(mioFileXml));
String colore = request.getParameter("colore");
String dim = request.getParameter("size");
mioStreamXml.println("<?xml version='1.0' encoding='ISO-8859-1'?>");
mioStreamXml.println("<preferenze>");
mioStreamXml.println("<preferenza>");
mioStreamXml.println("<colore>");
mioStreamXml.print(colore);
mioStreamXml.println("</colore>");
mioStreamXml.println("<size>");
mioStreamXml.print(dim);
mioStreamXml.println("</size>");
mioStreamXml.println("</preferenza>");
mioStreamXml.println("</preferenze>");
mioStreamXml.close();
}catch (Exception e){
out.write("errore ");
}
%>
<html>
Added lines 287-330:

Il file '''preferenze.jsp''' che legge le preferenze e permette di specificare le nuove è il seguente:\\\

[@
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>

<c:import var="pref" url="preferenze.xml" />
<x:parse var="doc" xml="${pref}" />


<html>
<head>
<title>Colore e dim</title>
</head>
<body bgcolor='<x:out select="$doc/preferenze/preferenza/colore" />'>
<font size='<x:out select="$doc/preferenze/preferenza/size" />'>
<h1>Lettura dei dati</h1>

<p><strong>SWAPPA COLOR</strong></p>
<p>Scrivi le tue preferenze: </p>

<form id="form1" name="form1" method="post" action="memorizzaXML.jsp">

<p>
Colore Sfondo
<input type="text" name="colore" />

<br>

Dimensione Font
<input type="text" name="size" />
</p>

<p>
<input type="submit" name="submit" value="Invia" />
</p>

</form>

</font>
</body>
</html>
@]
Changed line 78 from:
<%@ taglib uri="http://java.sun.com/jstl/xml" prefix="x"%>
to:
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x"%>
Changed lines 248-250 from:
user="root"
password=""/>
to:
user="****"
password="****"/>
Changed line 273 from:
to:
In questo esercizio c'è un problemino con la dimensione del font, nel senso che rileva correttamente il dato inserito dall'utente, ma poi fa una conversione gigantesca che non comprendo, anche specificando il formato ''px'' nel campo ''font''.
Changed lines 237-238 from:
to:
@]

File '''memorizzaSQL.jsp''' che inserisce i valori, inseriti nella form precedente, nel database creato.

[@
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>

<sql:setDataSource
url="jdbc:mysql://localhost/tecweb"
driver="com.mysql.jdbc.Driver"
user="root"
password=""/>

<sql:update>
UPDATE db_preferenze
SET color = ?, size = ?
WHERE id = '1'
LIMIT 1;
<sql:param value="${param.colore}"/>
<sql:param value="${param.size}"/>
</sql:update>

<html>
<head><title>operazione</title></head>
<body>
<form action="miotesto.jsp" method="post">
<h3>L'operazione è andata a buon fine.
Clicca per visualizzare le modifiche </br>

<input type="submit" value="visualizza">
</form>
</body>
</html>
Added lines 184-239:
File iniziale che contiene la form: '''miotesto.jsp'''

[@
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>

<sql:setDataSource
url="jdbc:mysql://localhost/tecweb"
driver="com.mysql.jdbc.Driver"
user="****"
password="****"/>

<sql:query var="pref">
SELECT color, size FROM db_preferenze
</sql:query>

<html>
<head><title> Lettura del DB </title></head>
<body bgcolor = '<c:forEach var="row" items="${pref.rows}">
<c:out value="${row.color}"/>
</c:forEach>'
>
<font size= '<c:forEach var="row" items="${pref.rows}">
<c:out value="${row.size}"/>
</c:forEach>'
>
<h1>Lettura dei dati in un database</h1>

<p><strong>SWAPPA COLOR</strong></p>
<p>Scrivi le tue preferenze: </p>

<form id="form1" name="form1" method="post" action="memorizzaSQL.jsp">

<p>
Colore Sfondo
<input type="text" name="colore" />

<br>

Dimensione Font
<input type="text" name="size" />
</p>

<p>
<input type="submit" name="submit" value="Invia" />
</p>

</form>

</font>
</body>
</html>



@]
Changed lines 94-97 from:

to:
'''libreria.xml'''

[@
<?xml version="1.0" encoding="ISO-8859-1"?>
<libreria>
<libro>
<autore>Stephen King</autore>
<titolo>Al crepuscolo</titolo>
<genere>Narrativa</genere>
<trama>racconti vari</trama>
<npag>400</npag>
<prezzo>16</prezzo>
</libro>
<libro>
<autore>Sophie</autore>
<titolo>Sai tenere un segreto</titolo>
<genere>Horror</genere>
<trama>bla...bla...</trama>
<npag>350</npag>
<prezzo>25</prezzo>
</libro>
<libro>
<autore>Roberto Re</autore>
<titolo>Leader di Te Stesso</titolo>
<genere>PNL</genere>
<trama>PNL</trama>
<npag>180</npag>
<prezzo>9.90</prezzo>
</libro>
<libro>
<autore>HP Lovecraft</autore>
<titolo>Le montagne della follia</titolo>
<genere>Horror</genere>
<trama>follia</trama>
<npag>100</npag>
<prezzo>6</prezzo>
</libro>
</libreria>
@]

'''libreria.jsp'''

[@
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/xml" prefix="x" %>
<html>
<head>
<title>Set Examples</title>
</head>
<body>
<c:import var="libri" url="libreria.xml" />
<x:parse var="doc" xml="${libri}" />
<table border="1">
<tr>
<td><b>Libri di genere Horror</b></td>
</tr>
<x:forEach select="$doc/libreria/libro[genere='Horror']">
<tr>
<td>
<x:out select="titolo" />
</td>
</tr>
</x:forEach>
</table>
</br>
<table border="1">
<tr>
<td><b>Libri al di sotto dei 20 euro</b></td>
</tr>
<x:forEach select="$doc/libreria/libro[prezzo<20]">
<tr>
<td>
<x:out select="titolo" />
</td>
</tr>
</x:forEach>
</table>
</body>
</html>
@]
Changed lines 116-122 from:
File mioFileXml = new File("configurazioni.xml");\\
PrintWriter mioStreamXml = new PrintWriter(new FileWriter(mioFileXml));\\\

mioStreamXml.println("parola");\\\

mioStreamXml.close();\\
Utilizzate la direttiva <%@ page import="java.io.*"%> nella pagina JSP.'''
to:
''File mioFileXml = new File("configurazioni.xml");''\\
''PrintWriter mioStreamXml = new PrintWriter(new FileWriter(mioFileXml));''\\\
''mioStreamXml.println("parola");''\\\
''mioStreamXml.close();''\\
Utilizzate la direttiva ''<%@ page import="java.io.*"%> nella pagina JSP.'''''
Changed lines 8-9 from:
'''Sulla base degli esempi visti a lezione, preparare un file XML contenente una serie di informazioni di vostro interesse, ed un file di trasformazione XSLT che permetta di visualizzare in forma tabellare le informazioni del documento XML. Verificare che funzionino, richiamando i due file da un file JSP.
to:
'''Sulla base degli esempi visti a lezione, preparare un file XML contenente una serie di informazioni di vostro interesse, ed un file di trasformazione XSLT che permetta di visualizzare in forma tabellare le informazioni del documento XML.\\
Verificare
che funzionino, richiamando i due file da un file JSP.\\
Changed lines 14-15 from:
Il file '''cinema.xml''':\\
to:
Il file '''cinema.xml''':\\\
Changed lines 40-42 from:
Il file '''cinema.xsl''' che permette di trasformare il file XML in un file HTML con tabella.\\
to:
Il file '''cinema.xsl''' che permette di trasformare il file XML in un file HTML con tabella.\\\
Changed line 73 from:
Il file '''cinema.jsp''' che unisce i due file precedenti:
to:
Il file '''cinema.jsp''' che unisce i due file precedenti:\\\
Deleted line 15:
>>left bgcolor=#f5f9fc width=auto border='2px solid #cccccc' padding=5px<<
Changed lines 38-39 from:
>><<
to:
Changed line 42 from:
>>left bgcolor=#f5f9fc width=auto border='2px solid #cccccc' padding=5px<<
to:
Changed lines 72-74 from:
>><<
to:
Deleted line 75:
>>left bgcolor=#f5f9fc width=auto border='2px solid #cccccc' padding=5px<<
Deleted line 84:
>><<
Added lines 10-126:

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

Di seguito mostriamo solo la soluzione con i file separati.\\
Il file '''cinema.xml''':\\

>>left bgcolor=#f5f9fc width=auto border='2px solid #cccccc' padding=5px<<
[@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="cinema.xsl"?>

<cinema>
<film>
<titolo> Shining </titolo>
<regista> Stanley Kubrick </regista>
</film>

<film>
<titolo> Apocalypse Now </titolo>
<regista> Francis Ford Coppola </regista>
</film>

<film>
<titolo> Gothic </titolo>
<regista> Ken Russell </regista>
</film>

</cinema>
@]
>><<

Il file '''cinema.xsl''' che permette di trasformare il file XML in un file HTML con tabella.\\

>>left bgcolor=#f5f9fc width=auto border='2px solid #cccccc' padding=5px<<
[@
<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:"http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

<html>
<head> <title> Collezione Film </title> </head>

<body>
<table border="1">
<tr>
<td> Titolo </td>
<td> Regista </td>
</tr>
<xsl:for-each select="cinema/film">
<tr>
<td> <xsl:value-of select="titolo"> </td>
<td> <xsl:value-of select="regista"> /td>
</tr>
</xsl:for-each>
</table>
</body>
</html>

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


Il file '''cinema.jsp''' che unisce i due file precedenti:

>>left bgcolor=#f5f9fc width=auto border='2px solid #cccccc' padding=5px<<
[@
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jstl/xml" prefix="x"%>

<c:import var="codiceXML" url="cinema.xml" />
<c:import var="codiceXSL" url="cinema.xslt" />

<x:transform doc="${codiceXML}" xslt="${codiceXSL}" />
@]
>><<


!!Esercizio 2
'''Scrivete un file XML in cui siano presenti una serie di libri (nodo radice: libreria). Per ogni libro riportare le seguenti informazioni: autore, genere, trama, numero di pagine, prezzo. Scrivete poi il codice di una JSP che permetta di effettuare diversi tipi di query sul documento XML. Per esempio:'''
* '''si vogliano visualizzare tutti i libri di un determinato genere'''
* '''si vogliano visualizzare tutti i libri con prezzo < 20 euro.'''

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






!!Esercizio 3
'''In questo esercizio utilizzeremo un database per memorizzare le preferenze relative alla visualizzazione di una pagina da parte di un utente. Per prima cosa preparare una pagina JSP (mioTesto.jsp) che contenga un titolo, un breve testo ed una form in cui l'utente possa inserire il colore dello sfondo preferito e la dimensione del font utilizzato nel testo.\\
Per un aiuto sui tag HTML potete consultare: "The Bare Bones Guide to HTML" (http://werbach.com/barebones/barebones.html).\\
La pagina utilizza dei valori di default che sono memorizzati in una tabella del database. (inizialenomecognome_preferenze). La tabella deve contenere almeno due campi, relativi al colore dello sfondo ed alla dimensione del font. Create la tabella con phpMyAdmin e impostate dei valori iniziali. mioTesto.jsp legge i valori da utilizzare nel database.\\
La form deve puntare alla JSP, memorizzaSQL.jsp. La pagina deve leggere i parametri inviati dall'utente e salvarli opportunamente nel database, quindi deve richiamare la pagina iniziale mioTesto.jsp.'''

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






!!Esercizio 4
'''Ora invece, il nostro obiettivo è quello di utilizzare un file XML di configurazione locale.\\
Modificare i files preparati nell'esercizio precedente in modo che invece di utilizzare un database, utilizzino un file XML. Per leggere il file utilizzare la libreria JSTL xml.\\
Scrivere il file non è possibile direttamente con JSTL. Dobbiamo utilizzare una scriptlet (o meglio una servlet) Java. Ecco come aprire uno stream su file e scrivere una parola.\\
File mioFileXml = new File("configurazioni.xml");\\
PrintWriter mioStreamXml = new PrintWriter(new FileWriter(mioFileXml));\\\

mioStreamXml.println("parola");\\\

mioStreamXml.close();\\
Utilizzate la direttiva <%@ page import="java.io.*"%> nella pagina JSP.'''
Added lines 1-17:
(:title Tecnologie Web - Laboratorio 8:)
[[Torna alla pagina di Tecnologie Web -> TecnologieWeb]]
----

%titolo%''':: Laboratorio 8 ::'''

!!Esercizio 1
'''Sulla base degli esempi visti a lezione, preparare un file XML contenente una serie di informazioni di vostro interesse, ed un file di trasformazione XSLT che permetta di visualizzare in forma tabellare le informazioni del documento XML. Verificare che funzionino, richiamando i due file da un file JSP.
Provare anche la versione in cui il file XML ed il file XSLT sono contenuti all’interno dello stesso file.'''

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




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