浏览 2572 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-02-10
最后修改:2009-02-10
一般都是用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匹配,如果不匹配则删除数据库的该条记录,返回登陆.如果匹配则再做下面的操作。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-02-10
汗。。。
当用户通过浏览器连接服务器的时候,服务器会分配一个Session ID给用户 这个ID是唯一的,用来区分不同用户 当浏览器关闭的时候,这个ID就消失了 session.setAttribute("key",value) 不同用户用这条命令当然不会覆盖别人的数据,不然Session就没有多少存在的意义了 |
|
返回顶楼 | |
发表时间:2009-02-10
leeldy 写道 当浏览器关闭的时候,这个ID就消失了
超时才被干掉 |
|
返回顶楼 | |
发表时间:2009-02-10
gembler 写道 leeldy 写道 当浏览器关闭的时候,这个ID就消失了
超时才被干掉 嗯,有道理 浏览器关闭的时候一般不会告诉服务器:我关闭了,干掉我的Session ID吧 |
|
返回顶楼 | |