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 multi-thread ?


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 75
    Par défaut Servlet multi-thread ?
    Bonjour,

    Voici une question de débutant

    Qu'est ce qui fait qu'une Servlet soit par défaut multi thread?
    Et combien de thread peut-telle lancer à la fois?

    Merci d'avance

  2. #2
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 75
    Par défaut
    Merci beaucoup !!

    c'est très util !

  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
    Par défaut
    C'est le moteur de servlet (tomcat par exemple) qui multi threade les servlets autant de fois qu'il y'a de clients connectés je crois bien, et le nombre de thread depend de ta config dans le fichier de conf server.xml (maxThread=...).

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 75
    Par défaut
    merci pour ta reponse.

    Cela m'amène à poser une autre question, si au niveau de la méthode init() de ma servlet, je fais appel à un objet X, seront dans ce cas créees autant d'instances X que de threads lancé?

    Merci d'avance

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 75
    Par défaut
    je mets à jour ma question. la méthode init() est appelée une seule fois, donc tout objet crée dedans est crée en une seule copie.

    en lisant le cycle de vie d'une servlet je ne trouve aucune allusion aux fameuse doGet doPost, est ce normale?

  7. #7
    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
    Il existe 2 modes d'appel d'une servlet (en gros)
    - une url avec les paramètres qui suivent (ex: http://serveur/appli/ma.servlet?para...mValue=Valeur2)
    Dans ce cas, c'est la méthode doGet qui est appelée

    - un formulaire
    Là, ça dépend de l'attribut method="POST" ou method="GET"

    Maintenant, si tu veux t'affranchir de cette problématique, tu peux également utiliser la méthode "service" qui répond indifféremment à POST ou GET.
    Tu peux également coder dans doPost et faire un transfert à doPost dans doGet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    soit 
    public void service(HttpServletRequest request, HttpServletResponse response)
    {
       ... ici on mettra le code à exécuter
    }
    soit
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    {
       ... ici on mettra le code à exécuter
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response)
     {
        doPost(request, response);
    }
    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 75
    Par défaut
    Merci bien ! mtn c plus clait

    Bonne journée!

  9. #9
    Membre habitué
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 9
    Par défaut reponse au moderateur "Obutterlin"
    ce moderateur ecrit donc :
    "
    Il existe 2 modes d'appel d'une servlet (en gros)
    - une url avec les paramètres qui suivent (ex: http://serveur/appli/ma.servlet?para...mValue=Valeur2)
    Dans ce cas, c'est la méthode doGet qui est appelée

    - un formulaire
    Là, ça dépend de l'attribut method="POST" ou method="GET"

    "
    1. lancer la requête du protocole http :
    "http://serveur/appli/ma.servlet?para...mValue=Valeur2"
    est l'EXACT résultat de la soumission html d'un formulaire avec la méthode GET
    2.
    il ne reste donc qu'une seule maniere de la faire les éventuelles possibilités n'aboutissant qu' à l'exact résultat équivalent à l'une des possibilités d'envoi de la requete http ac un formulaire.

    3. pour le "soit service, soit do post et doget", si vous ne redéfinissiez ( et pas "coder") ni doGet ni doPost, ni service, eh bien figurez vous que l'objet de la classe dérivant de HttpServlet sera bien instancié!
    J'ai même appris, aujourd'hui même, à mes stagiares à controler le nombre exact d'objets de cette classe seront instancié, suite à une première requête, et ce avec le web.xml

    Je me demande en quoi une quelconque redéfinition de methode ds la classe servlet aideraitr à qquoique se soit quant au test du multiThreading.
    Cela pourrait il consister à faire "un thread par requête, ie par appel de do get ouu do post"
    ou peut etre affichez vous le threadName dans chaque réponse html ...?

    intéressé,
    jean-baptiste.

  10. #10
    Membre habitué
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 9
    Par défaut de plus
    je viens jsute de penser que je peut même si demande fournir une page html avec un seul et unique formulaire capable d'envoyer une requête HTTP en post avec ou sans donnees, en get avec ou sans donnes, et même soius la même forme qu'une balise <a href="url" ></a>, sans balise anchor, et donc sans données mais , en plus des envois en get et post sans données, non seulement il n'y aura pas de données, mais, après le ? commencant les données dans une requête, il n'y aura mâma pas les name des input du formulaire, si vous suivez ma pensée .. ( suis un peu fainéant quant à rendr encore plus clair ce dernier point , questionnez si necessaire ...)
    amicalement vôtre,
    jean-b.

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

Discussions similaires

  1. Tri multi-threadé
    Par Tifauv' dans le forum C
    Réponses: 8
    Dernier message: 28/06/2007, 09h00
  2. Réponses: 2
    Dernier message: 15/05/2004, 18h33
  3. Réponses: 16
    Dernier message: 30/01/2004, 11h05
  4. [VB6][active x] faire du multi-thread avec vb
    Par pecheur dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/05/2003, 12h01
  5. [Kylix] exception qtinft.dll et multi-threading
    Par leclaudio25 dans le forum EDI
    Réponses: 3
    Dernier message: 27/03/2003, 18h09

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