JSP Debuggen

Zu testen/Debuggen Sie eineJSPOderservletDas Programm ist immer so schwierig。JSPUndServletsProgramme beziehen in der Regel eine große Anzahl von Kunden mit ein/Serverinteraktion,Dies kann sehr wahrscheinlich zu einem Fehler führen,Und es ist schwer, die falsche Umgebung zu reproduzieren。

Als nächstes werden einige Tipps und Tricks gegeben.,Um Ihnen beim Debuggen des Programms zu helfen。


Verwenden SieSystem.out.println()

System.out.println()Es ist einfach zu markieren, ob ein Teil des Codes ausgeführt wird.。Natürlich,Wir können auch eine Vielzahl von Werten drucken。Darüber hinaus:

Weiter gibt die VerwendungSystem.out.println()Grammatik:

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

Dies ist eine VerwendungSystem.out.print()Einfaches Beispiel:

<%@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>

Jetzt,Wenn Sie das obige Beispiel ausführen,Es werden die folgenden Ergebnisse erzeugt:

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

Wenn Sie verwendenTomcatServer,Sie werden in der Lage seinlogsUnter dem Katalogstdout.logDie Datei hat mehr als das Folgende gefunden:

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

Verwenden Sie diese Methode, um Variablen und andere Informationen in das Systemprotokoll auszugeben.,Wird verwendet, um die zugrunde liegenden Ursachen des Problems zu analysieren und zu identifizieren。


Verwenden SieJDB Logger

J2SEDas Log-Framework kann für jeden ausgeführt werdenJVMKlasse im Protokolldienst。So können wir dieses Framework verwenden, um Informationen aufzuzeichnen。

Lassen Sie uns den obigen Code umschreiben,Verwenden SieJDKMedium logger API:

<%@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>

Es läuft wie ein Vorgänger.,Aber,Es können zusätzliche Informationen ausgegeben werdenstdout.logIn der Datei。Hier haben wir benutztloggerMediuminfoMethode。Unten geben wirstdout.logein Schnappschuss in der Datei:

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

Nachrichten können mit verschiedenen Prioritäten gesendet werden,Mitsever(),warning(),info(),config(),fine(),finer(),finest()Methode。finest()Methode zum Aufzeichnen der besten Informationen,Undsever()Methode zum Aufzeichnen der wichtigsten Informationen。

Verwenden SieLog4J Framework zum Protokollieren von Nachrichten in verschiedenen Dateien,Diese Nachrichten werden nach Schweregrad und Wichtigkeit klassifiziert。


Debugging-Tool

NetBeansBaumstruktur,Ist Open SourceJavaIntegrierte Entwicklungsumgebung,Unterstützung der Entwicklung unabhängigJavaAnwendung und Webanwendung,Auch unterstützenJSPDebuggen。

NetBeansUnterstützung für die folgenden grundlegenden Debugging-Funktionen:

Detaillierte Informationen können eingesehen werdenNetBeansBenutzerhandbuch。


Verwenden SieJDB Debugger

Kann seinJSPUndservletsVerwendet injdbBefehl zum Debuggen,Genau wie beim Debuggen einer normalen Anwendung。

Normalerweise,Wir debuggen direktsun.servlet.http.HttpServer Objekt zum AnzeigenHttpServerAls AntwortHTTPAuf Anfrage ausführenJSP/ServletsSituation。Dies und das DebuggenappletsSehr ähnlich。Der Unterschied ist,appletsDas eigentliche Debugging des Programms istsun.applet.AppletViewer。

Die meisten Debugger debuggenappletsKann automatisch einige Details ignorieren, wenn,Weil es weiß, wie man Fehler behebtapplets。Wenn Sie das Debug-Objekt nach übertragen möchtenJSPKörper,Sie müssen die folgenden zwei Dinge tun:

EinrichtenclasspathNachher,Starten Sie das Debuggensun.servlet.http.Http-Server 。Sie könnenJSPLegen Sie an einer beliebigen Stelle in der Datei Haltepunkte fest,So lange du willst,Verwenden Sie dann den Browser, um eine Anforderung an den Server zu senden. Das Programm sollte am Haltepunkt angehalten werden。


Verwenden Sie Kommentare

Die Kommentare im Programm helfen in vielerlei Hinsicht beim Debuggen des Programms.。Kommentare können in vielen Aspekten des Debuggers verwendet werden。

JSPVerwenden SieJavaKommentar。Wenn einerBUGVerschwunden,Bitte schauen Sie sich den Code, den Sie gerade kommentiert haben, genauer an.,Finde normalerweise heraus warum。


Client- und Server-Header-Module

Manchmal,Wann?JSPLäuft nicht wie vorgesehen,Roh ansehenHTTPAnfragen und Antworten sind ebenfalls nützlich。Wenn richtigHTTPDie Struktur ist sehr vertraut,Sie können direkt beobachtenrequestUndresponseSchauen Sie sich dann an, was mit diesen Kopfmodulen passiert ist.。


Wichtige Fähigkeiten zum Debuggen

Hier zeigen wir zwei weitere DebuggingJSPTipps:

Tutorial für fliegende Fische@2001-2030