将session对象保存在一个map中,当session对象销毁后,map中的session对象是为空还是没有变?

来源:百度知道 编辑:UC知道 时间:2024/04/28 19:45:18
我是想做个单点登陆,希望在登录服务器上保存用户登陆信息,由于保存别的如一个string的话不好维护 我就想利用session的自动销毁机制,当sesson销毁后 我就去map里判断是否为空 如果空 则就登陆失效 不知道是否可行,关键就在于上面这一点 ,谢谢各位兄弟姐妹指点 感谢中
不是啊 是单点登陆的时候 多域名同时存在的话 肯定要在登陆服务器上存放一定的票据,要不然各个应用去验证的时候服务器里面没有票据 ,所以服务器一定要存东西 至于存什么就另说,只是想到session的自动销毁机制,希望同时也能将map里面的给销毁了 ,但是刚才一试,map 里面的session对象是不会丢失的,所以不行,希望能够给个好点的解决方法 哎

当然不会空咯。。。 你的MAP里面放的是 session的副本

你外面的session自动销毁 和 你放在MAP里面不想干了。。

因为他们的容器都不同

所以指向的空间也不同

我的思路是:map里有你要存的东西,在你登录的时候把map里的内容通过session.setAttribute("map",map);存到session对象里。
在获取的时候用Map map = (Map)session.getAttribute("map");获取。
这样只要判断这个session是否为空即可断定是否登录成功了。map里的数据是否销毁和登录成功没有什么关系的。
希望能够对你有所帮助

如果你说的是HttpSession的话那个东西是服务器提供的,生命周期有服务器控制,你就直接在jsp登陆时候使用session.setAttribute()里面东西随便存,比如存可读性强点的validated之类的,然后在以后的页面中判断用session.getAttribute就行,用不着存到map,而且也没有那么用,要想知道正确的方法判断登陆,请参考struts的token令牌环,你那么弄,每页都要写判断session的内容