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 :

Debugging JSP : C'est fastidieux?!


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Par défaut Debugging JSP : C'est fastidieux?!
    Salut à tous,

    A la lecture du, très fameux, site de jmdoudoux et plus précisément du point 54.1.2. Les JSP et les technologies concurrentes, je vois :

    Citation Envoyé par jmdoudoux
    JSP : principaux inconvénients : Débogage assez fastidieux
    Je n'ai aucune expérience avec les JSP, je suis justement à l'étude pour élire la techno du projet qui s'annonce.

    La question : C'est vrai?
    Si oui, en quoi les JSP sont "assez fastidieuses" à debuguer?
    Si non, est-ce que c'est le site de jmdoudoux qui commence à vieillir?

    Merci.

  2. #2
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Le problème est si tu utilise un debbuger (par exemple celui d'Eclipse).
    Dans le cas d'un clase simple tu peux mettre un point d'arrêt sur une ligne de ton code. Tu vois alors à quel moment tu passe sur ta ligne, tu peux "suivre" le déroulement de ton code, interroger des variable pour avoir leur valeur à un moment donné.
    Une JSP n'est elle pas exécutée directement, elle est transformé en une servlet qui est elle la classe JAVA qui sera exécutée. D'une c'est compliqué d'avoir accès à ce code pour y mettre des points d'arrêts, et même quand on y arrive ce n'est pas le code comme on l'a écris directement.

    Voila ce que je comprend par sa phrase.

  3. #3
    Membre éclairé Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Par défaut
    Merci pour ta réponse.

  4. #4
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    Et la plupart du temps la servlet.java générée à partir de la jsp est supprimée après compilation il ne reste que le servlet.class

    Et si une erreur est généré la console affiche ligne 450 de la servlet mais il n'y a aucune correspondance avec la ligne de la jsp.

    Celon les serveurs d'applications il est possible de conserver le servlet.java pour le local ou la recette mais déconseillé pour la production.

    Pour websphère il faut rajouter le fichier ibm-web-ext.xmi dans le WEB-INF

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="UTF-8"?>
    <webappext:WebAppExtension xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:webappext="webappext.xmi" xmi:id="WebAppExtension_1164726065140" reloadInterval="3" reloadingEnabled="true" additionalClassPath="" fileServingEnabled="true" directoryBrowsingEnabled="false" serveServletsByClassnameEnabled="true">
      <webApp href="WEB-INF/web.xml#WebApp_ID"/>
      <jspAttributes xmi:id="JSPAttribute_1" name="keepgenerated" value="true"/>
    </webappext:WebAppExtension>
    Ce qui explique les propos de difficulté de debug et qu'il est fortement conseiller de ne faire que de la présentation / affichage de données dans les jsp et non du traitement connexion base de données ect ...

  5. #5
    Membre éclairé Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Par défaut
    Tu me mets le doute sur le fonctionnement des Jsp.


    J'écris du code de ce genre, dans un fichier .jsp :

    <%-- Ceci est un commentaire JSP --%>
    <%@page contentType="text/html"%>
    <%@page errorPage="erreur.jsp"%>
    <%-- Importation d'un paquetage (package) --%>
    <%@page import="java.util.*"%>
    <html>
    <head><title>Page JSP</title></head>
    <body>

    <%-- Déclaration d'une variable globale à la classe --%>
    <%! int nombreVisites = 0; %>

    <%-- Définition de code Java --%>
    <% //Il est possible d'écrire du code Java ici
    Date date = new Date();
    // On peut incrémenter une variable globale pour compter le nombre
    // d'affichage, par exemple.
    nombreVisites++;
    %>
    <h1>Exemple de page JSP</h1>
    <%-- Impression de variables --%>
    <p>Au moment de l'exécution de ce script, nous sommes le <%= date %>.</p>
    <p>Cette page a été affichée <%= nombreVisites %> fois!</p>
    </body>
    </html>
    Ce code est interpété en servlet, c'est un fichier .java, c'est une classe qui est une servlet :
    import javax.servlet.* ;
    import java.io.* ;

    public class HelloServlet extends GenericServlet
    {
    public void service (ServletRequest request, ServletResponse response)
    {
    try
    {
    PrintWriter out = response.getWriter() ;
    out.println ("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\">") ;
    out.println ("<title>Bonjour le monde&nbsp;!</title>") ;
    out.println ("<p>Hello world!</p>") ;
    }
    catch (IOException e)
    {
    e.printStackTrace() ;
    }
    }
    }
    Puis compilé en fichier .class (le .java est supprimé).

    Quand un utilisateur demande une page, le serveur exécute les fichiers .class qu'il faut, cela produit un code HTML qui est envoyé au client (qui n'a pas besoin de JVM).

    On est d'accord ou j'ai dit n'importe quoi?

  6. #6
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    Oui on est d'accord

    la servlet ou jsp tu peux utiliser l'un ou l'autre même si la jsp est compilé en servlet par la suite.

    Le serveur renverra ce que tu décides de renvoyé une page html en l'occurence, cela pourrait être un fichier à enregistrer dans tous les cas c'est le serveur qui gère.


    Le seul conseil que je te donnerais vis à vis des JSP c'est de respecter un développement MVC qui plus que fait ses preuves.
    L'avantage c'est que la JSP ne représente que la vue et que si tu as une erreur pour le debug c'est d'autant plus simple à gerer et rapide que de devoir debug du code dans un jsp.

  7. #7
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    Bonjour,
    je me pointe juste pour dire qu'avec Tomcat/Eclipse il n'y a pas de soucis, il suffit de faire un refresh sur le dossier pour que le .java rentre dans le projet (et qu'on puisse donc debugguer la jsp, on peut même rajouter des breakpoints)

    Je voudrai également préciser qu'une bonne jsp ne contient couasiment pas de traitement java, et en particulier pas de traitement non spécifique à l'affichage.
    Donc pas d'algorithme compliqué, pas de boucles à n'en plus finir.
    Ca signifie que les erreurs java doivent rester très faciles à pointer du doigt!

  8. #8
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    C'est ce que je disais un peu plus haut dans la conversation.
    Mais qui hélas est loin d'être appliqué ^^

    Quand on voit le nombre de personne qui se connecte à une base de données, exécute des requêtes suivis de traitement pour enfin afficher des données

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/09/2012, 14h56
  2. Dessiner avec JSP, c 'est possible?
    Par Ibn Rochod dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 26/05/2009, 12h39
  3. index.jsp n'est pas accessible de façon automatique
    Par nicorama dans le forum Glassfish et Payara
    Réponses: 1
    Dernier message: 04/02/2009, 21h50
  4. Réponses: 3
    Dernier message: 13/09/2007, 08h36
  5. debug JSP online
    Par stujava dans le forum Langage
    Réponses: 1
    Dernier message: 27/07/2007, 14h12

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