JSPのデバッグ
テストするには/デバッグJSPまたはサーブレット・プログラムは、常に非常に困難です。 JSPとサーブレットの手順は、エラーが発生する可能性があり、クライアント/サーバの多数の相互作用に関与する傾向があり、エラー環境を再現することは困難です。
次はあなたのプログラムのデバッグに役立ついくつかのヒントとヒントを与えられます。
System.out.println()を使用します
System.out.println()を簡単にフラグがコードの一部が実行されることができます。 もちろん、我々はまた、種々の値をプリントアウトすることができます。 加えて:
- システム・オブジェクトは、追加のクラスを導入することなく、どこでも使用することができ、コアJavaオブジェクトになりますので。 サーブレット、JSP、RMI、EJBの、豆、クラスとスタンドアローンのアプリケーションの使用を含みます。
- System.out出力は、プロセス・アプリケーションの動作に大きな影響を与えることはありません使用して、ブレークポイントで停止し、と比較すると、この機能は、アプリケーションのタイミング機構に非常に重要であることは非常に便利です。
次に、構文与えられたのSystem.out.println()は次のとおりです。
System.out.println("Debugging message");
これはSystem.out.print()されているを使用しての簡単な例です:
<%@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>
あなたは上記の例を実行する場合さて、それは次のような結果が生成されます。
-4 -3 -2 -1 0 1 2 3 4 5
あなたがTomcatサーバーを使用している場合は、下にあるstdout.logファイルlogsディレクトリに次の詳細を見つけることができるようになります:
counter=1 counter=2 counter=3 counter=4 counter=5 counter=6 counter=7 counter=8 counter=9 counter=10
変数やその他の情報のこのメソッドを使用すると、問題を分析し、根深い理由の原因を見つけるために、システムログに出力することができます。
JDBロガーを使用します
J2SEのロギング・フレームワークは、JVM内の任意のクラスの走行にロギングサービスを提供します。 だから我々はすべての情報を記録するには、このフレームワークを使用することができます。
のは、上記のコードを書き換えるJDKロガー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>
これは、以前の結果と同様であるが、それはあるstdout.logファイルに追加情報を得ることができます。 ここでは、情報・ロガー・メソッドを使用します。 私たちは、スナップショットのある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
メッセージは(断つを使用することにより、優先度のさまざまな方法を使って送信することができます)、警告()、情報()、設定()、ファイン()、細かい()、最高級()メソッド。 最高の()メソッドは、最良の情報を記録するために使用され、重度()メソッドは、最も重大な情報を記録するために使用されます。
別のファイルにLog4Jのフレームワークのログメッセージを使用して、重症度や重要度に基づいて、これらのメッセージは、分類します。
デバッグツール
NetBeansのツリー構造で、オープンソースのJavaは、スタンドアロンJavaアプリケーションおよびネットワークアプリケーションの開発をサポートする、統合開発環境だけでなく、JSPのデバッグをサポートしています。
NetBeansは、次のいくつかの基本的なデバッグ機能をサポートしています。
- ブレークポイント
- シングルステップの追跡
- 観測点
詳細情報は、NetBeansのマニュアルを表示することができます。
JDBデバッガを使用してください
あなただけの通常のアプリケーションとしてデバッグのように、デバッグ用にJSPとサーブレットでのjdbコマンドを使用することができます。
通常、我々は、HTTPリクエストに応じて、JSP /サーブレットの実装状況HttpServerにを表示するには、オブジェクトsun.servlet.http.HttpServerデバッグを指示します。 これは、アプレットのデバッグに非常に類似しています。 違いは、アプレット、実際のデバッグプログラムがsun.applet.AppletViewerである、ということです。
それはアプレットをデバッグする方法を知っているので、アプレットをデバッグするとき、デバッガのほとんどは自動的に、詳細の一部を無視することができます。 あなたが身体に転送JSPオブジェクトをデバッグしたい場合は、2つのことを行う必要があります。
- デバッガのクラスパスを設定し、それがsun.servlet.http.Http-Serverおよび関連するクラスを見つけることができます。
- JSPファイルおよび関連クラスを見つけるためにそれを可能にするために、デバッガのクラスパスを設定します。
クラスパスを設定し、それがsun.servlet.http.Http-Serverの試運転を開始しました。 あなたは限り、あなたは好きなように、どこでもJSPファイル内にブレークポイントを設定し、ブラウザがサーバーへの要求は、プログラムがブレークポイントで停止して見ることができるはず送信し使用することができます。
コメントを使用
デバッガにプログラムの注釈は、多くの点で有用な役割を果たしています。 コメントは、デバッガの多くの方法で使用することができます。
JSPは、Javaアノテーションを使用しています。 BUGが消えた場合は、慎重にあなただけの通常理由を見つけることができますコードを持っていたコメントを確認してください。
クライアントとサーバーモジュールの頭
表示するときにJSPが所定の方法で実行されていないとき時々、生のHTTPリクエストとレスポンスも有用です。 構造はHTTPに精通している場合は、直接、要求と応答のヘッダーを観察し、最終的にどのようにモジュールを見てすることができます。
重要なデバッグ手法
ここでは、再び2つのJSPのデバッグのヒントを明らかにされています。
- ブラウザを使用して、ページの元のコンテンツを表示し、フォーマットするかどうかを区別するために使用されます。 このオプションは、[表示]メニューで、通常です。
- 強制は、ページをリロードブラウザが前の要求の出力をキャプチャしていないことを確認してください。 あなたはNetscape Navigatorのブラウザを使用している場合は、Shiftキーを押しながら再読み込みを使用し、IEブラウザを使用している場合、次にShiftキーを押しながら[更新]を使用します。