我得到空指针异常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");
但仍然会得到空指针。
答案 0 :(得分:0)
使用HttpSession存储userID。 将登录的用户信息存储在ServletContext中是没有意义的。
当用户成功通过身份验证时,创建会话并在会话属性Map中存储userID。
HttpSession session= request.getSession(true);
session.setAttribute("userID", userID);
您可以使用EL访问JSP中的userID:
${sessionScope.[userID]}
无论您使用的是Request Dispatcher
还是sendRedirect()
,您的会话将一直有效,直到您:
HttpSession.invalidate()
方法。<session-config>
<session-timeout>30</session-timeout>
</session-config>