当前位置: 技术问答>java相关
session内容为空的问题
来源: 互联网 发布时间:2015-06-30
本文导语: 我在几个例子中都遇到相似的问题,如在购物车示例中: 在处理页面转向的Sevlet程序中: ... basket=(BasketBean)session.getAttribute(BasketBean.BASKET); ... 当运行时总是出现java.lang.NullPointerException. 如果客户不是第一次访问session,则不...
我在几个例子中都遇到相似的问题,如在购物车示例中:
在处理页面转向的Sevlet程序中:
...
basket=(BasketBean)session.getAttribute(BasketBean.BASKET);
...
当运行时总是出现java.lang.NullPointerException.
如果客户不是第一次访问session,则不出错.如果是第一次则必定出错.
1.难道每次使用前都需要调用一个初始化程序先初始化session吗?
2.我想在使用购物车之前都得先登录,是不是登录后session就初始化了.
请问谁能帮我解开疑团?
在处理页面转向的Sevlet程序中:
...
basket=(BasketBean)session.getAttribute(BasketBean.BASKET);
...
当运行时总是出现java.lang.NullPointerException.
如果客户不是第一次访问session,则不出错.如果是第一次则必定出错.
1.难道每次使用前都需要调用一个初始化程序先初始化session吗?
2.我想在使用购物车之前都得先登录,是不是登录后session就初始化了.
请问谁能帮我解开疑团?
|
你是否可以考虑一下在最前面的页面加上一个
session.setAttribute(BasketBean.BASKET, new BasketBean()); 什么的!
或者:
if(session.getAttribute(BasketBean.BASKET) == null) }
session.setAttribute(BasketBean.BASKET, new BasketBean());
}
这样不会出错!
不过我不清楚你的业务,不知道这么写可以不可以…… :-)
session.setAttribute(BasketBean.BASKET, new BasketBean()); 什么的!
或者:
if(session.getAttribute(BasketBean.BASKET) == null) }
session.setAttribute(BasketBean.BASKET, new BasketBean());
}
这样不会出错!
不过我不清楚你的业务,不知道这么写可以不可以…… :-)
|
basket=BasketBean)session.getAttribute(BasketBean.BASKET);如果是第一次使用该session, session中还没有设置值,那session.getAttribute(BasketBean.BASKET)得到的是null值,此时则不能进行类型转换操作,否则出现空指针。
|
你可以在程序中加一个判断啊,比如
if((String)session.getAttribute(...)==null))
{
session.setAttribute(...);
}
if((String)session.getAttribute(...)==null))
{
session.setAttribute(...);
}
|
一般session是在登陆的时候启动的,要不谁还来登陆呀。判断一下是否为空是应该的,还要判断一下session是否存在。