我不知道为什么我从来没有发现自己必须使用调试器来单步调试我的程序并查看发生了什么,可能是因为我习惯于使用解释性语言,例如 PHP,在其中添加调试代码变得非常容易(print_r
) 并实时查看更改。
然而,有了这个新的 Java 项目,我觉得我必须学习正确的调试方法。
所以这个不是我写的程序在Tomcat上运行并使用基本的JSP。问题是当我尝试访问一个特定的 JSP 页面时,它会抛出一个异常并给我所发生的事情的堆栈跟踪:
org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:503)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:363)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:306)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.sgrp.singer.filters.SingerLoginFilter.doFilter(SingerLoginFilter.java:128)
我将如何使用 JDB 之类的工具逐步完成我的程序?我不能真正单步执行一个特定的类,因为我需要模仿我的 JSP 正在做什么......我想通过命令行来做这件事,而不使用 IDE。