Servlet debugowanie
Testowanie / debugowanie rozwój Servlet kursu jest zawsze trudne. Serwlet często obejmuje wiele interakcji klient / serwer, ale może być trudne do odtworzenia błędu.
Oto kilka porad i wskazówek, które mogą pomóc debug.
System.out.println ()
System.out.println () służy jako znacznik, stosowany do testowania, czy dany fragment kodu jest wykonywane. Możemy również wydrukować wartości zmiennej. Ponadto:
- Ponieważ obiekty systemowe są częścią podstawowych obiektów Java, można go używać w dowolnym miejscu bez konieczności instalowania żadnych dodatkowych klas. Obejmuje Servlet, JSP, RMI, EJB, wspólne fasoli i klas, jak również samodzielne aplikacje.
- Z różnych przystankach przy zerwaniu, napisz do System.out nie zakłócać normalnego przepływu wykonywania aplikacji, co sprawia, że czas ma kluczowe znaczenie, gdy jest to szczególnie cenne.
Oto składnia używać System.out.println () jest:
System.out.println ( "komunikat debugowania");
Wszystkie wiadomości, które są generowane przez wyżej gramatyki zostaną zapisane w plikach logów serwera WWW.
Dziennik wiadomość
Zastosuj odpowiednią metodę logowania, aby nagrać cały debugowania, ostrzeżenia i komunikaty o błędach, co jest bardzo dobrym pomysłem, to zaleca się stosowanie rekord LOG4J wszystkie wiadomości.
Interfejs API dostarcza też prosty sposób produkcji, przy zastosowaniu metody log () w następujący sposób:
// Importu konieczne java biblioteki import java.io. *; import javax.servlet * .; import javax.servlet.http * .; public class ContextLog rozszerza HttpServlet { public void doGet (HttpServletRequest request, Odpowiedź HttpServletResponse) wyrzuca ServletException, java.io.IOException { Ciąg par = request.getParameter ( "par1"); // Wywołanie ServletContext.log dwie metody ServletContext context = getServletContext (); if (par == null || par.equals ( "")) // Zapis parametrów przez Throwable wersji context.log ( "Nie Odebrano wiadomość:", Nowy IllegalStateException ( "Brakujący parametr")); więcej context.log ( "Oto przesłanie gościa:" + par); response.setContentType ( "text / html; charset = UTF-8"); java.io.PrintWriter out = response.getWriter (); tytuł String = "Kontekst Log"; Ciąg DOCTYPE = "\ n <DOCTYPE html!>"; out.println (DOCTYPE + "<Html> \ n" + "<Head> <title>" + nazwa + "</ title> </ head> \ n" + "<Body bgcolor = \" # f0f0f0 \ "> \ n" + "<H1 align = \" center \ ">" + nazwa + "</ h1> \ n" + "<H2 align = \" center \ "> Wiadomości wysyłane </ h2> \ n" + "</ Body> </ html>"); } // DoGet }
ServletContext jest tekst wiadomości do serwletu plik dziennika kontenera. Dla Tomcat, te dzienniki można znaleźć w sekcji <Tomcat-instalacji-katalogu> katalogu / logs.
Te pliki dziennika są rzeczywiście pojawiają się błędy lub problemy częstotliwości podane są instrukcje. Z tego powodu zalecamy korzystanie z log () Klauzula Wyjątkiem Funkcja catch zazwyczaj nie stało.
Użyj JDB debuggera
Można użyć polecenia JDB apletu lub debugowania aplikacji do debugowania Servlet.
Aby debugować serwletu, możemy debugować sun.servlet.http.HttpServer, a następnie uruchomić go jako HTTPServer Servlet odpowiedzi na zapytania HTTP po stronie przeglądarki. Ten niewielki program debugowania aplet jest bardzo podobna. I debugowania aplet jest inny, rzeczywisty program jest pozbawione błędów jest sun.applet.AppletViewer.
Większość debugerów automatycznie ukryć szczegóły dotyczące debugowania apletu. Podobnie dla apletu, należy wykonać następujące czynności za pomocą debuggera:
- Ustaw swój debugger w ścieżce klasy ścieżki klasy, dzięki czemu można go znaleźć sun.servlet.http.Http-Server i powiązanych klas.
- Ustaw swój debugger w ścieżce klasy ścieżki klasy, dzięki czemu można go znaleźć serwletu oraz zajęcia dodatkowe, zazwyczaj w server_root / serwlety i server_root / klas.
Zwykle nie chcą server_root / serwlety w ścieżce klas, ponieważ wyłącza załaduj aplet. Jednak zasada ta znajduje jest bardzo przydatna do debugowania. To pozwala na debugowanie w HTTPServer ładowarki zwyczaju przed Servlet Servlet ustawić punkt przerwania w serwletu.
Jeśli ustawiono prawidłową classpath classpath można rozpocząć debugowanie sun.servlet.http.HttpServer. Aplet może ustawić punkty przerwania w kodzie chcesz debugowania, a następnie podane serwletu przy użyciu przeglądarki sieci Web (http: // localhost: 8080 / servlet / ServletToDebug) występuje z wnioskiem do HTTPServer. Zobaczysz wykonanie programu zatrzymuje się przy zerwaniu.
Użyj komentarzy
Komentarze w kodzie pomoże w różny sposób do debugowania. Notatki mogą być wykorzystywane na wiele innych sposobów proces debugowania.
Zastosowanie Java Servlet uwag i komentarzy pojedynczej linii (// ...), komentarze multi-line (/ * ... * /) mogą być stosowane tymczasowo usunąć niektóre kodu Java. Jeśli błąd zniknie, wystarczy spojrzeć na komentowanej kodu i zidentyfikować problem.
Informacje o klienta i po stronie serwera nagłówek
Czasem, gdy aplet nie jest zgodnie z oczekiwaniami, zobaczyć oryginalne żądanie HTTP i odpowiedź jest bardzo przydatna. Jeśli jesteś zaznajomiony z konfiguracją HTTP, można przeczytać na żądanie i odpowiedź i zobaczyć, jakie informacje te nagłówki.
Ważne techniki debugowania
Oto kilka wskazówek, Servlet debugowanie:
- Należy pamiętać, server_root / klas nie będą przeładowane, a server_root / serwlety potęga.
- Zwraca się do przeglądarki, aby wyświetlić oryginalną treść strony jest wyświetlana. Przyczynia się to do określenia formatu problem. Zwykle jest to opcja w menu "Widok".
- Zmuszając pełne przeładowanie strony, aby upewnić się, że przeglądarka nie jest żądaniem przed buforem wyjściowym. W Netscape Navigator, użyj Shift przeładować, w programie Internet Explorer, Shift-Refresh.
- Upewnij się, że metody apletu init () akceptuje ServletConfig parametru i zwraca super.init (config).