Fiz um carrinho de compras com sessão , quando insiro um item ou retiro já estou fazendo a baixa e entrada no estoque. Pois assim se outro usuário estiver na aplicação , a quantidade de itens disponíveis vai estar correta.
Minha dificuldade está sendo quando a sessão finaliza e o usuário ainda não finalizou a compra, pois quando a sessão acaba os itens no carrinho de compra saem(ta aqui ok) mas a volta ao estoque não acontece.
Ja tentei implementar o filter mas como eu pego quando antes da sessão finalizar???
Como posso tratar isso?
Cara, não tem jeito, se o usuário fechar o browser, morreu a sessão e você, como quis adiantar serviço, perdeu dados.
Qual a saída?
Colocar o que ele está comprando numa outra tabela, garantindo que a transação só seja concluída quando o usuário finalizar a compra. Ou, caso a sessão caia/expire.
Cara, cookies são utilizados, em geral, para manter informações básicas, por exemplo: usuário visitou em tal dia, visualizou isso, aquilo, etc.
Pela estratégia adotada pelo @Brenno.Coimbra, de atualizar o banco enquanto o usuário adiciona pedidos ao carrinho, os cookies não teriam tanta ação assim. Visto que o principal problema é a perda de sessão sem finalizar/cancelar a compra.
Obrigados amigos, mas achei algo que pode me ajudar, fiz uma classe que implementa o HttpSessionListener e tendo o metodo sessionDestroyed consigo fazer algo para tratar, por exemplo devolver os itens que nao foram comprados para o estoque quando a sessão finalizar.