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 :

Synchronisation et useBean


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut Synchronisation et useBean
    Bonjour,

    Doit-on synchroniser une méthode d'un bean (jsp:useBean) qui modifie une variable de classe privée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     private int code = 0;
     
       public synchronized int getCode() {
            try {
    ...
        return code
    merci de votre aide

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    A priori non, à moins que l'instance soit de scope "application".
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    Bonjour et merci OButterlin
    Peux tu s'il te plait m'apporter une précision.
    D'après ce que je sais...une jsp devient une servlet après compilation.
    Or même si le scope est request, plusieurs threads (requete http simultanées...)ne pourraient-il pas accèder à la même variable contenue dans le useBean intégéré à la JSP?

    Ton "a priori non" signifie -t-il qu'il est peu probable que cela se produise ?


    Merci de ton aide

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Tout va dépendre de la manière de faire mais généralement, il n'y a pas de risque.
    Chaque thread va créer une instance de l'objet et l'envoyer via request.setAttribute(...).
    Dans le cas du scope session, on est bien lié à un utilisateur (en théorie), donc pas plus de problème.
    Mais si pour une raison quelconque tu as codé un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    class MaServlet extends HttpServlet
    {
       private MonBean monBean = new MonBean();
     
       public void service(HttpServletRequest request, HttpServletResponse response)
       {
          ...
          request.setAttribute("MonBean", monBean);
    OU
          request.getSession().setAttribute("MonBean", monBean);
       }
    }
    là, oui, il y a problème !

    Il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class MaServlet extends HttpServlet
    {
       public void service(HttpServletRequest request, HttpServletResponse response)
       {
          MonBean monBean = new MonBean();
           ...
          request.setAttribute("MonBean", monBean);
       }
    }
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     class MaServlet extends HttpServlet
     {
        public void service(HttpServletRequest request, HttpServletResponse response)
        {
          MonBean monBean = (MonBean)request.getSession().getAttribute("MonBean");
          if (monBean == null)
          {
             monBean = new MonBean();
             request.getSession().setAttribute("MonBean", monBean);
          }
           ...
       }
     }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. synchronisation de deux DBLookUPComboBox
    Par frede dans le forum Bases de données
    Réponses: 2
    Dernier message: 20/02/2004, 08h32
  2. Synchronisation de thread
    Par declencher dans le forum Langage
    Réponses: 2
    Dernier message: 07/01/2004, 10h28
  3. Probleme Synchronisation modem Sagem Fast 800
    Par -PiKo- dans le forum Matériel
    Réponses: 4
    Dernier message: 03/01/2004, 15h36
  4. Synchronisation verticale
    Par hs_dino dans le forum OpenGL
    Réponses: 2
    Dernier message: 28/09/2003, 09h35
  5. Synchronisation de base de données locale/distante Internet
    Par StefC30 dans le forum Développement
    Réponses: 3
    Dernier message: 25/07/2003, 14h47

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