Panier avec session
Fermé
a_developper
Messages postés
36
Date d'inscription
jeudi 20 avril 2017
Statut
Membre
Dernière intervention
14 juin 2017
-
Modifié le 11 mai 2017 à 11:54
a_developper Messages postés 36 Date d'inscription jeudi 20 avril 2017 Statut Membre Dernière intervention 14 juin 2017 - 15 mai 2017 à 21:38
a_developper Messages postés 36 Date d'inscription jeudi 20 avril 2017 Statut Membre Dernière intervention 14 juin 2017 - 15 mai 2017 à 21:38
bonjour ,
un client sans faire l'authentification peux remplir le panier (table dans base de données) , j'ai une méthode qui vide le panier mais je sais pas comment je vais l'appelé quand session se ferme , svp vos aides
un client sans faire l'authentification peux remplir le panier (table dans base de données) , j'ai une méthode qui vide le panier mais je sais pas comment je vais l'appelé quand session se ferme , svp vos aides
A voir également:
- Panier avec session
- Aliexpress mon panier ✓ - Forum Consommation & Internet
- Teamviewer code de session expiré ✓ - Forum Windows XP
- Associez chaque situation à l’action la plus appropriée en matière de sécurité informatique : verrouiller la session, quitter la session, ne rien faire ou éteindre l'ordinateur. - Forum MacOS
- Facebook session expirée ✓ - Forum Facebook
- Mon panier cdiscount - Forum Réseaux sociaux
3 réponses
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
11 mai 2017 à 13:57
11 mai 2017 à 13:57
Bonjour,
Pourquoi enregistrer le panier en base de données ?
Si le but de ton panier est d'être supprimé à la fin de la session, tu devrais le stocker dans la session, quand elle sera supprimée toutes ses données seront supprimées avec elle, notamment le panier.
Au delà de ça, pour répondre techniquement à ta question, tu peux utiliser HttpSessionBindingListener pour être notifié d'un événement dans la session, comme l'ajout/suppression de valeurs dans la session (sachant que toutes les valeurs sont supprimées à la destruction de la session).
Pourquoi enregistrer le panier en base de données ?
Si le but de ton panier est d'être supprimé à la fin de la session, tu devrais le stocker dans la session, quand elle sera supprimée toutes ses données seront supprimées avec elle, notamment le panier.
Au delà de ça, pour répondre techniquement à ta question, tu peux utiliser HttpSessionBindingListener pour être notifié d'un événement dans la session, comme l'ajout/suppression de valeurs dans la session (sachant que toutes les valeurs sont supprimées à la destruction de la session).
a_developper
Messages postés
36
Date d'inscription
jeudi 20 avril 2017
Statut
Membre
Dernière intervention
14 juin 2017
15 mai 2017 à 14:12
15 mai 2017 à 14:12
j'ai essayé mais pas de résultat :'(
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
15 mai 2017 à 16:57
15 mai 2017 à 16:57
Voici un exemple que je viens de tester, cela illustre exactement ce que j'ai pu dire ci-dessus, à savoir l'ajout d'un attribut d'un objet HttpSessionBindingListener qui sera appelé à sa création et sa suppression.
Pour l'exemple j'ai configuré la durée de la session à 30 secondes, lors de l'appel de la servlet on voit donc le message de création de session puis 30 secondes plus tard le message de suppression.
Pour l'exemple j'ai configuré la durée de la session à 30 secondes, lors de l'appel de la servlet on voit donc le message de création de session puis 30 secondes plus tard le message de suppression.
mai 15, 2017 4:51:11 PM ccm.kx.TestServlet$1 valueBound
INFOS: Création de la session z2ljj7v394qk12r0n1o9eq264
mai 15, 2017 4:51:41 PM ccm.kx.TestServlet$1 valueUnbound
INFOS: Suppression de la session z2ljj7v394qk12r0n1o9eq264
package ccm.kx; import java.util.logging.*; import javax.servlet.http.*; public class TestServlet extends HttpServlet { private static final long serialVersionUID = 1; @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); session.setMaxInactiveInterval(30); // 30 secondes session.setAttribute("_binding_listener", new HttpSessionBindingListener() { @Override public void valueBound(HttpSessionBindingEvent event) { Logger.getGlobal().log(Level.INFO, "Création de la session " + event.getSession().getId()); } @Override public void valueUnbound(HttpSessionBindingEvent event) { Logger.getGlobal().log(Level.INFO, "Suppression de la session " + event.getSession().getId()); } }); } }
a_developper
Messages postés
36
Date d'inscription
jeudi 20 avril 2017
Statut
Membre
Dernière intervention
14 juin 2017
15 mai 2017 à 21:38
15 mai 2017 à 21:38
ok je vais essayer tout de suite
11 mai 2017 à 14:27
11 mai 2017 à 15:32
11 mai 2017 à 18:01
11 mai 2017 à 21:14