Carrinho de compras

senhores sou novato em java mas estou com um projeto univercitario para criar um carrinho de compras web e alguma etapas estou com duvidas tipo

-Não permitir duplicar o mesmo item no carrinho. Se usuário clicar mais de uma vez, deve-se ter uma coluna Quantidade no carrinho indicando a quantidade de produtos de um determinado livro

-Botão excluir para cada item do Carrinho

se alguem se interessa desde agradeço

abraços
:wink:

Boa noite Colegas,

Olha double o pessoal do forum é muito prestativo e sempre pronto a ajudar, mas (tem sempre um mas) não são muito adeptos a post´s como esse.
Meu conselho é: coloque dúvidas mais especificas, se estiver com dificuldades em um ponto tenho certeza que muitos ajudarão com seu trabalho univerSitário, mas do jeito que você postou esta praticamente pedindo para fazerem o tal trabalho univerSitário para você.

Coloque o que já fez e onde esta com dúvidas no trabalho univerSitário e com certeza terá muitas respostas.

[]s

P.S. - desculpem repetir tantas vezes trabalho univerSitário… mas não deu para resistir.

ops verdade universitario perdao, vamos la eu estava olhando o projeto e decido fazer um variavel quantidade para q cada produto por exemplo livro q entra no carrinho o sistema avisara a quantidade assim utilizarei um for para fazer tal coisa sendo q forma como fazer esse for esta complicado para min

ah outra coisa eu fiz esse for para ele me dizer o valor total da compra sendo q ele ta somando a mas triplicando praticamente

public double valorTotal(){
for(Produto produto : produtos){
somaTotal = somaTotal + produto.getValor();
}
return somaTotal;
}

Boa noite Galera,

Olha eu acho que você deveria ter as seguinte classes
-Produto
-Carrinho
-ItemCarrinho

(Não sou muito bom em nomes de classes)

Bom, a classe Produto teria os atributos de produto (obvio): id, nome, preco, etc
A classe ItemCarrinho teria um atributo Produto e um atributo quantidade
A classe Carrinho teria um List

Como pode ver, dessa forma você teria no seu Carrinho uma lista com todos os produtos selecionados e a quantidade de cada um, se a pessoa selecionar o produto pela segunda vez, você só tem que localizar esse Produto na lista e fazer ItemCarrinho.addQuantidade

Algo mais ou menos assim.

Dica: quando for postar código coloque entre as tag´s .

Vai postando ai…

estou com as seguintes class AplicacaoListener
Carrinho
Produto
InsereProdutoServlet
ListarProdutosCarrinho
ListarProdutosServlet
SairServlets

falta ainda a class para excluir q ainda tenho q fazer, entao eu posso fazer o quantidade pela list ???

Boa noite Galera,

Olha não sei o como você esta desenvolvendo… mas me parece estranho uma classe do tipo InsereProdutoServlet e ListarProdutoServlet, isso pra mim parece função de um méotodo e não uma classe.

Outra coisa, você tem uma classe Carrinho e uma Produto, mas o que tem dentro delas ?
Onde você vai guardar a quantidade de cada produto selecionado ?

[]s

bom vamos la irei mostra o codigo

public class Produto {
private int codigo;
private String descricao;
private double valor;

public Produto(int codigo, String descricao, double valor) {
    this.codigo = codigo;
    this.descricao = descricao;
    this.valor = valor;
}

public int getCodigo() {
    return codigo;
}

public void setCodigo(int codigo) {
    this.codigo = codigo;
}

public String getDescricao() {
    return descricao;
}

public void setDescricao(String descricao) {
    this.descricao = descricao;
}

public double getValor() {
    return valor;
}

public void setValor(double valor) {
    this.valor = valor;
}

}

public class Carrinho {

private double somaTotal = 0;

private List<Produto> produtos;

public Carrinho() {
    produtos = new ArrayList<Produto>();
}


public void insereProduto(Produto produto){
    produtos.add(produto);
}

public double valorTotal(){
    for(Produto produto : produtos){
     somaTotal = somaTotal + produto.getValor();
    }
    return somaTotal;
}

public List<Produto> getProdutos() {
    return produtos;
}

}

public class AplicacaoListener implements ServletContextListener{

public void contextInitialized(ServletContextEvent event) {
    List<Produto> produtos = new ArrayList<Produto>();
    int proximoCodigo = 1;
    produtos.add(new Produto(proximoCodigo++, "O jogo das marés", 30.0));
    produtos.add(new Produto(proximoCodigo++, "O poderoso chefão", 50.0));
    produtos.add(new Produto(proximoCodigo++, "O Senhor dos Anéis", 150.0));
    produtos.add(new Produto(proximoCodigo++, "Head First Java", 100.0));
    event.getServletContext().setAttribute("produtos", produtos);
}

public void contextDestroyed(ServletContextEvent sce) {

}

}

public class InsereProdutoServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

    int codigo = Integer.parseInt((String)request.getParameter("codigo"));

    List<Produto> produtos = (List<Produto>)getServletContext().getAttribute("produtos");
    Produto produtoAInserir = produtos.get(codigo-1);

    HttpSession secao = request.getSession(true);
    Carrinho carrinho = (Carrinho)secao.getAttribute("carrinho");
    if (carrinho == null){
        carrinho = new Carrinho();
        secao.setAttribute("carrinho", carrinho);
    }
    carrinho.insereProduto(produtoAInserir);
    RequestDispatcher dispatcher = request.getRequestDispatcher("listarcarrinho.do");
    dispatcher.forward(request, response);
} 

}

public class ListarProdutosServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

    List<Produto> produtos = (List<Produto>)getServletContext().getAttribute("produtos");
    PrintWriter saida = response.getWriter();
    saida.write("<html><body>");
    saida.write("<table border=1>");
    saida.write("<tr><td>Código</td><td>Descrição</td><td>Valor</td></tr>");
    for(Produto produto: produtos){
        saida.write("<tr><td>");
        saida.write("" + produto.getCodigo());
        saida.write("</td>");
        saida.write("<td>");
        saida.write("<a href=inserirproduto.do?codigo=" + produto.getCodigo()+ ">" + produto.getDescricao() + "</a>");
        saida.write("</td><td>");
        saida.write("" + produto.getValor());
        saida.write("</td></tr>");
    }
    saida.write("</body>");
    saida.write("</html>");
    saida.flush();
    saida.close();

} 

}

Boa noite Galera,

Amigo edita aí e coloca o código entre as a tag´s code

[]s