在ServletContext中获取空指针异常

时间:2016-03-10 19:47:56

标签: jsp session servlets nullpointerexception

我得到空指针异常IDK。当我登录网页时,ServletContect将设置属性

ServletContext context;
context=getServletContext();
context.setAttribute("userID", userID);

我在类级别初始化ServletContext。 我想将它检索到jsp和servlet的其他页面,

当我尝试使用时访问属性 context.getAttribute("userID"); 在其他jsp和servlet中,我得到Null指针Exception,

我尝试使用会话来使用

检索值
session=request.getSession(false); 
session.getAttribute("userID");

但仍然会得到空指针。

1 个答案:

答案 0 :(得分:0)

使用HttpSession存储userID。 将登录的用户信息存储在ServletContext中是没有意义的。

当用户成功通过身份验证时,创建会话并在会话属性Map中存储userID。

HttpSession session= request.getSession(true);
session.setAttribute("userID", userID);

您可以使用EL访问JSP中的userID:

${sessionScope.[userID]}

无论您使用的是Request Dispatcher还是sendRedirect(),您的会话将一直有效,直到您:

  1. 在会话对象上明确调用HttpSession.invalidate()方法。
  2. 达到会话超时,您可以在web.xml中声明。
  3. <session-config>
        <session-timeout>30</session-timeout>
    </session-config>