论坛首页 入门技术论坛

Session的get和set,存取用户信息

浏览 2572 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-02-10   最后修改:2009-02-10
目前做的jsp项目遇到了比较传统的问题就是保存用户信息。
一般都是用session以及cookie。
由于一些主观上的问题,一直以为session.setAttribute("key",value);之后,
其他用户再次登陆继续session.setAttribute("key",value);会覆盖前面一个用户的信息。到后来实践才发现,这种情况几乎不存在(除非在一台机器上用户session.setAttribute("key",value)两次)。

因为每个用户所创建的session的session.getId()是不一样的,这样才能使一个session里面保存一个用户的信息,不会发生的覆盖赋值。

在用户访问页面时先判断session里面有没有用户的信息,没有的话先登陆,在数据库中插入session的id以及用户名信息,然后session.setAttribute("key",value),保存好用户信息,继续其他的操作。

如果有先根据用户名查询数据库存储的sessionid是否和当前id匹配,如果不匹配则删除数据库的该条记录,返回登陆.如果匹配则再做下面的操作。
   发表时间:2009-02-10  
汗。。。
当用户通过浏览器连接服务器的时候,服务器会分配一个Session ID给用户
这个ID是唯一的,用来区分不同用户
当浏览器关闭的时候,这个ID就消失了

session.setAttribute("key",value)
不同用户用这条命令当然不会覆盖别人的数据,不然Session就没有多少存在的意义了
0 请登录后投票
   发表时间:2009-02-10  
leeldy 写道
当浏览器关闭的时候,这个ID就消失了

超时才被干掉
0 请登录后投票
   发表时间:2009-02-10  
gembler 写道
leeldy 写道
当浏览器关闭的时候,这个ID就消失了

超时才被干掉


嗯,有道理
浏览器关闭的时候一般不会告诉服务器:我关闭了,干掉我的Session ID吧
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics