怎么将多个用户名保存到session

我想了2天也没想出来,希望大家多多指导
我用jsp做了一个登陆页面和主页,我想把每个登陆的用户名显示到主页,怎么实现?
可以多个用户同时登录,刷新后用户名不覆盖,就需要保存多个session,怎么保存?jsp页面怎么取到?

其实我想了一下,你想做的也不是没有可能。

有很多用户去共享一个session,而这个session中保存用户名,同时要求你的客户端必须得保留用户名信息,因为你是做聊天系统,所以肯定只停留在一个页面内,在一个页面内,你使用js来保存客户端信息,类似cookie的功能。服务端怎么去保存呢?

首先每个浏览器与服务器建立了唯一的连接,只有唯一的sessionId,你可以通过这个sessionId在session中保存,通过这个sessionId保存来自这个session的所有用户信息。

不用想了,一个客户机和服务器连接只能建立唯一的一个session,所以不可能拥有多个session的,所以你不用想下去了

我用jsp做了一个登陆页面和主页,我想把每个登陆的用户名显示到主页,怎么实现?

。。。。。。。。。。。。。。。。。。。。。。。。。。

用户登录的信息可以用session保存,但要显示其他的用户名,建议用Map处理或者保存到数据库。

一般用户表可以添加个用户状态字段,用于表示当前用户是否已登录
当你要显示当前所有登录的用户,直接查询数据库中状态为已登录的用户

需要维护一个登陆信息列表,比如用户信息 UserInfo

List list;
session.setAttribute("userlist","list");

然后不断的添加刷新

这种做法不是最好的,既然知道哪些人登录了,数据库中不就可以区分吗?可以根据记录查询出来,并显示,思路不是挺清晰的吗?

如果非要这么实现可以考虑,session中放入一个set对象,set对象中存储每个用户的信息,这个按照KEY值获取到set对象,然后将里面的数据遍历展示就可以了。

只在app里面实现的话,session这一级别是取不到的,要至少要到application级别。
建议设计一张表,记录用户的登录信息,这样的好处是不仅可以查询出现在有哪些人在线,也可以统计出,系统每天的登录率。

我再提醒一下lz,比如你一台客户机与服务器相连,你与服务器之间只存在唯一的sessionId,他是唯一的,同一个客户机和服务器不能同时存在多个session,这是确定的事实。你下一个用户登录了,你上一个用户就会失去这个session,你想像qq一样,那你看到webqq什么时候可以同时登录多个账号了,那仅限于应用程序,web是做不到的,建议到web2.qq.com上自己好好试试。

楼上的各位回答这个问题的时候请想清楚:同一台电脑可以通过多个session连接到服务器吗?

lz,即使你第二次登录的时候用的是新打开的窗口,要么你获得了第一次登录的效果,要么,你会冲掉第一个session,只存在第二个session,也就是会自动的销毁第一个。

我还是郑重的提醒各位,反正我是没有见过同一台电脑可以同时以多个用户登录同一系统,我做了很长时间的web,就没有发现可以这么做过。

[quote]enet_java 写道
如果非要这么实现可以考虑,session中放入一个set对象,set对象中存储每个用户的信息,这个按照KEY值获取到set对象,然后将里面的数据遍历展示就可以了。

key值是多少?页面中能传到服务端吗?[/quote]
key值就是用户session的key就可以了,肯定是可以传到服务端的。