尝试引用servlet中的会话变量时出现Nullpointer异常

时间:2015-07-29 10:14:03

标签: java servlets tomcat7

我已经在一个servlet中设置了一个会话变量,现在我想在稍后引用它。我可以在.jsp中引用第一个servlet重定向到的会话变量,但是在稍后尝试引用时会得到一个空指针异常。

这是我定义会话变量的地方:

HttpSession session = req.getSession();
ArrayList<Account> accountList = loginController.getAccounts(user);
session.setAttribute("accountsList", accountList);

目前它只是一个帐户的arraylist,其中包含一个帐户对象。我可以从此servlet重定向到的.jsp访问此帐户。

然而.jsp然后链接到另外的servlet,它们也使用accountlist。

if (session.getAttribute("accountsList") instanceof ArrayList && session.getAttribute("accountsList") != null) {
    log.debug("===============================================:The account list isn't null");
    ArrayList<Account> accountList = (ArrayList<Account>) session.getAttribute("accountsList");
    for (Account temp : accountList) {
        if (accountNum == temp.getAccountNumber()) {
            account = temp;
        }
    }
}

这是其中一个servlet中的代码,当它运行时,它在for循环的开始时失败。日志语句将打印到tomcat控制台,然后显示以下错误:

  

显示java.lang.NullPointerException       com.fdmgroup.holla.servlet.StatementServlet.doGet(StatementServlet.java:54)       javax.servlet.http.HttpServlet.service(HttpServlet.java:621)       javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

第54行是for循环定义。我和其他servlet有类似的错误。你觉得我怎么会出错,因为我可以进入tomcat会话管理员,看到账户列表不是空的,所以我不确定发生了什么。

0 个答案:

没有答案