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
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
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 ?
Salut Pietra !!
C'est une suppression côté serveur.
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
La deuxieme solution propose par notre ami Jowo fonctionne, j ai deja effectue quelque chose de similaire mais pas avec des fichiersEnvoyé par jowo
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
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
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!
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
je ne sais pas faire d'autres variables de session que nom=valeur.
Comment créer une variable de session qui est une collection ?
Un doute me traverse l'esprit. Travailles-tu bien avec un serveur JSP ou avec des servlets?
Bien le bonjour chez vous
Jowo
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.
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:
Auparavant où tu initialises ton objet session:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 openFiles = session.getAttribute("openFiles"); openFile.add("NomDeMonFichierAEffacer");
Et à la fin d'une session, il suffit de parcourir openFiles et d'effacer chaque fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part session.setAttributes("openFiles", new Vetcor());
Bien le bonjour chez vous
Jowo
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...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager