网站是jsp的。
当用户输入用户名密码登陆后,生成一个session值
以后就通过判断这个session是否为空来检测用户是否登陆
现在问题是,如果在同一台电脑上同时登陆两个用户,在第一个用户登陆后打开一个窗口,不关闭窗口,再打开一个新窗口,用第二个用户登陆,这时第一个用户的 登陆后窗口变成第二个用户的信息。 第二个用户没有自己打开登陆后的窗口,而是覆盖了第一个用户的登陆后打开的窗口。 同一个用户不同机器可以登陆。
这是为什么???如何解决啊???
我看了可能和session相关,如何在客户端解决这个问题?我想不同用户登陆后都打开自己的窗口。而不是去覆盖之前的。
不能改变服务端程序啊。
当bb无论是新打开一个ie窗口登陆还是用原来aa的登陆窗口登陆,都不会再打开新窗口了,而窗口a的信息变成了用户bb的了我查了说是session覆盖的问题我的想法是在两个ie窗口地址栏输入http://*****/login.asp?username=aa&password=pp回车输入http://*****/login.asp?username=bb&password=cc回车这样是否在服务器上有两个不同的session产生?
是的话我用不同的sessionid提交是否进入不同的登陆后的页面?不知此法行不?
我想你一定是用的遨游浏览器吧,我看 qq 在使用遨游浏览器的时候它的 session 都是共享的。也就是说打开第一个页面的时候没有关闭,再打开第二个页面时出现的如:用户名等 session 是第一个页面的用户名,我想是这个意思吧。 大家可以使用遨游浏览器打开 qq 空间,打开两个就知道楼主说的那个问题。 这样吧,你每次创建 session 的时候指定为 false 即: Session session = request.getSession(false); 就是说每次创建 session 都不重新 new 出一个新的 sessionId 而是使用旧的 sessionId ,旧的 sessionId 也就是说是最先开始执行 Session session = request.getSession(); // 最先开始获得 sessionId 的地方应该是 true 不是false ,以后的就是 false 。 这样的话,在下面 new 出 session 的时候都不创建新的,而是使用旧的。你看看这个办法行不行。
登陆同时判断该用户是否存在
不能修改服务端的程序啊
我只是在客户端想办法啊
我用的是ie6.0
我看了,当我打开登陆界面的时候它给我分配一个session的
打开多个登陆界面他就分配多个session
各不相同啊
例如在一台机器上打开两个登陆窗口,它分配给我的session分别为11和22
如果此时我用用户aa登陆后打开一个新的登陆后的界面,保持aa不关闭,再用bb登陆,此时bb没有打开新的登陆后的界面,而是替换了aa登陆后的界面,此时只有一个登陆后的界面那就是bb的。
我是想不同用户登陆后打开不同的登陆后窗口,而不是后来的用户替换了前面的啊
如何解决啊????郁闷!
你那不是替换的问题,是你的浏览器两个页面共享了一个 session ,你在 ie6 下再试试,就不会出现你那种情况了。
不是这个意思,像 遨游、火狐、IE7,他们都是有浏览器选项卡的,这样的话,他们之间的 session 是共享的,我上面就说过了,你用遨游打开两个 qq 空间,你就知道他们之间的 session 是共享的,第一个 session 的用户名什么的都到第二个页面的 session 中了。但是你如果使用 ie6 这样单独的一个浏览器的话,就不会出现这样的情况了。
比如IE,如果是通过双击方式打开的,Session是不共享的。
如果是在IE的,文件》新建标签或新建文件 这个方式打开是共享Session的。会把你第一次登陆的Session覆盖。
简单说,一个session只能对应一个浏览器进程
你可以查看任务管理器,看看有几个浏览器进程
我把问题补充到了12楼
另外:我在一台机器上当前桌面下用aa登陆网站后保持不关闭,点击开始菜单切换到别的系统用户环境,用用户aa还可以登陆网站。
用bb应该也可以
问题是:一个xp系统用户就只能打开一个网站用户的登陆后界面。
就像 17 楼说的那样,session 是通过浏览器进程来判断的,请问楼主你是什么浏览器测试的?
现在好了我的解决方法:
用ie登陆一个用户,然后用firefox登陆另外一个用户即可为什么呢?是因为ie和firefox不用相同的临时文件夹以及cookies存放目录不同myie不行
有个问题是:firefox打开的页面有问题,对于页面的表格无法显示,不知如何解决?
y
不知道还有没有别的好的解决方法,
你打开两个 IE6 来测试,也应该是好的,应为他们是两个不同的进程,所以 session 就不一样。 就象 IE 和 FF 是两个不同进程的浏览器。
的浏览器都是智能打开一个登陆后的窗口
如果你再用个非ie核心的浏览器就可以打开了因为只要是一类的浏览器例如ie核心的浏览器他们的所有进程都共享一个临时文件夹目录和cookies目录,这就是问题所在。
除非有什么办法让ie的各个进程使用不同的临时文件夹目录。不知道哪位老大有让ie的各个进程使用不同临时文件夹的方法,还请不吝赐教!谢谢各位老大的热心关注!
特别是Ghost_520老大!非常热心的朋友!
你可以试试IE6,它是不存在选项卡的概念的。
窗口和选项卡不是一个概念。
他的网站就是这么设计的。可惜搞不到源码。我就是用的ie6 肯定不是session的问题了,因为我试了用不同的session也不行。
session不同的两个连接后面的用户也会覆盖前一个用户登陆后的页面,注意我说的是登陆后打开的页面不是登陆页面,创建session是在你打开登陆页面的时候完成的,输入完用户名和密码点击登陆后打开一个登陆后的页面,原来的登陆页面还在那里的。这时侯网站再传给你一个cookie。我测试的时候感觉好像session不同,但是这个cookie好像是相同的,还有就是在ie的临时文件夹里面储存了一些个页面。我怀疑就是这些页面在作怪。
我都试了就算是用ie和myie同时登陆都不行的除非用ie和非ie内核的浏览器同时登陆
不是session问题吗?
应该每个浏览器的打开,都会有一个独自的SessionID,在程序中根据SessionID来判断到底是哪一个用户
能改早改了我只是个用户身份
没有权利动源程序session绝对是不同的
用非ie内核的浏览器和ie浏览器同时登陆可以打开两个登陆后的窗口
现在问题是:非ie内核的浏览器在css和javascript的支持上和ie不同,导致了我用非ie内核的浏览器登陆后浏览时不能正常显示,
甚至不能显示。
有没有非ie内核的浏览器具有和ie相同的css和javascript支持?
或者是有没有ie内核的浏览器可以设置和ie不同的临时文件夹目录?
因此,如果不改程序,在客户端无论使用多少个不同的用户登录,都会出现同一个界面,这种程序我都曾经做过。当然使用不同的浏览器可能会允许打开多次,这取决于这些浏览器打开窗口时采用的命名规则。如果同一窗口打开多次,则在web程序上很难保证数据的一致性性和完整性,不像CS程序下的MDI窗口模式。
老紫竹CSDN论坛插件发布-竹签V1.0
世界之窗设置的临时文件夹和ie是共用的啊真是没办法 啊
用非ie 内核的浏览器浏览时页面显示不正常啊查了资料说是对css 和 jacascript 的支持不兼容啊怎么办呢?
帮up.
掉了,我曾经想的办法是建立一个session数组来保存用户信息。因为不同机器与服务器是不同的session,所以可以的,同一个IE上
就是一个session了。