java中为啥session有时候是null
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中为啥session有时候是null相关的知识,希望对你有一定的参考价值。
不知道你说的具体是什么情况,一般有一下几种情况
你给session赋值没赋值成功,所以你读取session时为空。
你给session赋值了,但是session很快就失效了。
你有变量跟session的名字一样,值被覆盖了或者覆盖了空值。
或者你的java程序里面设置了禁用session,这个需要你打开session设置。
session的创建有下边几种:
//使用request对象的getSession()获取session,如果session不存在则创建一个
HttpSession session = request.getSession();
//将数据存储到session中
session.setAttribute("data", "孤傲苍狼");
HttpSession session = HttpServletRequest.getSession(true);
session.setAttribute("data", "孤傲苍狼");
参考技术A 你说的是sessionid吗 只要不注销,或者关闭浏览器,sessionid 是不会空的 其他的需要你往里面放东西才会用 参考技术B 可以用Debug、打断点跑一下,然后加上百度查询下是否代码写的有问题我以前也遇见过,在启动项目的时候,设置一个获取Connection的session,我的是代码获取方式不正确,百度才知道的本回答被提问者采纳 参考技术C 禁用了cookie,并且session也没有赋值,调用Request.getSession().setAttribute("username",""),此时session应该为空。 参考技术D 禁用了cookie的话JSESSIONID就为空,然后session就没了
为啥 java String类 中的valueOf(Object obj) 空时返回的是"null"而不是null
参考技术A stringstr就是一个名称而已,而object
obj
则是要保存到str这个名称中的值,是个对象。当你用request或者是session点出这个方法的时候,当你用请求转发的时候,你可以在另一个页面用request或者session点出getattribute(string
str)获得你刚保存的值,注意:get方法的str必须和set方法的str一致,获得的值必须强制转换,因为get方法出来的值是object类型。 参考技术B 因为null的字符串值就是"null"
如果你使用System.out.println(null)
输出的实际上就是"null"嘛
以上是关于java中为啥session有时候是null的主要内容,如果未能解决你的问题,请参考以下文章
java 把数据放入session时为啥会 报null异常?
为啥ThreadLocal 有时可能get得到对象的值有时可以有时不行
为啥 java String类 中的valueOf(Object obj) 空时返回的是"null"而不是null
vs2008编辑aspx页面时,经常会session失效,就得重新登录系统,这是为啥?!