日期:2014-05-20  浏览次数:20795 次

问个关于session的问题
成功登陆后执行session.setAttribute("username",1212);每个用户登陆后都会在session中存储
是存储在哪里?在应用程序中取session.getAttribute("username");怎么知道是取的哪一个?
有哪几种类型的Session,他们的生命周期有多长?

------解决方案--------------------
每次用户登录的时候都会有一个sessionID,也就是用户编号,这个编号在整个应用程序中都是独一无二的,所以session.getAttribute("username");的时候都会利用sessionID判断到底是那个的attribute,应该是这样的吧。
------解决方案--------------------
顺便说一下,每个session 都有一个会话时间,也就是 web.xml 中的 time-out 标签中设置的值,当一个session 过期之后,那个 sessionID 也就失效了!
------解决方案--------------------
你的意思好像是所有的用户都是一个username属性 ,其实不是这样的
不同的浏览器进程有不同的session
session.getAttribute("username");是取得当前浏览器进程的会话,只会有一个用户
只有一种session
生命周期可以自己在xml文件中配置,也可以在程序中编码
------解决方案--------------------
当每个用户登陆后的session在后台都以session id为主键存在不同list中,每个用户对应一个list。
每个用户session.getAttribute("username")的时候,username会存在他session id对应的list中。

你在后台拿到session,都是当前登录用户的,只能取到当前用户(list中)set的值。




------解决方案--------------------
学习
------解决方案--------------------
session 是跟客户端的cookie挂钩的,每个访问的人都会创建一个自己的session ID 这个ID好象是存储在cookie里的,我几的有点模糊。。。 你自己看看吧
------解决方案--------------------
帮顶
------解决方案--------------------
session.getAttribute()取的是当前登录的用户,每个用户都有自己的sessionID
------解决方案--------------------
楼主的意思是在服务器端用request.getAttribute()方法的时候吗? 其实客户端提交请求到服务器的时候,会把客户端的request对象传到服务器的,服务器通过request.getSession.getAttribute()方法获得session作用域里面的值,因为每个客户的request都不一样,所以他们对应的session也不一样,就算每个客户往里面存的都叫username,服务端照样不会混淆!不知道我解释的清除不?
------解决方案--------------------
session也有自己的id号,不同的用户在登陆后,session会有自己的id号,session存在内存中,session周期,当关闭window窗口时,session就死了。当然,session也可以自定义生命周期。