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 :

Plusieurs requêtes pour une même servlet


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Par défaut Plusieurs requêtes pour une même servlet
    Bonjour,
    Je suis débutant en JEE et je me pose une question. Admettons que j'ai une servlet pour gérer une page mais que le traitement de cette dernière soit un peu long (plusieurs secondes ). Comme la servlet n'est instanciée qu'une seule fois, si deux clients se connectent à cette page en même temps, le deuxième client va devoir attendre que la premiere requête soit traitée avant que la sienne le soit . Donc y a-t-il un moyen pour que deux requêtes sur une meme page soient traitée en parallèle ?
    Merci d'avance !

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 100
    Par défaut
    Erreur d interprétation,
    effectivement la servlet est instanciée une seule fois par le conteneur (instancie l objet et invoque la méthode init, l objet ne devient servlet qu'après l appel de la méthode init) MAIS le traitement est lancé dans thread séparé.
    Un thread par requête.
    j entend parlé du traitement tous ce que tu mets dans ta méthode doGet et doPost.
    Attention du tu déclare des attribut en dehors de doGet et doPost ils seront partagé.

  3. #3
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Effectivement, il ne faut pas confondre "instance" et "fil d'exécution" (Thread)
    Il y a bien un Thread qui s'occupera de chacun de manière indépendante de chacune des requêtes HTTP.

    En revanche, bien que le fil d'exécution soit indépendant, rien est isolé. Donc attention aux champs "static" de n'importe quelle classe mais aussi aux champs d'instance de ta servlet qui sont partagés par toutes les requêtes utilisateurs. Il te faudra alors poser des verrous (synchronized ou Lock) sur les portions critiques et éviter les blocages mutuels de verrous.

Discussions similaires

  1. Plusieurs requêtes pour une même connexion
    Par _shuriken_ dans le forum JDBC
    Réponses: 0
    Dernier message: 07/02/2011, 12h19
  2. plusieurs valeurs pour une même énumération
    Par adaneels dans le forum C#
    Réponses: 6
    Dernier message: 10/04/2009, 17h41
  3. Plusieurs footnote pour une même description
    Par Pharmacos dans le forum Mise en forme
    Réponses: 2
    Dernier message: 13/08/2008, 12h07
  4. Plusieurs valeurs pour une même colonne
    Par maxlegrand dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/10/2007, 13h32
  5. Plusieurs entités pour une même relation
    Par Mandotnet dans le forum Schéma
    Réponses: 1
    Dernier message: 08/04/2007, 19h13

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