java - jsp 和 servlet 中的错误

标签 java jsp

堆栈跟踪:

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


root cause 

java.lang.NullPointerException
    org.apache.jsp.jsp.Report_jsp._jspService(Report_jsp.java:79)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.

最佳答案

重点:只需读取堆栈跟踪并相应地修复空指针。

堆栈跟踪的第一行应包含引起该问题的源代码的行号。打开已编译的 Report.jsp 源代码并转到该行。它应该看起来像:

someObject.doSomething();

特别注意点运算符.用于访问或调用某些对象实例的地方。此类代码行上的 NullPointerException 意味着 someObject 实际上是 null。它只是什么都没有。您无法访问它,也无法调用它的任何方法。

修复NullPointerException所需要做的就是确保someObject为空:

if (someObject == null) {
    someObject = new SomeObject();
}
someObject.doSomething();

或者仅在 someObjectnull 时才进行访问/调用。

if (someObject != null) {
    someObject.doSomething();
}

也就是说,由于标记库和 EL 通常是 NPE 安全的,这表明您使用 old fashioned scriptlets 在 JSP 文件中编写了原始 Java 代码。 。我强烈建议不要这样做,而是在真正的 Java 类中编写 Java 代码,并使用 taglib 来控制页面流和输出,并使用 EL 访问后端数据。

关于java - jsp 和 servlet 中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2153769/

相关文章:

java - 如何在没有java用户的情况下以sysdba身份连接到oracle数据库?

java - 将对象数据从 JSP 传递到 Spring Controller Post 方法而不是 GET 方法

javascript - 如何从一个jsp页面到另一个jsp页面获取select标签中给出的值

java.lang.ClassNotFoundException : com. mysql.jdbc.驱动程序错误

java - 如何获取 url 中传递的值到模型和 View Controller ?

java - 在java上打开与一台服务器的两个端口连接

java - XSL XML 转换,更改命名空间值

java - 赫克托 : java. nio.BufferUnderflowException

java - Android 上传 - 手机延迟

java - jqgrid:添加行