Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 30th, 2012  |  syntax: None  |  size: 5.33 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. package listener;
  2.  
  3.  
  4. import java.util.ArrayList;
  5. import java.util.Date;
  6. import java.util.Enumeration;
  7. import java.util.Locale;
  8.  
  9. import javax.servlet.http.HttpSession;
  10. import javax.servlet.http.HttpSessionActivationListener;
  11. import javax.servlet.http.HttpSessionAttributeListener;
  12. import javax.servlet.http.HttpSessionBindingEvent;
  13. import javax.servlet.http.HttpSessionBindingListener;
  14. import javax.servlet.http.HttpSessionEvent;
  15. import javax.servlet.http.HttpSessionListener;
  16.  
  17.  
  18. import modele.BeanBillet;
  19. import modele.BeanRepresentation;
  20. import modele.BeanSpectacle;
  21. import modele.DelegateRepresentation;
  22. import modele.DelegateSpectacle;
  23. import modele.MessageException;
  24.  
  25.  
  26. /**
  27.  * Application Lifecycle Listener implementation class SessionListen
  28.  *
  29.  */
  30. public class SessionListen implements HttpSessionListener,
  31.                 HttpSessionAttributeListener, HttpSessionActivationListener,
  32.                 HttpSessionBindingListener {
  33.  
  34.         private static final String PATH_IMAGE= "images/";
  35.  
  36.        
  37.         /**
  38.          * Default constructor.
  39.          */
  40.         public SessionListen() {
  41.                 // TODO Auto-generated constructor stub
  42.         }
  43.  
  44.         static Locale locale = Locale.getDefault();
  45.         static Date actuelle = new Date();
  46.  
  47.         /**
  48.          * @see HttpSessionAttributeListener#attributeRemoved(HttpSessionBindingEvent)
  49.          */
  50.         public void attributeRemoved(HttpSessionBindingEvent arg0) {
  51.                 // TODO Auto-generated method stub
  52.         }
  53.  
  54.         /**
  55.          * @see HttpSessionAttributeListener#attributeAdded(HttpSessionBindingEvent)
  56.          */
  57.         public void attributeAdded(HttpSessionBindingEvent arg0) {
  58.                 // TODO Auto-generated method stub
  59.         }
  60.  
  61.         /**
  62.          * @see HttpSessionBindingListener#valueUnbound(HttpSessionBindingEvent)
  63.          */
  64.         public void valueUnbound(HttpSessionBindingEvent arg0) {
  65.                 // TODO Auto-generated method stub
  66.         }
  67.  
  68.         /**
  69.          * @see HttpSessionActivationListener#sessionDidActivate(HttpSessionEvent)
  70.          */
  71.         public void sessionDidActivate(HttpSessionEvent arg0) {
  72.                 // TODO Auto-generated method stub
  73.         }
  74.  
  75.         /**
  76.          * @see HttpSessionActivationListener#sessionWillPassivate(HttpSessionEvent)
  77.          */
  78.         public void sessionWillPassivate(HttpSessionEvent arg0) {
  79.                 // TODO Auto-generated method stub
  80.         }
  81.  
  82.         /**
  83.          * @see HttpSessionBindingListener#valueBound(HttpSessionBindingEvent)
  84.          */
  85.         public void valueBound(HttpSessionBindingEvent arg0) {
  86.                 // TODO Auto-generated method stub
  87.         }
  88.  
  89.         /**
  90.          * @see HttpSessionAttributeListener#attributeReplaced(HttpSessionBindingEvent)
  91.          */
  92.         public void attributeReplaced(HttpSessionBindingEvent arg0) {
  93.                 // TODO Auto-generated method stub
  94.         }
  95.  
  96.         /**
  97.          * @see HttpSessionListener#sessionCreated(HttpSessionEvent)
  98.          */
  99.         public void sessionCreated(HttpSessionEvent arg0) {
  100.                 // TODO Auto-generated method stub
  101.                 System.out.println("Session Created");
  102.         }
  103.  
  104.         /**
  105.          * @see HttpSessionListener#sessionDestroyed(HttpSessionEvent)
  106.          */
  107.         public void sessionDestroyed(HttpSessionEvent arg0) {
  108.                 // TODO Auto-generated method stub
  109.  
  110.                 //reception de l'argument
  111.                 HttpSession session = arg0.getSession();
  112.  
  113.                 //Si la session contient des billets, on les remets dans la BD
  114.                 if (lectureBillets(session) != null) {
  115.                         ArrayList<BeanBillet> listeBillet = lectureBillets(session);
  116.                         for (int i = 0; i < listeBillet.size(); i++) {
  117.                                 ChangerNombreBilletsPlus(listeBillet.get(i));
  118.                         }
  119.                 }
  120.                
  121.                 //Destruction de la session
  122.                 session.invalidate();
  123.                 // Il faut aussi faire session.invalidate()
  124.                 System.out.println("Session Destroyed");
  125.         }
  126.  
  127.         public ArrayList<BeanBillet> lectureBillets(HttpSession session2) {
  128.                 ArrayList<BeanBillet> lesBillets = new ArrayList<BeanBillet>();
  129.  
  130.                 // Démarer une session de réservation de billets.
  131.                 HttpSession session = session2;
  132.  
  133.                 if (session.getAttribute("IP") == null) {
  134.                         System.out.println("Il n'y a rien dans le panier d'achat");
  135.                         return null;
  136.                 }
  137.  
  138.                 if (session.getAttribute("IP") != null) {
  139.  
  140.                         // On parcourt maintenant le contenu de notre objet session
  141.                         Enumeration<?> e = session.getAttributeNames();
  142.                         while (e.hasMoreElements()) {
  143.                                 String key = (String) e.nextElement();
  144.                                 //Si le nom d'une key contient Billet
  145.                                 if (key.contains("Billet")) {
  146.                                         lesBillets.add((BeanBillet) session.getAttribute(key));
  147.                                 }
  148.                         }
  149.  
  150.                 }
  151.                 return lesBillets;
  152.         }
  153.  
  154.         public void ChangerNombreBilletsPlus(BeanBillet unBillet) {
  155.                 ArrayList<BeanRepresentation> listeRepresentations;
  156.                 ArrayList<BeanSpectacle> listeSpectacle;
  157.  
  158.                 try {
  159.                         listeRepresentations = DelegateRepresentation
  160.                                         .obtenirRepresentations(PATH_IMAGE);
  161.                         listeSpectacle = DelegateSpectacle.obtenirSpectacles(PATH_IMAGE);
  162.                         for (int i = 0; i < listeRepresentations.size(); i++) {
  163.                                 //Si nous sommes rendu à la même représentation du même spectacle
  164.                                 if (listeRepresentations.get(i).getIdSpectacle() == unBillet
  165.                                                 .getIdSpectacle()
  166.                                                 && listeRepresentations.get(i).getIdRepresentation() == unBillet
  167.                                                                 .getIdRepresentation()) {
  168.                                         //On ajoute les billets qui étaient réservés à la BD ( ou dans le XML dans notre cas)
  169.                                         listeRepresentations.get(i).setNbBilletDispo(
  170.                                                         listeRepresentations.get(i).getNbBilletDispo()
  171.                                                                         + unBillet.getNombre());
  172.                                 }
  173.                         }
  174.                         //On réécris dans la BD la donnée ( ou dans le XML dans notre cas)
  175.                         DelegateRepresentation.ecrireNbBilletsDispo(listeSpectacle,
  176.                                         listeRepresentations);
  177.  
  178.                 } catch (MessageException e) {
  179.                         // TODO Auto-generated catch block
  180.                         e.printStackTrace();
  181.                 }
  182.  
  183.         }
  184.  
  185. }