gpt4 book ai didi

java - jsp 和 servlet 中的错误

转载 作者:太空宇宙 更新时间:2023-11-04 08:56:40 24 4
gpt4 key购买 nike

堆栈跟踪:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com