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

Struts 1 Java Discussion :

onexecute: exécuter du code une seule fois


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Architecte de système d’information
    Inscrit en
    Septembre 2005
    Messages
    236
    Détails du profil
    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Septembre 2005
    Messages : 236
    Points : 67
    Points
    67
    Par défaut onexecute: exécuter du code une seule fois
    Bonjour,

    J'ai du code dans ma méthode onexecute (dans ma classe action) que je voudrais exécuter une seule fois tout au long de la session, un truc du genre static {...}, auriez-vous une idée de coment je pourrais m'y prendre?


    Merci

  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Pourquoi ne pas le mettre dans execute de l'action de connexion ? Normalement, une telle action n'est appelée qu'une seule fois pour chaque session.

  3. #3
    Membre du Club
    Architecte de système d’information
    Inscrit en
    Septembre 2005
    Messages
    236
    Détails du profil
    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Septembre 2005
    Messages : 236
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par Modjo
    Pourquoi ne pas le mettre dans execute de l'action de connexion ? Normalement, une telle action n'est appelée qu'une seule fois pour chaque session.
    je vois pas de quel action tu parles, elle s'appelle comment?

  4. #4
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Ca dépend (RQ: Je parles pas d'une action prédefinie ou quelque chose de la sorte).

    Tu veux avoir un code à exécuter une seule fois par session : deux cas se présentent :
    - ou bien tu un mécanisme de connexion: un formulaire (login +mdp) et une action qui valide l'opération
    - ou bien pas de mecanisme de connexion, mais ton site à bien un point d'entrée (index.jsp)

    dans le premier cas, l'action qui valide la connexion de l'utilisateur n'est exécuté qu'une seule fois tout au long de la visite de l'utilisateur (== session)

    Dans le second cas, tu peux invoquer un globalForward vers une action qui exécute ton code d'initialisation et qui redérige l'utilisateur vers le contenu du site.

    J'espère que c'est plus clair maintenant !

  5. #5
    Membre du Club
    Architecte de système d’information
    Inscrit en
    Septembre 2005
    Messages
    236
    Détails du profil
    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Septembre 2005
    Messages : 236
    Points : 67
    Points
    67
    Par défaut
    Bonjour,

    Merci, oui c'est plus clair maintenant, je vais plutôt essayer la deuxième option, étant donné que le module d'authentification de mon appli est un module à part que e ne pourrai modifier.

  6. #6
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut
    Pour une Servlet, la méthode init() permet d'exécuter un code une fois et une seule fois pendant tout son cycle de vie.

    Ce type de méthode doit donc exister pour les Action : une recherche de ce côté là peut donc être très intéressante.
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

  7. #7
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Euh, init c'est une seule fois pour le cycle de vie d'une Servlet, pas d'une Session, or le besoin ici c'était par session ...

  8. #8
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut
    Oui, c'est exact mais tu peux exécuter une Action à l'ouverture d'une session.
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

  9. #9
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Sinon, tu peux créer un objet étendant HttpSessionBindingListener et définir la méthode valueBound (et éventuellement valueUnbound)
    valueBound sera appelé quand tu mets l'objet en session (donc une fois)

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Executer une partie du code une seul fois
    Par oami89 dans le forum VB.NET
    Réponses: 2
    Dernier message: 11/05/2011, 20h06
  2. code qui s'exécute une seule fois
    Par sam01 dans le forum Langage
    Réponses: 7
    Dernier message: 04/06/2010, 17h12
  3. Réponses: 0
    Dernier message: 26/10/2007, 15h22
  4. [Configuration] filtrer le flux sortant une seule fois, en debut de code...
    Par misstinkiete dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 13/10/2005, 21h20
  5. Réponses: 1
    Dernier message: 19/03/2005, 22h47

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