IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Exécuter une action à la fermeture d'une fenêtre


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier Avatar de wwave
    Inscrit en
    Avril 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2004
    Messages : 190
    Points : 84
    Points
    84
    Par défaut Exécuter une action à la fermeture d'une fenêtre
    Bonjour à tous !

    Je cherche un moyen d'exécuter une action (suppression d'un fichier) lorsqu'on ferme une fenêtre.
    Ma page est une page JSP. Je ne sais pas récupérer l'évènement de fermeture de fenêtre...

    Quelqu'un a une idée :

    Merci !

    WwAvE

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Points : 307
    Points
    307
    Par défaut
    déja il faut capturer l'événement.

    sous IE et en javascript c'est possible grace au code suivant :

    // capture de l'événement fermeture du document
    document.onUnload = fermetureFenetre;

    // methode en cas de fermeture d'une fenetre
    function fermetureFenetre() {
    // code spécifique

    }
    }

    Ensuite il faut lancer le traitement de suppression du fichier ?

    c'est une suppression coté client ou serveur ?

  3. #3
    Membre régulier Avatar de wwave
    Inscrit en
    Avril 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2004
    Messages : 190
    Points : 84
    Points
    84
    Par défaut
    Salut Pietra !!

    C'est une suppression côté serveur.

  4. #4
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Tu peux récupérer un tel évément du côté serveur assez difficilemet.

    Tu peux essayer de faire appel à un URL de ton serveur dans la fonction OnUnload. Je doute que celà fonctionne. Mais tu peux tester et nous faire un retour d'expérience.

    Une possibilité est de travailler avec un SessionListener, quand la session se termine, tu effaces les fichiers liés à cette session.
    Bien le bonjour chez vous
    Jowo

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    Citation Envoyé par jowo
    Tu peux récupérer un tel évément du côté serveur assez difficilemet.

    Tu peux essayer de faire appel à un URL de ton serveur dans la fonction OnUnload. Je doute que celà fonctionne. Mais tu peux tester et nous faire un retour d'expérience.

    Une possibilité est de travailler avec un SessionListener, quand la session se termine, tu effaces les fichiers liés à cette session.
    La deuxieme solution propose par notre ami Jowo fonctionne, j ai deja effectue quelque chose de similaire mais pas avec des fichiers

    Cree toi une classe implementant HttpSessionListener et ensuite active ton filtre via le web.xml de ton appli web

    Bon courage

    Sun Certified Business Component Developer
    Sun Certified Java Programmer
    --
    The definitive toolbox for GWT applications: gwt-toolbox
    My blog about Java and JEE: Benjamin's Blog

  6. #6
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Utiliser la fonction unLoad de document n'est pas la solution. En effet, cet event est appelé chaque fois que le document affiché est "unloadé". Comme par exemple avec un refresh.

    Certains sites utilisent cette technique pour afficher une nouvelle fenêtre quand tu les quittes. Ils utilisent des frames, la fonction unload est assigné au conteneur.
    Bien le bonjour chez vous
    Jowo

  7. #7
    Membre régulier Avatar de wwave
    Inscrit en
    Avril 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2004
    Messages : 190
    Points : 84
    Points
    84
    Par défaut
    J'ai réfléchi au choix que vous proposez : SessionListener. Il n'est pas idéal pour mon application. En effet, j'ai une fenêtre principale ou est affichée une carte dynamique avec des outils de zoom, déplacement dans la carte, etc. Lorsque l'utilisateur clique sur un bouton, j'ai une servlet qui créé l'image égale à celle visualisée dans la fenêtre principale et met son nom (aléatoire) dans une variable de session. Ensuite s'ouvre une popup qui récupère le nom du fichier image à affiché. L'utilisateur peut faire cette action plusieurs fois ce qui entraine la création de plusieurs fichiers mais la variable de session sera égale au dernier fichier créé. Donc si je fonctionne avec un sessionListener je n'effacerais que ce fichier et pas les autres créés lors de la même session.
    J'espère avoir été claire et que vous pourrez m'aider à trouver la meilleure solution...
    Merci!

  8. #8
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Pourquoi ne pas mémoriser dans votre session tous les noms des fichiers créés (une collection de nom de fichiers à effacer quand la session se termine)?
    Bien le bonjour chez vous
    Jowo

  9. #9
    Membre régulier Avatar de wwave
    Inscrit en
    Avril 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2004
    Messages : 190
    Points : 84
    Points
    84
    Par défaut
    je ne sais pas faire d'autres variables de session que nom=valeur.
    Comment créer une variable de session qui est une collection ?

  10. #10
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Un doute me traverse l'esprit. Travailles-tu bien avec un serveur JSP ou avec des servlets?
    Bien le bonjour chez vous
    Jowo

  11. #11
    Membre régulier Avatar de wwave
    Inscrit en
    Avril 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2004
    Messages : 190
    Points : 84
    Points
    84
    Par défaut
    ce que je veux faire actuellement n'a pas de rapport avec les servlets que j'exécute effectivement.
    L'action que je veux faire se trouve dans un fichier JSP.

  12. #12
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Ok, ça me rassure un peu.

    Pour la petite histoire, au final, une page JSP est un servlet.

    Dans une page JSP, tu as l'objet "session". Donc il sufit de:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    openFiles = session.getAttribute("openFiles");
    openFile.add("NomDeMonFichierAEffacer");
    Auparavant où tu initialises ton objet session:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session.setAttributes("openFiles", new Vetcor());
    Et à la fin d'une session, il suffit de parcourir openFiles et d'effacer chaque fichier.
    Bien le bonjour chez vous
    Jowo

  13. #13
    Membre régulier Avatar de wwave
    Inscrit en
    Avril 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2004
    Messages : 190
    Points : 84
    Points
    84
    Par défaut
    autre petite question : il parait que lors de l'appel à la méthode destroyed de sessionListener, la session ne contient plus d'atributs. Est ce exact ?? Si oui, je suis dans le @#! !!

    Dans quel package se trouve cette classe ? quel est le jar que je dois télécharger ? je ne trouve pas...

Discussions similaires

  1. Impossible d'exécuter un traitement à la fermeture d'une Form
    Par NeraOne dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/05/2007, 13h58
  2. Détruire une session à la fermeture d'une fenètre.
    Par dell77 dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 07/12/2006, 17h12
  3. Action à la fermeture d'une JFrame
    Par Heimdal dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 26/04/2006, 18h24
  4. Effectuer une tâche à la fermeture de la fenêtre
    Par onipif dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 27/09/2005, 16h57
  5. executer une fonction à la fermeture d'une fenêtre
    Par Oluha dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 22/02/2005, 09h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo