Latest web development tutorials

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 파일에 다음의 이상을 찾을 수 아래의 디렉토리를 기록합니다 :

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는 트리 구조 자바 통합 개발 환경 오픈 소스 독립형 자바 애플리케이션 및 네트워크 애플리케이션의 개발을 지원하고, 또한 JSP 디버깅을 지원한다.

NetBeans는 다음과 같은 몇 가지 기본적인 디버깅 기능을 지원합니다 :

  • 중단 점
  • 단일 단계 추적
  • 관측 지점

자세한 정보는 넷빈즈 설명서를 볼 수 있습니다.


JDB 디버거를 사용하여

당신은 JSP에서 JDB 명령을 사용하여 단지 일반 응용 프로그램으로 디버그와 같은 디버깅에 서블릿 수 있습니다.

일반적으로, 우리는 HTTP 요청에 대한 응답으로 JSP / 서블릿의 이행 상황 HttpServer에를 볼 개체 sun.servlet.http.HttpServer 디버깅을 직접. 이 디버깅 애플릿과 매우 유사합니다. 차이는 애플릿 실제 디버깅 프로그램 sun.applet.AppletViewer 인 점이다.

이 애플릿을 디버깅하는 방법을 알고 있기 때문에 디버거의 대부분은 때 디버깅 애플릿은 자동으로, 세부 사항의 일부를 무시할 수 있습니다. 당신이 몸에 전달 JSP 객체를 디버깅 할 경우, 두 가지 작업을 수행해야합니다 :

  • 디버거 클래스 경로를 설정, 그것은 sun.servlet.http.Http - 서버 및 관련 클래스를 찾을 수 있습니다.
  • 디버거 클래스 경로를 설정하면 JSP 파일과 관련 클래스를 찾을 수를 활성화합니다.

설정 클래스 경로, 그것은 sun.servlet.http.Http - 서버를 시운전 시작했다. 당신은 브라우저가 서버에 요청이 프로그램이 중단 점에서 중지 볼 수 있어야 전송 사용 후 당신이 좋아하는만큼, 아무 곳이나 JSP 파일에 중단 점을 설정하고 있습니다.


주석을 사용

디버거 프로그램 주석은 여러 측면에서 도움이되는 역할을한다. 코멘트는 디버거에서 여러 가지 방법으로 사용될 수있다.

JSP는 자바 주석을 사용합니다. 버그가 사라진 경우, 신중하게 그냥 일반적으로 이유를 찾을 수있는 코드를 가지고있는 의견을 검토하시기 바랍니다.


클라이언트와 서버 모듈 헤드

볼 때 JSP가 소정의 방식으로 실행되지 않을 때 때로는 원시 HTTP 요청과 응답도 유용하다. 구조가 HTTP 잘 알고있는 경우, 직접 요청 및 응답 헤더를 관찰하는 방법을보고 결국 모듈.


중요 디버깅 기술

여기에서 우리는 다시 두 개의 JSP 디버깅 팁을 공개하고 있습니다 :

  • 페이지의 원본 콘텐츠가 브라우저를 표시합니다 사용하여 포맷 여부를 구별하는 데 사용됩니다. 이 옵션은 [보기] 메뉴에서 일반적입니다.
  • 브라우저가 때 강제로 다시로드 페이지가 이전 요청의 출력을 캡처하지 않음을 확인합니다. 당신이 넷스케이프 네비게이터 브라우저를 사용하는 경우, Shift 키를 다시로드를 사용하여, IE 브라우저를 사용하는 경우, 다음 Shift 키 새로 고침을 사용합니다.