Latest web development tutorials

JSP débogage

Pour tester / debug un JSP ou d'un programme de servlet est toujours aussi difficile. procédures JSP et servlets ont tendance à impliquer une interaction entre un grand nombre de client / serveur, ce qui est susceptible de générer une erreur, et il est difficile de reproduire l'environnement d'erreur.

Suivant sera donné quelques conseils et astuces pour vous aider à déboguer votre programme.


Utilisez System.out.println ()

System.out.println () peut facilement drapeau est un morceau de code est exécuté. Bien sûr, nous pouvons également imprimer une variété de valeurs. En outre:

  • Puisque l'objet du système devient l'objet Java de base qui peut être utilisé partout, sans l'introduction de classes supplémentaires. Y compris l'utilisation de Servlets, JSP, RMI, EJB, Beans, des classes et des applications autonomes.
  • En comparaison avec des arrêts au point d'arrêt, en utilisant une sortie System.out ne sera pas avoir un impact significatif sur le fonctionnement des applications de processus, cette fonctionnalité est très important dans le mécanisme de synchronisation de l'application est très utile.

Ensuite, compte tenu de la System.out.println de syntaxe () est:

System.out.println("Debugging message");

Ceci est un exemple simple d'utilisation System.out.print () est:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>System.out.println</title></head>
<body>
<c:forEach var="counter" begin="1" end="10" step="1" >
   <c:out value="${counter-5}"/></br>
   <% System.out.println( "counter= " + 
                     pageContext.findAttribute("counter") ); %>
</c:forEach>
</body>
</html>

Maintenant, si vous exécutez l'exemple ci-dessus, il va produire les résultats suivants:

-4
-3
-2
-1
0
1
2
3
4
5

Si vous utilisez le serveur Tomcat, vous serez en mesure de trouver plusieurs des éléments suivants dans le fichier stdout.log logs sous:

counter=1
counter=2
counter=3
counter=4
counter=5
counter=6
counter=7
counter=8
counter=9
counter=10

En utilisant cette méthode de variables et d'autres informations peuvent être émis dans le journal du système pour analyser le problème et de trouver la cause des raisons profondes.


Utilisez JDB Logger

cadre de l'exploitation forestière de J2SE fournit des services d'exploitation pour toutes les classes en cours d'exécution dans la JVM. Nous pouvons donc utiliser ce cadre pour enregistrer toute information.

Réécrivons le code ci-dessus, utilisez l'API de l'enregistreur JDK:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page import="java.util.logging.Logger" %>

<html>
<head><title>Logger.info</title></head>
<body>
<% Logger logger=Logger.getLogger(this.getClass().getName());%>

<c:forEach var="counter" begin="1" end="10" step="1" >
   <c:set var="myCount" value="${counter-5}" />
   <c:out value="${myCount}"/></br>
   <% String message = "counter="
                  + pageContext.findAttribute("counter")
                  + " myCount="
                  + pageContext.findAttribute("myCount");
                  logger.info( message );
   %>
</c:forEach>
</body>
</html>

Il est similaire aux résultats des précédentes, mais il peut obtenir des informations supplémentaires sur le fichier stdout.log. Ici, nous utilisons la méthode d'information de l'enregistreur. Ci-dessous, nous donnons un fichier instantané de stdout.log:

24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService
INFO: counter=1 myCount=-4
24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService
INFO: counter=2 myCount=-3
24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService
INFO: counter=3 myCount=-2
24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService
INFO: counter=4 myCount=-1
24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService
INFO: counter=5 myCount=0
24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService
INFO: counter=6 myCount=1
24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService
INFO: counter=7 myCount=2
24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService
INFO: counter=8 myCount=3
24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService
INFO: counter=9 myCount=4
24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService
INFO: counter=10 myCount=5

Les messages peuvent être envoyés en utilisant une variété de priorité, en utilisant sever (), avertissement (), info (), config (), fin (), plus fine (), méthode plus fine (). méthode plus fine () est utilisée pour enregistrer la meilleure information, et de rompre () est utilisée pour enregistrer les informations les plus graves.

Utilisez Log4J journaux cadres messages dans un fichier différent, ces messages en fonction de la gravité et de l'importance de classer.


Debugging Tools

NetBeans est une structure arborescente, open source Java environnement de développement intégré, soutenir le développement d'applications Java autonomes et les applications de réseau, mais prennent également en charge JSP débogage.

NetBeans prend en charge les quelques fonctionnalités de débogage de base suivantes:

  • Breakpoints
  • suivi une seule étape
  • Observation point

Des informations détaillées peuvent être consultés NetBeans manuel.


Utilisez JDB Debugger

Vous pouvez utiliser la commande jdb en JSP et servlets dans pour le débogage, tout comme debug comme une application normale.

Habituellement, nous dirigeons le débogage sun.servlet.http.HttpServer objet pour afficher la situation HttpServer mise en œuvre de JSP / Servlets en réponse à des requêtes HTTP. Ceci est très similaire aux applets de débogage. La différence est que, le programme applets de débogage réelle est sun.applet.AppletViewer.

La plupart du débogueur lorsque les applets de débogage peut automatiquement ignorer certains détails, parce qu'il sait comment déboguer les applets. Si vous voulez déboguer les objets JSP transférés au corps, vous devez faire deux choses:

  • Réglage du classpath du débogueur, il peut être trouvé sun.servlet.http.Http-Server et classes connexes.
  • Réglage du classpath du débogueur, pour lui permettre de trouver vos fichiers JSP et les classes connexes.

Set classpath, il a commencé la mise en service sun.servlet.http.Http-Server. Vous pouvez définir des points d'arrêt dans le fichier JSP partout, aussi longtemps que vous le souhaitez, puis utilisez le navigateur envoie une requête au serveur doit être en mesure de voir le programme arrêté à un point d'arrêt.


Utilisez les commentaires

annotations du programme au débogueur jouent un rôle utile dans de nombreux aspects. Les commentaires peuvent être utilisés de plusieurs façons dans le débogueur.

JSP utilise des annotations Java. Si un BUG disparu, s'il vous plaît examiner attentivement les commentaires que vous avez juste eu le code peut habituellement savoir pourquoi.


La tête des modules client et serveur

Parfois, lorsque la JSP ne fonctionne pas d'une manière prédéterminée lors de l'affichage des demandes et des réponses HTTP premières sont également utiles. Si la structure est très familier avec HTTP, vous pouvez directement observer les en-têtes de requête et de réponse et de voir comment les modules à la fin.


techniques de débogage importants

Ici, nous sommes à nouveau révélé deux conseils de débogage JSP:

  • En utilisant le navigateur affiche le contenu original de la page, est utilisée pour distinguer si le format. Cette option est généralement dans le menu Affichage.
  • Assurez-vous que le navigateur lorsque le rechargement forcé la page ne saisit pas la sortie de la demande précédente. Si vous utilisez le navigateur Netscape Navigator, utilisez Shift-Reload, si vous utilisez le navigateur IE, puis utilisez Shift-Refresh.