Qual a forma mais prática de se fazer um carrinho de compras?
Pensei em criar na sessão 2 variaveis, id_produto, qt_produto, para guardar o id do produto e quantidade que o cliente vai comprar, o problema é quando o cliente adicionar o segundo produto ao carrinho…
Tem como adicionar ao id_produto, oque ja contem nele, mais o id do outro produto separado por #? ficando tipo assim: 365#265#336
Depois tem alguma função para separar os id’s??
no php tem a função explode(’#’,$id_produto)
um exemplo simples de carrinho de compras que vc anexa ao objeto
Session ( usando Servlet’s é claro )
publicclassCarrinhoimplementsSerializable{privateHashtableitens;publicCarrinho(){itens=newHashtable();}publicvoidAdicionaItem(ItemCarrinhoitem){itens.put(String.valueOf(item.getID),item);}publicEnumerationgetEnumeration(){itens.elements();}publicItemCarrinhosearchItem(intitemID){return(ItemCarrinho)itens.get(String.valueOf(itemID));}// outros metodos de serviço ....}publicclassItemCarrinhoimplementsSerializable{privateintID;privateintqtd;publicItemCarrinho(intID,intqtd){this.ID=ID;this.qtd=qtd;}publicintgetID(){returnID;}publicintgetQtd(){returnqtd;}publicintsetQtd(intnewQtd){qtd=newQtd;}}
assim vc pode separar os dados sobre os itens do carrinho e tambem ter um conceito de carrinho, pois os itens vão estar contidos dentro de um carrinho, nada mais simples. As classes implementam Serializable , pois precisar se anexadas ao objeto Session do ServletRequest.
Espero q te ajude a iniciar.
[]'s
Claudio Gualberto.
Guilherme_Silveira
Fungindo do escopo, tomar muito cuidado com a orientacao a objeto e padroes :), nome de metodo comeca com letra minuscula, e o metodo getEnumeration deve se chamar getItems ou algo do genero afinal o carrinho pode ter outras funcionalidades que tambem precise retornar uma lista.
Voltando ao assunto do topico, as classes nao precisam implementar Serializable para ser anexadas ao objeto Session. O objeto session possui um mapa normal, entao nao eh necessario nada de especial
Exitem milhares de jeitos de implementar um carrinho, e o melhor em java - na minha opiniao, eh criar um objeto que representa ocarrinho e anexa-lo ao session (assim como o Claudio fez).