Latest web development tutorials

debug JSP

Per eseguire il test / debug di un programma di JSP o servlet è sempre così difficile. procedure JSP e servlet tendono a coinvolgere l'interazione tra un gran numero di client / server, che può generare un errore, ed è difficile riprodurre l'ambiente di errore.

Successivo sarà dato alcuni consigli e suggerimenti per aiutare il test del programma.


Utilizzare System.out.println ()

System.out.println () può facilmente si è eseguito un pezzo di codice bandiera. Naturalmente, si può anche stampare una serie di valori. Inoltre:

  • Poiché l'oggetto sistema diventa l'oggetto principale Java che può essere utilizzato ovunque senza l'introduzione di classi aggiuntive. Compreso l'uso di Servlet, JSP, RMI, EJB di, fagioli, le classi e le applicazioni stand-alone.
  • Rispetto arresta del breakpoint, usando un output System.out non avranno un impatto significativo sul funzionamento delle applicazioni di processo, questa caratteristica è molto importante nel meccanismo tempi di applicazione è molto utile.

Quindi, data la System.out.println sintassi () è la seguente:

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

Questo è un semplice esempio di utilizzo System.out.print () è il seguente:

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

Ora, se si esegue l'esempio di cui sopra, allora si produrrà i seguenti risultati:

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

Se si utilizza il server Tomcat, si sarà in grado di trovare più dei seguenti elementi nel file stdout.log logs sotto:

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

Utilizzando questo metodo di variabili e altre informazioni possono essere inviati al registro di sistema per analizzare il problema e trovare la causa delle ragioni profonde.


Utilizzare JDB Logger

quadro di registrazione J2SE fornisce servizi di registrazione per qualsiasi classe in esecuzione nella JVM. Così possiamo usare questo framework per registrare qualsiasi informazione.

Riscriviamo il codice di cui sopra, utilizzare il logger API 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>

E 'simile a risultati del precedente, ma si può ottenere ulteriori informazioni al file stdout.log. Qui usiamo il metodo di informazioni logger. Qui di seguito diamo un file snapshot 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

I messaggi possono essere inviati utilizzando una varietà di priorità, utilizzando Sever (),,,,, il metodo di avviso () info () config () fine () più fine (), più fine (). metodo migliore () viene utilizzato per registrare le migliori informazioni, e recidere () viene utilizzato per registrare le informazioni più grave.

Utilizzare Log4J registra i messaggi di quadro in un altro file, questi messaggi in base alla gravità e l'importanza per classificare.


Strumenti di debug

NetBeans è una struttura ad albero, Java open source ambiente di sviluppo integrato, sostenere lo sviluppo di applicazioni Java stand-alone e applicazioni di rete, ma anche il supporto JSP debug.

NetBeans supporta le seguenti alcune caratteristiche di base di debug:

  • I punti di interruzione
  • monitoraggio Single-step
  • Observation Point

Informazioni più dettagliate possono essere visualizzate manuale NetBeans.


Utilizzare JDB Debugger

È possibile utilizzare il comando jdb in JSP e Servlet in per il debugging, proprio come il debug come una normale applicazione.

Di solito, abbiamo diretto il debug sun.servlet.http.HttpServer oggetti per visualizzare la situazione HTTPServer realizzazione di JSP / servlet in risposta alle richieste HTTP. Questo è molto simile alle applet debug. La differenza è che, il programma applet attuale debug è sun.applet.AppletViewer.

La maggior parte del debugger quando le applet di debug può ignorare automaticamente alcuni dei dettagli, perché sa come eseguire il debug applet. Se si desidera eseguire il debug oggetti JSP trasferite al corpo, è necessario fare due cose:

  • Impostazione del percorso di classe debugger, si può trovare sun.servlet.http.Http-Server e classi correlate.
  • Impostazione del percorso di classe debugger, per consentirgli di trovare i file JSP e le classi correlate.

Set classpath, ha iniziato la messa in sun.servlet.http.Http-Server. È possibile impostare i punti di interruzione nel file JSP ovunque, come il tempo che volete, e quindi utilizzare il browser invia una richiesta al server deve essere in grado di vedere il programma si fermò a un punto di interruzione.


utilizzare i commenti

annotazioni programma al debugger svolgono un ruolo utile in molti aspetti. I commenti possono essere utilizzati in molti modi nel debugger.

JSP utilizza annotazioni Java. Se un bug è scomparso, si prega di leggere attentamente i commenti che avete appena avuto il codice di solito può scoprire perché.


Il capo dei moduli client e server

A volte, quando il JSP non è in esecuzione in un modo predeterminato quando si visualizzano le richieste HTTP prime e le risposte sono anche utili. Se la struttura è molto familiare con HTTP, è possibile osservare direttamente le intestazioni di richiesta e di risposta e vedere come i moduli alla fine.


importanti tecniche di debug

Eccoci di nuovo rivelato due punte di debug JSP:

  • Utilizzando il browser visualizza il contenuto originale della pagina, viene utilizzato per distinguere se il formato. Questa opzione è di solito nel menu Visualizza.
  • Assicurarsi che il browser quando il ricaricamento forzato la pagina non catturare l'uscita del precedente richiesta. Se si utilizza il browser Netscape Navigator, utilizzare Shift-Ricarica; se si utilizza il browser IE, quindi utilizzare Shift-Refresh.