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 :

[Conseil] JSP vs Servlet [FAQ]


Sujet :

Servlets/JSP Java

  1. #1
    Membre actif Avatar de keil
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    261
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 261
    Points : 214
    Points
    214
    Par défaut [Conseil] JSP vs Servlet
    Bonjour, j'ai l'habitude de programmer des servlet et je me suis interessé, très peu, aux JSP, surtout après avoir lu sur je ne sais plus quel site, qu'il n'y avait rien des JSP que les Servlet ne pouvaient faire.

    Mais je suis persuadé que les JSP doivent bien servir à qqch vu combien elles sont utilisée.
    Donc dans un cadre personnel, je voudrais savoir les atouts des JSP, pourquoi vaudrait-il mieux que j'utilise les JSP plutot que les Servlets?

    Je tiens à préciser que je préfère de loin coder + de java que de html.

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    salut..

    je ne sais pas pourquoi tu compare une servlet et une jsp, la jsp est elle meme une servlet après complation.les JSP présente la partie vue du paradigme MVC. Model (Bean) Controleur (Servlet) et Vue (JSP + struts ou jsf ou ....)
    L'utilité des jsp, entre autres, est de séparer la partie présentation ou design de la page des traitements métiers..

  3. #3
    Membre actif Avatar de keil
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    261
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 261
    Points : 214
    Points
    214
    Par défaut
    d'accord, mais le niveau fonctionnel reste donc le même.
    Si je comprend ce que tu me dis, une jsp c'est comme un css associé a une servlet.
    Mais est-ce que les JSP permettent, tout comme les Servlet, de se connecter à une base de donnée par exemple

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    ouii tu peux toujours le faire pour un petit test ou pour une petite requete, mais ce n'est pas conseillé, car, ça deviens rapidement difficile à gerer, à maintenir, à tester...
    je te conseil de lire de la doc sur le principe MVC ou MVC2 pour mieux comprendre.

    http://www.application-servers.com/a...ava-struts.pdf

  5. #5
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Citation Envoyé par keil
    d'accord, mais le niveau fonctionnel reste donc le même.
    Si je comprend ce que tu me dis, une jsp c'est comme un css associé a une servlet.
    Mais est-ce que les JSP permettent, tout comme les Servlet, de se connecter à une base de donnée par exemple
    La réponse est oui. Il faut la JSP comme une facilité donnée à des "non-programmeurs" d'accéder à la technologie J2EE. Elle permet à une personne ayant peu de connaissance de Java de créer des pages dynamiques. Elle facilite aussi la vie des programmeurs .

    On choisit la JSP si le code est orienté plutôt affichage (HTML) et on choisit une servlet si la page est orintée plutôt traitement comme un contrôleur.

    On peut avec plus ou moins de bonheur et de facilité choisir une solution complétement programmé en JSP ou en servlet.

  6. #6
    Membre actif Avatar de keil
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    261
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 261
    Points : 214
    Points
    214
    Par défaut
    merci bien pour le lien !

  7. #7
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par keil
    Bonjour, j'ai l'habitude de programmer des servlet et je me suis interessé, très peu, aux JSP, surtout après avoir lu sur je ne sais plus quel site, qu'il n'y avait rien des JSP que les Servlet ne pouvaient faire.
    En effet, les JSP sont compilés en Servlet, donc on peut dire qu'une JSP est un Servlet... mais ce n'est pas pour cela que c'est forcément équivalent : la différence vient de la manière dont tu les écris, qui les destine soit aux traitements, soit à l'affichage (modèle MVC comme l'indique Sniper37)

    Citation Envoyé par keil
    Mais je suis persuadé que les JSP doivent bien servir à qqch vu combien elles sont utilisée.
    Donc dans un cadre personnel, je voudrais savoir les atouts des JSP, pourquoi vaudrait-il mieux que j'utilise les JSP plutot que les Servlets?
    Il ne faut pas utiliser les JSP à la place des Servlets mais il faut utiliser les JSP avec les Servlets...

    Explication : Dans tes Servlets (Controlleur) tu exécutes ton code Java (accès aux BD, vérifications, etc...) et tu passes les données (Model) à tes JSP via le scope request qui se contenteront de l'affichage (Vue).

    Dans tes pages JSP il te suffit d'afficher les données que tu récupères depuis le scope request.
    L'avantages : les JSP sont plus simple pour générer du code HTML ou autres, alors que les Servlets sont plus propre organiser du code Java (puisqu'il s'agit bien d'une classe Java à part entière).

    Tu peux aussi utiliser la JSTL qui propose une librairie de tag standardisé pour simplifier la création de page JSP, ains que les EL qui permettent d'accéder à des attributs sans code Java, ou même des Taglibs qui te permettent de faire tes propres tag JSP (balise XML à insérer dans une page JSP pour effectuer un traitement spécifique).



    L'avantage c'est que tu peux coder des pages JSP sans code Java... Ainsi il est plus simple de se partager le travail entre des developpeurs Java (pour les Servlet et les Taglibs spécifiques) et des developpeurs Web qui travaille sur des JSP...


    Par exemple, imagine une Servlet qui affichera les résultats d'une recherche.
    • -> Si tu n'utilises qu'une Servlet, la génération de la page de résultat est assez complexe en code Java (plein de out.println() et d'accès aux données...). Si cela ne te pose pas de problème c'est une autre affaire pour un designer web qui ne connait pas Java...
      -> Si tu n'utilises qu'une JSP, c'est le code d'accès aux données qui est assez lourd, car le code Java dans une JSP c'est pas super... Le designer Web est un peu moins perdu mais les gros bloc de code Java reste un gros obstacle...


    Mais si dans ta servlets tu te contentes de rechercher les données et de les stocker dans une List.
    A la fin de ta Servlet il suffit de stocker ces données dans le scope request pour les passer à ta JSP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public void service(ServletRequest req, ServletResponse res) {
     
    	List resultat = new ArrayList();
     
    	// Code de recherche dans la BD pour remplir 'resultat'
    	// ...
     
    	// On stoque la list dans le scope request :
    	request.setAttribute("resultat", resultat);
     
    	// On forward vers la JSP :
    	request.getRequestDispatcher("/maPage.jsp").forward(request, response);
    }
    Et dans la JSP tu affiches les résultats, par exemple avec la JSTL et les EL cela donne :
    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
     
    <html>...
     
    <!-- Afficher tous les éléments de la liste -->
    <ul>
    <c:forEach var="res" items="${requestScope['resultat']}" >
    	<li>${res}</li>
    </c:forEach>
    <!-- Affichage d'un message si la liste est vide -->
    <c:if test="${empty requestScope['resultat']}">
    	<li>Aucun résultat...</li>
    </c:if>
    </ul>
     
    ..</html>
    Dans ta Servlet tu ne t'occupes pas de l'affichage (ie tu ne t'embète pas à générer de l'HTML).
    Et le designer web travaille sur une JSP qui reste très proche de HTML avec un ensemble de balise 'enrichi' qui sont surement plus simple à apprendre et à manier pour lui que du code Java...

    Maintenant si tu travaille seul cela reste très utile pour toi aussi :
    • 1. Tu sépare bien ton code
      2. Tu concentres le HTML dans les JSP, ce qui le rend plus simple à écrire/modifier...


    Sans parler des frameworks comme Struts ou JSF qui te simplifie encore le travail...

    a++

  8. #8
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    réponse pertinente ..
    pourquoi ne pas l'ajouter dans la FAQ J2EE si la question n'y est pas !!!


  9. #9
    Membre actif Avatar de keil
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    261
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 261
    Points : 214
    Points
    214
    Par défaut
    ok, merci de vos réponses.
    Je viens de lire aussi la doc sur le MVC.

    Ce que j'en tire:
    Un architecture bien complexe qui doit bien bouffer en ressource et qui montre donc qu'il s'agit + d'une solution entreprise que personnelle (sauf si je veux faire un super site web).

    Mais dans mon cadre personnel, le code html se limite assez souvent à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html><body><applet ...><param ....></applet></body></html>
    donc je ne pense pas utiliser pour mon propre compte la technologie JSP.
    mais je serai au courant si on me propose un poste dans le domaine.

    Encore merci

  10. #10
    Membre averti
    Inscrit en
    Août 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 352
    Points : 427
    Points
    427
    Par défaut
    Citation Envoyé par adiGuba
    Il ne faut pas utiliser les JSP à la place des Servlets mais il faut utiliser les JSP avec les Servlets...
    On est d'accord.

    Citation Envoyé par adiGuba
    Explication : Dans tes Servlets (Controlleur) tu exécutes ton code Java (accès aux BD, vérifications, etc...) et tu passes les données (Model) à tes JSP via le scope request qui se contenteront de l'affichage (Vue).
    Je suis d'accord, à un détail près, je ne pense pas que la servlet soit le lieu recommandé pour faire un accès direct à la base de données. Il est à mon avis préférable de passer par une couche de service/business/dao.
    En gros, le controleur est l'endroit où mettre le code qui va initier la logique métier. Cela ne veut pas dire que c'est la qu'il faut la mettre.

    Citation Envoyé par adiGuba
    Dans tes pages JSP il te suffit d'afficher les données que tu récupères depuis le scope request.
    L'avantages : les JSP sont plus simple pour générer du code HTML ou autres, alors que les Servlets sont plus propre organiser du code Java (puisqu'il s'agit bien d'une classe Java à part entière).
    +1

    Citation Envoyé par adiGuba
    Par exemple, imagine une Servlet qui affichera les résultats d'une recherche.
    • -> Si tu n'utilises qu'une Servlet, la génération de la page de résultat est assez complexe en code Java (plein de out.println() et d'accès aux données...). Si cela ne te pose pas de problème c'est une autre affaire pour un designer web qui ne connait pas Java...
      -> Si tu n'utilises qu'une JSP, c'est le code d'accès aux données qui est assez lourd, car le code Java dans une JSP c'est pas super... Le designer Web est un peu moins perdu mais les gros bloc de code Java reste un gros obstacle...
    Entièrement d'accord. Moins les jsp contiennent de code, plus elles sont propres et maintenables.

    Citation Envoyé par adiGuba
    Et le designer web travaille sur une JSP qui reste très proche de HTML avec un ensemble de balise 'enrichi' qui sont surement plus simple à apprendre et à manier pour lui que du code Java...
    Il faut en effet que la JSP soit le plus proche possible du html final et rendre les balises les plus simples possibles pour les rendre utilisables par un designer.

    Citation Envoyé par adiGuba
    Sans parler des frameworks comme Struts ou JSF qui te simplifie encore le travail...
    Ou Spring MVC qui facilite l'adhérence au concept MVC et rend difficile les mauvaises pratiques.

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

Discussions similaires

  1. [Formulaire][Jsp] Conseils jsp
    Par parasol007 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 07/06/2006, 16h59
  2. [Plugin]du JSP et servlet sous Eclipse
    Par AdnaneRe dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 28/11/2005, 22h32
  3. [JSP]remplir et envoyer un vecteur d'une jsp à une servlet
    Par moeeez dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 31/05/2005, 10h51
  4. Réponses: 9
    Dernier message: 14/04/2005, 18h45
  5. [ SERVLET ] [JSP ] Redirection servlet vers JSP
    Par Enfa dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 23/02/2005, 15h55

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