Carrinho compras JSP + MySQL

Boa tarde, estou desenvolvendo um site de compra como trabalho de facul e estou com dificuldade para faze a loja virtual. Eu criei a vitrine com os produtos puxando as informações direto do banco de dados, e gostaria de saber qual o melhor procedimento para seguir quando for clicado no botão “comprar”, estou sem ideias pois preciso registrar essas informações para ter um histórico de compras do cliente.
Gostaria que auguem me ajudace a entender como tem q funcionar esta parte, tenho q criar uma tabela no banco para as compras finalizadas e relacionalas com o usuário?
tenho q trabalhar com cookies?

Agradeço desde já.

Olá,tudo beleza? cara,primeiro,o “visitante” não vai comprar um produto só certo? pra isso que existe o carrinho de compras,que você já sabe que tem que fazer rs,enfim,o carrinho de compras pode ser feito de varias formas,uma forma que eu achei relativamente facil de fazer foi colocando o carrinho de compras na sessão,ele na verdade é um ArrayList de uma classe chamada item,essa classe item nada mais é que produtos,porém eu calculo antes de adicionar no arrayList o preço que no caso é o valor do produto multiplicado pela quantidade que o usuario vai escolher,ai eu armazendo esse produto com o preço total e quantidade no item e adiciono o item no ArrayList carrinho de compras ou items,se preferir,
quando o cara clicar para finalizar a compra eu vou pegar esses items e adicionar na sua respectiva tabela,a tabela items,essa tabela items é relacionada com a tabela compras para eu saber de qual compra esses items pertencem,ou seja,não lembro exatamente como fiz porem tabela produto é ligada com tabela items que é ligada com a tabela compra,se você ligar
a tabela compra com o cliente,você vai poder exibir as compras de um cliente especifico,ou seja , o historico do seu sistema! acho que já falei demais né !
Boa sorte ai