Mese: Marzo 2015
Sessioni
Creare una pagina JSP con alcuni prodotti; si può selezionare solo un prodotto per volta mediante dei radio button; premendo Aggiungi deve essere memorizzata nella sessione una chiave con l’identificativo del prodotto; premendo Totale deve essere visualizzato il totale da pagare.
<%@page import="java.util.Enumeration"%> <%@page contentType="text/html" pageEncoding="UTF-8"%> <% String[] prodotti = {"<b>PHILIPS - FERRO DA STIRO A VAPORE GC2040/70</b><br/> Potenza 2100 W - Vapore continuo 30 g/min - Colpo di vapore 100 g/min - Vapore verticale", "<b>PHILIPS - FERRO DA STIRO A VAPORE GC4410/22</b><br/> Potenza 2400 W - Vapore continuo fino a 40 g/min - Piastra SteamGlide - Sistema antigoccia", "<b>ROWENTA - FERRO DA STIRO A VAPORE DW8110</b><br/> Potenza 2600 W - Piastra Microsteam inox Laser con 400 micro-fori vapore - Punta alta precisione - Antigoccia", "<b>POLTI - FERRO DA STIRO A CALDAIA VAPORELLA SILVER - EU2014</b><br/> Caldaia con ferro professionale e piastra Activa - Piastra alluminio - Pressione fino a 4 bar - Tasto vapore continuo", "<b>DE'LONGHI - SISTEMA STIRANTE A CALDAIA PRO1840X</b><br/> Potenza 2200 W - Pronto in soli 4 minuti - Caldaia in acciaio inox - AntiCalc System - capacità tanica 1l", "<b>PHILIPS - FERRO A CALDAIA GC7011/20</b><br/> Potenza 2400 W - Piastra scorrevole - Sistema anticalcare - Autonomia illimitata - Serbatoio 1,7 l - Pressione 4,2 bar - Dimensioni compatte", "<b>BOSCH - FERRO DA STIRO A CALDAIA TDS3715100</b><br/> *Valido per acquisti in punto vendita. Operazioni a premi valida dal 19/03 al 05/04/15. Regolamento completo al numero verde 800829120."}; double[] prezzi = {29.99, 49.99, 69.99, 89.00, 139.99, 159.99, 229.99}; %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Negozio on-line</title> </head> <body> <h1>Negozio on-line</h1> <p>Scegli l'articolo che vuoi acquistare e clicca su <b>Aggiungi</b>. Clicca su <b>Totale</b> quando hai finito.</p> <% session = request.getSession(true); String tasto = request.getParameter("tasto"); if (tasto != null) { if (tasto.equals("Aggiungi")) { String nProdotto = request.getParameter("prodotto"); session.setAttribute(nProdotto, new Integer(1)); %> <p><b>Prodotto aggiunto al carrello.</b></p> <% } else if (tasto.equals("Totale")) { double totale = 0.0; Enumeration an = session.getAttributeNames(); while (an.hasMoreElements()) { totale += prezzi[Integer.parseInt((String) an.nextElement())]; } %> <p>Totale da pagare: <b>€ <%=totale%></b></p> <% } // endif tasto = Totale } // endif tasto != null %> <hr/> <form action="index.jsp" method="get"> <% for (int i = 0; i < prodotti.length; i++) { %> <input type="radio" name="prodotto" value="<%=i%>"/><%=prodotti[i]%><br/> <b>Prezzo € <%=prezzi[i]%></b><hr/> <% } // endfor %> <input type="submit" name="tasto" value="Aggiungi"/> <input type="submit" name="tasto" value="Totale"/> </form> </body> </html>
MyCD
Studiarsi la struttura della servlet aggiorna realizzata in classe; creare la servlet cancella che serve ad eliminare un record inserendone l’id; creare la servlet che visualizza l’elenco dei record che soddisfano un determinato criterio: ad esempio autore=Beethoven oppure titolo=6 sinfonia (Vedere il n. 5, pag. 343-349 di “Servlet e pagine JSP”)
MyCD (Eclipse).zip (file aggiornato al 16/03/2015)
Correzione della verifica di laboratorio di Informatica
index.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Fiat Chrysler Automobiles</title> </head> <body> <h1>Fiat Chrysler Automobiles</h1> <form action="grafico" method="get"> Inserisci le quotazioni in borsa della settimana: <table cellpadding="2" cellspacing="0" border="0"> <% String[] giorni = {"Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì"}; for (int i = 0; i < 5; i++) { %><tr><td><%=giorni[i]%></td><td><input name="g" type="text" /></td></tr> <% } %></table><input type="submit" value="Invia" /> </form> </body> </html>
servlet: grafico
String[] giorni = {"Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì"}; response.setContentType("image/png"); try (OutputStream os = response.getOutputStream()) { // legge i parametri String[] v = request.getParameterValues("g"); // crea l'immagine BufferedImage img = new BufferedImage(600, 200, BufferedImage.TYPE_INT_RGB); Graphics g = img.createGraphics(); // cancella lo sfondo g.setColor(Color.WHITE); g.fillRect(0, 0, img.getWidth(), img.getHeight()); // inserice il titolo g.setColor(Color.BLACK); g.drawString("Fiat Chrysler Automobiles - quotazioni in borsa della settimana", 20, 20); // disegna l'istogramma for (int i = 0; i < 5; i++) { int val = Integer.parseInt(v[i]); g.setColor(Color.ORANGE); g.fill3DRect(20 + i * 80, 180 - val, 50, val, true); g.setColor(Color.BLACK); g.drawString(" " + giorni[i], 20 + i * 80, 200); g.drawString(" " + val + " punti", 20 + i * 80, 170 - val); } // invia l'immagine in output ImageIO.write(img, "png", os); }
esercizio sql
CREATE TABLE clienti (IdCliente int NOT NULL PRIMARY KEY AUTO_INCREMENT, Cognome varchar[50], Nome varchar[50], Sesso char[1], LuogoNascita varchar[30], DataNascita date, Nazionalità char[2], CodiceFiscale char[16]); INSERT INTO clienti (Cognome, Nome, Sesso, LuogoNascita, DataNascita, Nazionalità, CodiceFiscale VALUES ("Cognome", "Nome", "M", "Città", "2000-01-01", "IT", "AAABBB01A00A000A"); SELECT * FROM clienti WHERE Sesso="F"; SELECT * FROM clienti WHERE DataNascita BETWEEN "1990-00-00" AND "1990-12-31"; SELECT * FROM clienti WHERE Nazionalità="IT"; UPDATE clienti SET Sesso="F" WHERE IdCliente=384; DELETE FROM clienti WHERE Nazionalità="EN";