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 :

[SERVLET] cycle de vie


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué Avatar de XristofGreek
    Inscrit en
    Août 2004
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 164
    Points : 174
    Points
    174
    Par défaut [SERVLET] cycle de vie
    Bonjour,

    J'ai lu quelque part que : "tant que la méthode init() d'une servlet n'est pas terminée toute requête est mise en attente"
    Ma question est la suivante : comment fait le conteneur ?
    • est ce que c'est toute les requêtes qui sont mises en attentes (même celle destinée vers une autre servlet)

    ou
    • c'est seulement les requêtes qui sont destinées à la servlet dont l'init() est en cours d'execution qui sont mises en attente.


    Après quelques tests j'ai l'impression que c'est la réponse 1 qui est correcte mais çà me semble vraiment étrange comme comportement alors peut-être que mes tests sont pas faits correctement. Pouvez vous m'éclairer ?
    les gens qui s'ennuient sont des gens sans imagination.

  2. #2
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    A chaque fois qu'un client sollicite une servlet le conteneur initialise une servlet dans son pool qu'il alloue au client, donc pour toutes les requetes du meme client sollicitant cette servlet c'est la meme qui est appellée du pool du conteneur, ceci garantit l'unicité des opérations du client.
    L'init() c simplement l'opération qui est appelée en premier quand la servlet est sollicitée.
    Pour plus de clarté fais juste une petite recherche google sur le cycle de vie de la servlet tu comprendras mieux les choses.
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  3. #3
    Membre habitué Avatar de XristofGreek
    Inscrit en
    Août 2004
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 164
    Points : 174
    Points
    174
    Par défaut
    Merci de bien lire la question avant de répondre. En plus ta réponse est incorrecte :
    L'init() c simplement l'opération qui est appelée en premier quand la servlet est sollicitée.
    l'init n'est pas appelé à chaque sollicitation de la servlet mais uniquement lors de sa création. donc :

    Pour plus de clarté fais juste une petite recherche google sur le cycle de vie de la servlet tu comprendras mieux les choses.
    les gens qui s'ennuient sont des gens sans imagination.

  4. #4
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    T'as du bien comprendre que je parlais de l'initialisation de la servlet .
    De toutes façons ta remarque n'a rien à voir avec la réponse à ta question posée.
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  5. #5
    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
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Pour la question initiale...

    Si tu précises dans le web.xml que la servlet est à démarrage automatique
    (<load-on-startup>) et que ta servlet boucle dans la méthode init(ServletConfig config), tu vas verrouiller le serveur dans sa phase d'initialisation et il ne répondra à aucune requête.

    Sans <load-on-startup>, la servlet ne répondra pas, mais les autres : si

    C'est du moins comme ça que ça fonctionne avec Tomcat, mais rien ne dit qu'un autre conteneur ne réagira pas autrement.

    Ça répond à ta question ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre habitué Avatar de XristofGreek
    Inscrit en
    Août 2004
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 164
    Points : 174
    Points
    174
    Par défaut
    Merci OButterlin, çà répond tout à fait à ma question.
    Malheureusement c'est justement ce comportement que je trouve étrange...
    Pour information le conteneur OC4J réagit de la même façon. Il n'y a pas un standard la dessus ? chaque conteneur peut faire ce qu'il veut ? je n'ai rien trouvé dans les specs J2EE.
    les gens qui s'ennuient sont des gens sans imagination.

Discussions similaires

  1. Model de cycle de vie d'un logiciel
    Par apt dans le forum Méthodes
    Réponses: 4
    Dernier message: 29/10/2014, 23h54
  2. SERVLET:architecture et cycle de vie
    Par jo_info dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 21/04/2011, 15h30
  3. Cycle de vie d'une servlet
    Par sniper_marra dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 21/08/2008, 14h43
  4. Réponses: 7
    Dernier message: 08/03/2007, 09h23
  5. [EJB Stateful] [Cycle de vie] methode remove()
    Par anitshka dans le forum Java EE
    Réponses: 3
    Dernier message: 05/12/2006, 17h31

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