java - 为什么我会收到空​​指针异常?

标签 java jsp tomcat cassandra

所以我正在尝试实现一个用户配置文件页面,我已经使用 bean、servlet 和相应的 jsp 页面实现了它。

当我尝试访问/profile/username(该帐户肯定存在于数据库中)时,我的浏览器中显示以下错误:

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /profile.jsp at line 87

84:         <div class="container">
85:             <div class="row">
86:                 <div class="col-lg-12 text-center user-profile">
87:                     <h1>Welcome <%=profile.getUsername()%>!</h1>
88:                 </div>
89:                 <div class="col-sm-4 text-center">
90:                     <div class="user-post" style="background-color: red">


Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:574)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
    [PACKAGE].servlets.Profile.doGet(Profile.java:47)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)

root cause

java.lang.NullPointerException
    org.apache.jsp.profile_jsp._jspService(profile_jsp.java:218)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
    [PACKAGE].servlets.Profile.doGet(Profile.java:47)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)

当我转到错误所在(servlet Profile.java 的第 47 行)时,它只是:

rd.forward(request, response);

我使用的代码与我在其他 servlet 中所做的完全一样,但它就是不起作用。

我是否漏掉了一些非常明显的东西?提前致谢。

最佳答案

您评论(针对已删除的答案):

Sorry I should've added the full jsp page, I declare profile above as follows:

 ProfileStore profile = (ProfileStore) session.getAttribute("Profile");

....但是您在 servlet 代码中设置属性是这样的:

request.setAttribute("Profile", profile);

在设置和获取属性时,您应该使用相同的“作用域”。如果您获取的属性未在您尝试从中获取的范围内定义,那么您将得到一个 null

关于java - 为什么我会收到空​​指针异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39959622/

相关文章:

java - 防止 Tomcat 覆盖 Controller 建议返回的错误响应

java - IntelliJ IDEA : Jump to interface implementation if there is only one implementation available

java - Spring Rest API 与 WebApp

java - Spring boot 1.4.1 embedded tomcat 8 - 日志缓冲 30 秒

java - 在 com.spring.schoolmanagement.model.Subject 类型上找不到属性 'id'

django - Jasig CAS 身份验证重定向循环

java - tomcat中的 session 迁移/复制

java - 有限状态机是该用例的正确选择吗?

java - 在 Arduino IDE 中从串行获取的拆分数组字符

java - <jsp :useBean> 的不同方式