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 :

méthode service() VS doPost() et doGet() ?


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 168
    Par défaut méthode service() VS doPost() et doGet() ?
    Bonjour.

    Depuis que je développe en utilisant des Servlets, j'utilise la méthode doGet pour afficher le formulaire et doPost pour le traitement du formulaire.

    On vois enfin J2EE en cours (et oui! il faut attendre le master 2 ...) et mon prof nous explique qu'il est préférable d'utiliser la méthode service() plutôt que doGet() et doPost() pour des raisons d'optimisation ... Il nous a même assuré que ces deux méthodes n'étaient même plus utilisée dans les entreprises.

    Il nous en a pas dit plus, je voudrais savoir pourquoi service est "mieux" ?

    Merci d'avance.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Je crois bien que c'est exactement le contraire.
    C'est à dire qu'il ne faut pas utiliser la méthode service, mais plutôt la méthode dont tu as besoin, doGet, doPost, etc...
    La méthode service se charge d'appeler la bonne méthode doXXX.
    D'ailleurs dans la doc de la méthode service tu as ceci:
    There's no need to override this method.
    Voir:
    http://java.sun.com/j2ee/1.4/docs/ap...tpServlet.html

  3. #3
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Et pourtant, lorsque j'ai suivi la formation Développement J2EE, on nous a conseillé également d'utiliser la méthode service.

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 168
    Par défaut
    Merci pour ta réponse.
    J'ai repris son cours et il y a un truc que je trouve encore plus bizarre : le code est sur l'image jointe à ce message
    Est-ce une pratique "normal" ?
    Images attachées Images attachées  

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    C'est en tout cas la première fois que j'entends ça.
    Et à lire la doc, je ne vois pas comment on peut arriver à la conclusion de ton prof.
    Pour le code que tu nous montres, je ne vois pas bien l'intérêt, puisque la méthode service le fait déjà d'elle même.

  6. #6
    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 n'y a pas une pratique bonne et l'autre mauvaise, la question est plutôt :
    - est ce que je fais la même chose dans doPost que dans doGet

    Si oui -> il est préférable d'utiliser service, sinon, mieux vaut spécialiser chaque méthode doPost et doGet

    Moi, je fais systématiquement la même chose, donc, je prends "service"

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

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 168
    Par défaut
    D'accord.
    En fait, mon prof préconise de faire une servlet pour l'appel du formulaire et une autre servlet pour le traitement. Donc dans chaque servlet, une seul méthode est appelé (soit Get soit Post), d'où l'utilisation de la méthode service().

    Mais du coup, il faut faire beaucoup plus de tests dans la servlet qui s'occupe de traiter le formulaire puisqu'un utilisateur peut essayer d'accéder à cette servlet en l'appelant dans un navigateur (impossible si on utilise doPost)

    Je me trompe ?

  8. #8
    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
    Citation Envoyé par aurelientp Voir le message
    ...
    Mais du coup, il faut faire beaucoup plus de tests dans la servlet qui s'occupe de traiter le formulaire puisqu'un utilisateur peut essayer d'accéder à cette servlet en l'appelant dans un navigateur (impossible si on utilise doPost)

    Je me trompe ?
    Non, tu ne te trompes pas...

    doPost répond à un formulaire avec method="POST"
    doGet répond à :
    - un formulaire avec method="GET"
    - un lien
    - une adresse url
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/12/2008, 11h59
  2. Appel Méthodes web services
    Par prince_antonio dans le forum Services Web
    Réponses: 13
    Dernier message: 22/02/2008, 16h30
  3. doget et dopost
    Par kam81 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 29/11/2006, 11h05
  4. probleme passage doGet et doPost
    Par yuriashford dans le forum Servlets/JSP
    Réponses: 13
    Dernier message: 27/04/2006, 09h14
  5. [WebServices][axis] question sur la méthode service()
    Par Nycos62 dans le forum Services Web
    Réponses: 9
    Dernier message: 21/04/2005, 09h32

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