Ho trovato questo script su internet e anche se non riguarda vini ho provato a lanciarlo cn Eclipse x Java EE e Tomcat emi da errore sul bean
file Carrello.java
codice:
package mybean; import java.beans.*; import java.io.Serializable; import java.util.Hashtable; import java.util.Enumeration; /** * * @author Roberto Iula */ public class Carrello implements Serializable { public static final String PROP_SAMPLE_PROPERTY = "sampleProperty"; private String sampleProperty; private PropertyChangeSupport propertySupport; //variabile di tipo Hashtable utilizzata per emorizzare gli elementi presenti nel carrello protected Hashtable cd = new Hashtable(); //varibile intera utilizzata per la memorizzazione del numero di CD attualmente nel carrello private int numCd; public Carrello() { propertySupport = new PropertyChangeSupport(this); numCd=0; } public String getSampleProperty() { return sampleProperty; } public void setSampleProperty(String value) { String oldValue = sampleProperty; sampleProperty = value; propertySupport.firePropertyChange(PROP_SAMPLE_PROPERTY, oldValue, sampleProperty); } public void addPropertyChangeListener(PropertyChangeListener listener) { propertySupport.addPropertyChangeListener(listener); } public void removePropertyChangeListener(PropertyChangeListener listener) { propertySupport.removePropertyChangeListener(listener); } //metodo per ottenere il numero di CD attualmente nel carrello public int totCD(){ return numCd; }//numCD // Inserimento di cd nel carrello // I: id: indice chiave di identificazione del CD // art: nome dell'artista // tit: titolo dell'album // prezzo: prezzo del CD public void aggiungiCd (String id, String art, String tit, float prezzo){ //inserimento in un vettore di stringhe degli attributi del CD appena inserito nel carrello //è inserito inoltre il numero di CD di quel tipo ordinati String[] dati_cd= {art, tit, Float.toString(prezzo) , "1", id}; numCd++; //se il CD è non già stato ordinato if (!cd.containsKey(id)) { //inserisci il CD nel carrello cd.put(id, dati_cd); }//if //altrimenti else { //incrementa il numero di CD di quel tipo ordinati int tmp; String[] datiTemp = (String[])cd.get(id); tmp = Integer.parseInt(datiTemp[3]); tmp++; datiTemp[3]=Integer.toString(tmp); cd.put(id, datiTemp); }//else }//aggiungiCd //Metodo di rimozione dal carrello di un CD //I: id: indice del CD da rimuovere public void rimuoviCd (String id) { //se il CD è presente nel carrello if (cd.containsKey(id)) { //decrementa il numero di CD numCd--; String[] temp = (String[])cd.get(id); //se il CD è presente in copia singola if (Integer.parseInt(temp[3]) == 1) //elimina il CD dal carrello cd.remove(id); //altrimenti else { //decrementa il numero di copie di quel CD ordinate int tmp = 0; String[] datiTemp = (String[])cd.get(id); tmp = Integer.parseInt(datiTemp[3]); tmp--; datiTemp[3]=Integer.toString(tmp); cd.put(id, datiTemp); }//else }//if }//rimuoviCd //Metodo per la creazione di un oggetto Enumeration utilizzato per scorrere //velocemente gli elementi nel carrello public Enumeration enumera() { return cd.elements(); }//enum //Metodo che restituisce il prezzo totale dei CD inseriti nel carrello fino adesso public float spesaTot(){ float tot = 0.00f; String[] temp; //crea l'oggetto Enumeration Enumeration i = this.enumera(); //finchè ci sono elementi nel carrello while (i.hasMoreElements()){ temp = (String[])i.nextElement(); //incrementa la spesa totale del prezzo del CD corrente tot += (Float.parseFloat(temp[2]) * Integer.parseInt(temp[3])); }//while return tot; }//spesaTot //Metodo che restituisce il prezzo di un CD moltiplicato per il numero delle //copie ordinate I: id:indice del CD public float prezzo(String id){ String[] temp; float tmp=0.0f; temp = (String[])cd.get(id); tmp = Float.parseFloat(temp[2]) * Integer.parseInt(temp[3]); return tmp; }//prezzo }
file index.jsp
codice:
<%@page contentType="text/html" pageEncoding="UTF-8"%> <%@page language="java" import="mybean.Carrello"%> <%@page language="java" import="javax.servlet.*"%> <%@page language="java" import="javax.servlet.http.*"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD> <TITLE>Supermarket On-line</TITLE> </HEAD> <BODY bgcolor="#33CCCC" text="#000099" vlink="#990099" alink="#000099"> <!-istanziazione del bean Carrello.jsp, con ambito session --> <jsp:useBean id="Carrello" scope="session" class="mybean.Carrello" /> <% //Carrello car; String id = request.getParameter("id"); /*session=request.getSession(); if (session.isNew()) { car=new Carrello(); session.setAttribute("Carrello",car); } else car=(Carrello) session.getAttribute("Carrello");*/ //se � stato aggiunto un CD al carrello if (id != null) { //acquisisci i dati del CD String prodotto=request.getParameter("Prodotto"); String descrizione=request.getParameter("Descrizione"); float prezzo = Float.parseFloat(request.getParameter("Prezzo")); //e aggiungilo al carrello Carrello.aggiungiCd (id, prodotto, descrizione, prezzo); }//if %> <font face="Verdana" size="6"> <center> CATALOGO PRODOTTI A DISPOSIZIONE
</center> </font> <font face="Verdana" > Quantit attualmente nel carrello: <%= Carrello.totCD() %>
<center> <table width="60%" border="1" align="center" bordercolorlight="#990099" bordercolordark="#990099"> <tr> <th>Prodotto</th> <th>Descrizione</th> <th>Prezzo</th> </tr> <tr> <form action="index.jsp" method="post"> <td>Caffe'</td> <td>kimbo 750 gr.</td> <td>25.00</td> <td><center><input type="submit" name="acquista" value="Aggiungi al carrello"></center></td> <input type="hidden" name="id" value="1"> <input type="hidden" name="Prodotto" value="Caffe'"> <input type="hidden" name="Descrizione" value="Kimbo 750 gr."> <input type="hidden" name="Prezzo" value="25.00"> </form> <td> </tr> <tr> <form action="index.jsp" method="post"> <td>Frutta</td> <td>mele melinda</td> <td>35.00</td> <td><center><input type="submit" name="acquista" value="Aggiungi al carrello"></center></td> <input type="hidden" name="id" value="2"> <input type="hidden" name="Prodotto" value="Frutta"> <input type="hidden" name="Descrizione" value="mele melinda"> <input type="hidden" name="Prezzo" value="35.00"> </form> <td> </tr> <tr> <form action="index.jsp" method="post"> <td>Liquori</td> <td>vodka al melone</td> <td>35.00</td> <td><center><input type="submit" name="add" name="acquista" value="Aggiungi al carrello"></center></td> <input type="hidden" name="id" value="3"> <input type="hidden" name="Prodotto" value="Liquori"> <input type="hidden" name="Descrizione" value="vodka al melone"> <input type="hidden" name="Prezzo" value="35.00"> </form> <td> </tr> </table> </center> </font> </BODY> </HTML>
file VisCarr.jsp
codice:
<%@page contentType="text/html" pageEncoding="UTF-8"%> <%@page language="java" import="mybean.Carrello"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@ page import="java.util.*" %> <%@ page import="java.lang.*" %> <jsp:useBean id="Carrello" scope="session" class="mybean.Carrello" /> <HTML> <HEAD> <TITLE>Carrello della spesa</TITLE> </HEAD> <BODY bgcolor="#33CCCC" text="#000099" vlink="#990099" alink="#000099"> <% //Carrello car= (Carrello) session.getAttribute("Carrello"); String idtmp = request.getParameter("idtmp"); //se � stato eliminato un CD dal carello if (idtmp != null){ Carrello.rimuoviCd(idtmp); //session.setAttribute("Carrello", car); }//if %> <font face="Verdana" size="6"> <center> CARRELLO </center> </font>
<font face="Verdana"> Quantit� attualmente nel carrello: </font>
<center> <table width="60%" border="1" align="center" bordercolorlight="#990099" bordercolordark="#990099"> <tr> <th>Prodotto</th> <th>Descrizione</th> <th>Prezzo (L.)</th> <th>Quantit�</th> </tr> <% //creazione di un oggetto Enumeration Enumeration ogg = Carrello.enumera(); String[] temp; //finch� ci sono elementi nel carrello while (ogg.hasMoreElements()){ temp= (String[])ogg.nextElement(); %> <tr> <td><%= temp[0] %></td> <td><%= temp[1] %></td> <td><%= Carrello.prezzo(temp[4])%></td> <td><%=temp[3] %></td> <td><center></center></td> <td><center> <form action="VisCarr.jsp" method="post" /> <input type="submit" name="elimina" value="elimina" /></center></td> <input type="hidden" name="idtmp" value="<%= temp[4]%>" /> <td> </tr> <% }//while %> <tr> <td></td> <td>Tot</td> <td><%= Carrello.spesaTot()%></td> <td><center><%= Carrello.totCD()%></center></td> </tr> </table> <font size="2"> [ Indietro ] </font> </center> </BODY> </HTML>