session内容为空的问题

coocoo 2002-06-24 04:42:54
我在几个例子中都遇到相似的问题,如在购物车示例中:
在处理页面转向的Sevlet程序中:
...
basket=(BasketBean)session.getAttribute(BasketBean.BASKET);
...
当运行时总是出现java.lang.NullPointerException.
如果客户不是第一次访问session,则不出错.如果是第一次则必定出错.
1.难道每次使用前都需要调用一个初始化程序先初始化session吗?
2.我想在使用购物车之前都得先登录,是不是登录后session就初始化了.
请问谁能帮我解开疑团?
...全文
91 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
minitigger 2002-06-25
  • 打赏
  • 举报
回复
一般session是在登陆的时候启动的,要不谁还来登陆呀。判断一下是否为空是应该的,还要判断一下session是否存在。
zhaolihua 2002-06-25
  • 打赏
  • 举报
回复
你可以在程序中加一个判断啊,比如
if((String)session.getAttribute(...)==null))
{
session.setAttribute(...);
}
zhaolihua 2002-06-25
  • 打赏
  • 举报
回复
你可以在程序中加一个判断啊,比如
if((String)session.getAttribute(...)==null))
{
session.setAttribute(...);
}
悠悠的爸爸 2002-06-25
  • 打赏
  • 举报
回复
basket=BasketBean)session.getAttribute(BasketBean.BASKET);如果是第一次使用该session, session中还没有设置值,那session.getAttribute(BasketBean.BASKET)得到的是null值,此时则不能进行类型转换操作,否则出现空指针。
7 2002-06-24
  • 打赏
  • 举报
回复
BasketBean是什么?
BasketBean=null?
wangzhiqing 2002-06-24
  • 打赏
  • 举报
回复
你是否可以考虑一下在最前面的页面加上一个

session.setAttribute(BasketBean.BASKET, new BasketBean()); 什么的!


或者:

if(session.getAttribute(BasketBean.BASKET) == null) }
session.setAttribute(BasketBean.BASKET, new BasketBean());
}

这样不会出错!

不过我不清楚你的业务,不知道这么写可以不可以…… :-)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧